Browse Source

Lens flare fade

Panagiotis Christopoulos Charitos 10 years ago
parent
commit
ed21e89b31
2 changed files with 6 additions and 3 deletions
  1. 4 1
      src/renderer/Lf.cpp
  2. 2 2
      src/scene/LightComponent.cpp

+ 4 - 1
src/renderer/Lf.cpp

@@ -276,7 +276,10 @@ void Lf::run(CommandBufferPtr& cmdb)
 			sprites[count].m_scale =
 			sprites[count].m_scale =
 				lf.getFirstFlareSize() * Vec2(1.0, m_r->getAspectRatio());
 				lf.getFirstFlareSize() * Vec2(1.0, m_r->getAspectRatio());
 			sprites[count].m_depth = 0.0;
 			sprites[count].m_depth = 0.0;
-			sprites[count].m_alpha = lf.getColorMultiplier().w();
+			// Fade the flare on the edges
+			sprites[count].m_alpha = lf.getColorMultiplier().w()
+				* (1.0 - pow(abs(posNdc.x()), 6.0))
+				* (1.0 - pow(abs(posNdc.y()), 6.0));
 			++count;
 			++count;
 
 
 			// Render
 			// Render

+ 2 - 2
src/scene/LightComponent.cpp

@@ -9,8 +9,8 @@ namespace anki {
 
 
 //==============================================================================
 //==============================================================================
 LightComponent::LightComponent(SceneNode* node, LightType type)
 LightComponent::LightComponent(SceneNode* node, LightType type)
-:	SceneComponent(Type::LIGHT, node),
-	m_type(type)
+	: SceneComponent(Type::LIGHT, node)
+	, m_type(type)
 {
 {
 	setInnerAngle(toRad(45.0));
 	setInnerAngle(toRad(45.0));
 	setOuterAngle(toRad(30.0));
 	setOuterAngle(toRad(30.0));