本文整理汇总了C++中CShader::SetValue方法的典型用法代码示例。如果您正苦于以下问题:C++ CShader::SetValue方法的具体用法?C++ CShader::SetValue怎么用?C++ CShader::SetValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CShader
的用法示例。
在下文中一共展示了CShader::SetValue方法的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);*/
}