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


C++ CShader::SetMatrix方法代码示例

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


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

示例1: Render

void CEntity::Render()
{
	//_SINGLE(CDevice)->GetDevice()->SetTransform(D3DTS_WORLD, &m_matWorld);

	m_matWorld = m_matScale * m_matRot * m_matTrans;
	const D3DXMATRIX* pMatProj = _SINGLE(CCameraManager)->GetCurCam()->GetMatProj(m_eView);
	const D3DXMATRIX* pMatView = _SINGLE(CCameraManager)->GetCurCam()->GetMatView(m_eView);

	D3DXMATRIX matWVP = m_matWorld * (*pMatView);

	CShader* pShader = _SINGLE(CShaderManager)->FindShader(m_eShader);

	//if(m_eMeshNum == MN_ZOMBIE)
	//{
	//	m_vecPass.clear();
	//	m_vecPass.push_back(3);
	//}

	D3DXMATRIX matIden;
	D3DXMatrixIdentity(&matIden);

	pShader->SetMatrix("g_matView", pMatView);
	pShader->SetMatrix("g_matProj", pMatProj);

	pShader->SetMatrix("g_matWorld", &m_matWorld);
	
	pShader->SetMatrix("g_matIden", &matIden);

	pShader->SetMatrix("g_matWV", &matWVP);
	matWVP *= (*pMatProj);
	pShader->SetMatrix("g_matWVP", &matWVP);

	D3DMATERIAL9 tMaterial;
	tMaterial.Diffuse.a = 1.f;
	tMaterial.Diffuse.r = 1.f;
	tMaterial.Diffuse.g = 1.f;
	tMaterial.Diffuse.b = 1.f;

	tMaterial.Ambient = tMaterial.Diffuse;
	tMaterial.Specular = tMaterial.Diffuse;
	tMaterial.Power = 1.f;

	//°¢°¢ÀÇ Æнº¿¡ ´ëÇØ ·»´õ
	for(unsigned int i = 0; i < m_vecPass.size(); ++i)
	{
		m_pMesh->Render(pShader, m_vecPass[i]);
	}

	pShader->SetValue("g_mtrlMesh", &tMaterial, sizeof(D3DMATERIAL9));

	if(m_bDrawSphere)
	{
		DrawSphere(pShader);
	}
/*
	_SINGLE(CDevice)->GetDevice()->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);
	
	pShader->BeginPass(1);
	
	m_SphereMesh->DrawSubset(0);
	
	pShader->EndPass();

	_SINGLE(CDevice)->GetDevice()->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);*/
}
开发者ID:qiomoip,项目名称:space-express,代码行数:65,代码来源:Entity.cpp


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