当前位置: 首页>>代码示例>>C++>>正文


C++ Entity::GetCastShadow方法代码示例

本文整理汇总了C++中Entity::GetCastShadow方法的典型用法代码示例。如果您正苦于以下问题:C++ Entity::GetCastShadow方法的具体用法?C++ Entity::GetCastShadow怎么用?C++ Entity::GetCastShadow使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Entity的用法示例。


在下文中一共展示了Entity::GetCastShadow方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Enter

	//------------------------------------------------------------------------------------
	void Scene::Enter()
	{
		g_env.pSceneMgr->ClearScene();

		if(!m_bSetup)
		{
			m_setupFunc(this);
			m_bSetup = true;
		}

		// Compute and store the scene aabb
		m_sceneAABB.SetNull();
		m_sceneShadowCasterAABB.SetNull();
		m_sceneShadowReceiverAABB.SetNull();

		for (size_t i=0; i<m_lstEntity.size(); ++i)
		{
			Entity* pEntity = m_lstEntity[i];
			pEntity->UpdateAABB();
			m_sceneAABB.Merge(pEntity->GetWorldAABB());

			if (pEntity->GetCastShadow())
			{
				m_sceneShadowCasterAABB.Merge(pEntity->GetWorldAABB());
			}

			m_sceneShadowReceiverAABB.Merge(pEntity->GetWorldAABB());
		}

		m_enterFunc(this);
	}
开发者ID:mavaL,项目名称:NeoEngine,代码行数:32,代码来源:Scene.cpp

示例2: RenderPipline

	//-------------------------------------------------------------------------------
	void SceneManager::RenderPipline(uint32 phaseFlag, Material* pMaterial)
	{
		//================================================================================
		/// Render sky
		//================================================================================
		if (m_pSky && phaseFlag&eRenderPhase_Sky)
		{
			m_pSky->Render();
		}

		//================================================================================
		/// Render terrain
		//================================================================================
		if (m_pTerrain && phaseFlag&eRenderPhase_Terrain)
		{
			m_pTerrain->Render(pMaterial);
		}
		else if (m_pTerrain && phaseFlag&eRenderPhase_ShadowMap)
		{
			m_pTerrain->Render(m_pTerrain->GetShadowMaterial());
		}

		//================================================================================
		/// Render SSAO map
		//================================================================================
		if (phaseFlag & eRenderPhase_SSAO)
		{
			m_pSSAO->Update();

			// Make use of early-Z
			D3D11_DEPTH_STENCIL_DESC& depthDesc = m_pRenderSystem->GetDepthStencilDesc();
			depthDesc.DepthFunc = D3D11_COMPARISON_EQUAL;
			depthDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ZERO;
			m_pRenderSystem->SetDepthStencelState(depthDesc);
		}

		//================================================================================
		/// Render entities
		//================================================================================
		Scene::EntityList& lstEntity = m_pCurScene->GetEntityList();

		if (phaseFlag & eRenderPhase_Solid)
		{
			for (size_t i=0; i<lstEntity.size(); ++i)
			{
				lstEntity[i]->Render(pMaterial);
			}
		}
		else if (phaseFlag & eRenderPhase_ShadowMap)
		{
			for (size_t i=0; i<lstEntity.size(); ++i)
			{
				Entity* ent = lstEntity[i];
				if(ent->GetCastShadow())
					ent->Render();
			}
		}

		if (phaseFlag & eRenderPhase_SSAO)
		{
			D3D11_DEPTH_STENCIL_DESC& depthDesc = m_pRenderSystem->GetDepthStencilDesc();
			depthDesc.DepthFunc = D3D11_COMPARISON_LESS;
			depthDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;
			m_pRenderSystem->SetDepthStencelState(depthDesc);
		}	
		
		//================================================================================
		/// Render water
		//================================================================================
		if (m_pWater && phaseFlag&eRenderPhase_Water)
		{
			m_pWater->Render();
		}

		//================================================================================
		/// Render UI
		//================================================================================
		if (phaseFlag & eRenderPhase_UI)
		{
			D3D11_DEPTH_STENCIL_DESC& depthDesc = m_pRenderSystem->GetDepthStencilDesc();
			depthDesc.DepthEnable = FALSE;
			depthDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ZERO;
			m_pRenderSystem->SetDepthStencelState(depthDesc);

			char szBuf[64];
			sprintf_s(szBuf, sizeof(szBuf), "lastFPS : %f", g_env.pFrameStat->lastFPS);
			m_pRenderSystem->DrawText(szBuf, IPOINT(10,10), Neo::SColor::YELLOW);

			// Debug RT
			if (m_debugRT == eDebugRT_SSAO)
			{
				m_pDebugRTMesh->Render();
			}
			else if (m_debugRT == eDebugRT_ShadowMap)
			{
				m_pDebugRTMesh->Render();
			}

			depthDesc.DepthEnable = TRUE;
//.........这里部分代码省略.........
开发者ID:whztt07,项目名称:NeoEngine,代码行数:101,代码来源:SceneManager.cpp


注:本文中的Entity::GetCastShadow方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。