2
0
Эх сурвалжийг харах

Fix bug in shadowcaster visibility

Panagiotis Christopoulos Charitos 10 жил өмнө
parent
commit
ea6dd43325

+ 0 - 13
include/anki/scene/FrustumComponent.h

@@ -116,18 +116,6 @@ public:
 		m_flags |= TRANSFORM_MARKED_FOR_UPDATE;
 		m_flags |= TRANSFORM_MARKED_FOR_UPDATE;
 	}
 	}
 
 
-	void setShadowCaster(Bool isShadowCaster)
-	{
-		m_flags = (isShadowCaster) 
-			? (m_flags | SHADOW_CASTER)
-			: (m_flags & ~SHADOW_CASTER);
-	}
-
-	Bool getShadowCaster() const
-	{
-		return m_flags & SHADOW_CASTER;
-	}
-
 	/// Is a spatial inside the frustum?
 	/// Is a spatial inside the frustum?
 	Bool insideFrustum(SpatialComponent& sp) const
 	Bool insideFrustum(SpatialComponent& sp) const
 	{
 	{
@@ -155,7 +143,6 @@ private:
 	{
 	{
 		SHAPE_MARKED_FOR_UPDATE = 1 << 0,
 		SHAPE_MARKED_FOR_UPDATE = 1 << 0,
 		TRANSFORM_MARKED_FOR_UPDATE = 1 << 1,
 		TRANSFORM_MARKED_FOR_UPDATE = 1 << 1,
-		SHADOW_CASTER = 1 << 2
 	};
 	};
 
 
 	Frustum* m_frustum;
 	Frustum* m_frustum;

+ 0 - 1
src/scene/Light.cpp

@@ -237,7 +237,6 @@ Error SpotLight::create(const CString& name)
 	FrustumComponent* fr = 
 	FrustumComponent* fr = 
 		getSceneAllocator().newInstance<FrustumComponent>(this, &m_frustum);
 		getSceneAllocator().newInstance<FrustumComponent>(this, &m_frustum);
 
 
-	fr->setShadowCaster(true);
 	addComponent(fr, true);
 	addComponent(fr, true);
 
 
 	return ErrorCode::NONE;
 	return ErrorCode::NONE;

+ 6 - 1
src/scene/Visibility.cpp

@@ -112,7 +112,12 @@ void VisibilityTestTask::test(SceneNode& testedNode,
 {
 {
 	FrustumComponent& testedFr = 
 	FrustumComponent& testedFr = 
 		testedNode.getComponent<FrustumComponent>();
 		testedNode.getComponent<FrustumComponent>();
-	Bool testedNodeShadowCaster = testedFr.getShadowCaster();
+	Bool testedNodeShadowCaster = false;
+	{
+		LightComponent* l = testedNode.tryGetComponent<LightComponent>();
+		testedNodeShadowCaster = l && l->getShadowEnabled();
+	}
+
 	auto alloc = m_shared->m_scene->getFrameAllocator();
 	auto alloc = m_shared->m_scene->getFrameAllocator();
 
 
 	// Init test results
 	// Init test results

+ 2 - 2
testapp/Main.cpp

@@ -41,7 +41,7 @@ App* app;
 ModelNode* horse;
 ModelNode* horse;
 PerspectiveCamera* cam;
 PerspectiveCamera* cam;
 
 
-#define NO_PLAYER 0
+#define NO_PLAYER 1
 
 
 
 
 //==============================================================================
 //==============================================================================
@@ -260,7 +260,7 @@ Error init()
 	{
 	{
 		ScriptResourcePointer script;
 		ScriptResourcePointer script;
 
 
-		err = script.load("maps/adis/scene.lua", &resources);
+		err = script.load("maps/techdemo/scene.lua", &resources);
 		if(err) return err;
 		if(err) return err;
 
 
 		err = app->getScriptManager().evalString(script->getSource());
 		err = app->getScriptManager().evalString(script->getSource());