예제 #1
0
	//--------------------------------------------------------------------------------------
	void ShadowVolumeInstance::_SetParameters ()
	{
		Engine& engine = Engine::Instance();
		Device* device = engine.GetDevice();
		Environment* env = engine.GetEnvironment();
		ICamera* camera = engine.GetCamera();
		device->SetShaderParameter(m_hLightDirectionLoc, env->GetCurrentLight().GetWorldDirection());
		device->SetShaderParameter(m_hViewProjLoc, camera->GetViewProjBias());
	}
예제 #2
0
	//--------------------------------------------------------------------------------------
	void ShadowVolume::_SetParameters ()
	{
		Engine& engine = Engine::Instance();
		Device* device = engine.GetDevice();
		Environment* env = engine.GetEnvironment();
		ICamera* camera = engine.GetCamera();

		Matrix44f wvp = *m_pTransform * camera->GetViewProj();
		Matrix33f normalTransform(*m_pTransform);

		device->SetShaderParameter(m_hNormalTransformLoc, normalTransform);
		device->SetShaderParameter(m_hModelViewProjLoc, wvp);
		device->SetShaderParameter(m_hLightDirectionLoc, env->GetCurrentLight().GetWorldDirection());
		device->SetShaderParameter(m_hViewProjLoc, camera->GetViewProjBias());
		//clean up
		m_pTransform = NULL;
	}
예제 #3
0
	//--------------------------------------------------------------------------------------
	void ModelDepth::_SetParameters ()
	{
		Engine& engine = Engine::Instance();
		Device* device = engine.GetDevice();
		ICamera* camera = engine.GetCamera();

		Matrix44f& mat = *(Matrix44f*)(m_pMaterial->Attribute( IAttributeNode::ATT_WORLDTRANSFORM ));
		
		device->SetShaderParameter(m_hWorldTransform, mat );
		if ( m_pMaterial->Attribute( IAttributeNode::ATT_USER_0 ) )
		{
			device->SetShaderParameter(m_hCameraLineDepthParam, camera->LineDepthParamBais() );
			device->SetShaderParameter(m_hWorldViewProjMatrixLoc, mat * camera->GetViewProjBias() );
		}
		else
		{
			device->SetShaderParameter(m_hCameraLineDepthParam, camera->LineDepthParam() );
			device->SetShaderParameter(m_hWorldViewProjMatrixLoc, mat * camera->GetViewProj() );
		}
		device->SetShaderParameter(m_hLightPositionLoc, engine.GetEnvironment()->GetCurrentLight().GetWorldPosition() );
	}