//-------------------------------------------------------------------------------------- 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()); }
//-------------------------------------------------------------------------------------- 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; }
//-------------------------------------------------------------------------------------- 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() ); }