Panagiotis Christopoulos Charitos 13 年 前
コミット
7f43a1c816

+ 1 - 11
anki/renderer/Bl.cpp

@@ -7,16 +7,12 @@
 namespace anki {
 namespace anki {
 
 
 
 
-//==============================================================================
-// Constructor                                                                 =
 //==============================================================================
 //==============================================================================
 Bl::Bl(Renderer& r_)
 Bl::Bl(Renderer& r_)
-:	SwitchableRenderingPass(r_)
+	: SwitchableRenderingPass(r_)
 {}
 {}
 
 
 
 
-//==============================================================================
-// init                                                                        =
 //==============================================================================
 //==============================================================================
 void Bl::init(const RendererInitializer& initializer)
 void Bl::init(const RendererInitializer& initializer)
 {
 {
@@ -88,8 +84,6 @@ void Bl::init(const RendererInitializer& initializer)
 }
 }
 
 
 
 
-//==============================================================================
-// runSideBlur                                                                 =
 //==============================================================================
 //==============================================================================
 void Bl::runSideBlur()
 void Bl::runSideBlur()
 {
 {
@@ -111,8 +105,6 @@ void Bl::runSideBlur()
 }
 }
 
 
 
 
-//==============================================================================
-// runBlur                                                                     =
 //==============================================================================
 //==============================================================================
 void Bl::runBlur()
 void Bl::runBlur()
 {
 {
@@ -148,8 +140,6 @@ void Bl::runBlur()
 }
 }
 
 
 
 
-//==============================================================================
-// run                                                                         =
 //==============================================================================
 //==============================================================================
 void Bl::run()
 void Bl::run()
 {
 {

+ 51 - 51
anki/renderer/Bl.h

@@ -16,57 +16,57 @@ class ShaderProgram;
 /// Blurring rendering pass
 /// Blurring rendering pass
 class Bl: public SwitchableRenderingPass
 class Bl: public SwitchableRenderingPass
 {
 {
-	public:
-		Bl(Renderer& r_);
-		void init(const RendererInitializer& initializer);
-		void run();
-
-		/// @name Accessors
-		/// @{
-		float getSideBlurFactor() const
-		{
-			return sideBlurFactor;
-		}
-		float& getSideBlurFactor()
-		{
-			return sideBlurFactor;
-		}
-		void setSideBlurFactor(const float x)
-		{
-			sideBlurFactor = x;
-		}
-
-		uint getBlurringIterationsNum() const
-		{
-			return blurringIterationsNum;
-		}
-		uint& getBlurringIterationsNum()
-		{
-			return blurringIterationsNum;
-		}
-		void setBlurringIterationsNum(const uint x)
-		{
-			blurringIterationsNum = x;
-		}
-		/// @}
-
-	private:
-		Fbo hBlurFbo; ///< Fbo that writes to blurFai
-		Fbo vBlurFbo; ///< Fbo that writes to postPassSProg
-		Fbo sideBlurFbo;
-
-		ShaderProgramResourcePointer hBlurSProg;
-		ShaderProgramResourcePointer vBlurSProg;
-		ShaderProgramResourcePointer sideBlurSProg;
-
-		Texture blurFai; ///< Temp FAI for blurring
-		TextureResourcePointer sideBlurMap;
-
-		uint blurringIterationsNum;
-		float sideBlurFactor;
-
-		void runBlur();
-		void runSideBlur();
+public:
+	Bl(Renderer& r_);
+	void init(const RendererInitializer& initializer);
+	void run();
+
+	/// @name Accessors
+	/// @{
+	float getSideBlurFactor() const
+	{
+		return sideBlurFactor;
+	}
+	float& getSideBlurFactor()
+	{
+		return sideBlurFactor;
+	}
+	void setSideBlurFactor(const float x)
+	{
+		sideBlurFactor = x;
+	}
+
+	uint getBlurringIterationsNum() const
+	{
+		return blurringIterationsNum;
+	}
+	uint& getBlurringIterationsNum()
+	{
+		return blurringIterationsNum;
+	}
+	void setBlurringIterationsNum(const uint x)
+	{
+		blurringIterationsNum = x;
+	}
+	/// @}
+
+private:
+	Fbo hBlurFbo; ///< Fbo that writes to blurFai
+	Fbo vBlurFbo; ///< Fbo that writes to postPassSProg
+	Fbo sideBlurFbo;
+
+	ShaderProgramResourcePointer hBlurSProg;
+	ShaderProgramResourcePointer vBlurSProg;
+	ShaderProgramResourcePointer sideBlurSProg;
+
+	Texture blurFai; ///< Temp FAI for blurring
+	TextureResourcePointer sideBlurMap;
+
+	uint blurringIterationsNum;
+	float sideBlurFactor;
+
+	void runBlur();
+	void runSideBlur();
 };
 };
 
 
 
 

+ 2 - 2
anki/scene/Scene.h

@@ -60,11 +60,11 @@ public:
 
 
 	const VisibilityInfo& getVisibilityInfo() const
 	const VisibilityInfo& getVisibilityInfo() const
 	{
 	{
-		return Vinfo;
+		return vinfo;
 	}
 	}
 	VisibilityInfo& getVisibilityInfo()
 	VisibilityInfo& getVisibilityInfo()
 	{
 	{
-		return Vinfo;
+		return vinfo;
 	}
 	}
 	/// @}
 	/// @}
 
 

+ 10 - 1
anki/scene/VisibilityTester.cpp

@@ -2,6 +2,7 @@
 #include "anki/scene/Scene.h"
 #include "anki/scene/Scene.h"
 #include "anki/scene/Camera.h"
 #include "anki/scene/Camera.h"
 #include "anki/scene/Renderable.h"
 #include "anki/scene/Renderable.h"
+#include "anki/scene/Light.h"
 
 
 
 
 namespace anki {
 namespace anki {
@@ -16,6 +17,9 @@ VisibilityTester::~VisibilityTester()
 void VisibilityTester::test(Frustumable& cam, Scene& scene,
 void VisibilityTester::test(Frustumable& cam, Scene& scene,
 	VisibilityInfo& vinfo)
 	VisibilityInfo& vinfo)
 {
 {
+	vinfo.renderables.clear();
+	vinfo.lights.clear();
+
 	for(SceneNode* node : scene.getAllNodes())
 	for(SceneNode* node : scene.getAllNodes())
 	{
 	{
 		Spatial* sp = node->getSpatial();
 		Spatial* sp = node->getSpatial();
@@ -34,9 +38,14 @@ void VisibilityTester::test(Frustumable& cam, Scene& scene,
 		if(r)
 		if(r)
 		{
 		{
 			r->enableFlag(Renderable::RF_VISIBLE);
 			r->enableFlag(Renderable::RF_VISIBLE);
+			vinfo.renderables.push_back(r);
 		}
 		}
 
 
-		vinfo.nodes.push_back(node);
+		Light* l = node->getLight();
+		if(l)
+		{
+			vinfo.lights.push_back(l);
+		}
 	}
 	}
 }
 }
 
 

+ 17 - 7
anki/scene/VisibilityTester.h

@@ -12,24 +12,34 @@ class Camera;
 class Scene;
 class Scene;
 class SceneNode;
 class SceneNode;
 class Frustumable;
 class Frustumable;
+class Renderable;
+class Light;
 
 
 
 
-/// XXX
+/// Its actually a container for visible entities
 class VisibilityInfo
 class VisibilityInfo
 {
 {
 	friend class VisibilityTester;
 	friend class VisibilityTester;
 
 
 public:
 public:
-	typedef std::vector<SceneNode*> SceneNodes;
+	typedef std::vector<Renderable*> Renderables;
+	typedef std::vector<Light*> Lights;
 
 
-	boost::iterator_range<SceneNodes::iterator> getNodes()
+	boost::iterator_range<Renderables::iterator> getRenderables()
 	{
 	{
-		return boost::iterator_range<SceneNodes::iterator>(
-			nodes.begin(), nodes.end());
+		return boost::iterator_range<Renderables::iterator>(
+			renderables.begin(), renderables.end());
+	}
+
+	boost::iterator_range<Lights::iterator> getLights()
+	{
+		return boost::iterator_range<Lights::iterator>(
+			lights.begin(), lights.end());
 	}
 	}
 
 
 private:
 private:
-	SceneNodes nodes;
+	Renderables renderables;
+	Lights lights;
 };
 };
 
 
 
 
@@ -47,7 +57,7 @@ public:
 	/// This method:
 	/// This method:
 	/// - Gets the visible renderables and frustumables
 	/// - Gets the visible renderables and frustumables
 	/// - For every frustumable perform tests
 	/// - For every frustumable perform tests
-	void test(Frustumable& cam, Scene& scene, VisibilityInfo& vinfo);
+	static void test(Frustumable& cam, Scene& scene, VisibilityInfo& vinfo);
 };
 };