图形渲染中的顶点与着色器技术详解
1. 矩阵重计算与世界变换设置
在图形渲染中,常常需要对依赖值进行重新计算。例如,通过调用 CalcWorldViewProjMatrix() 函数来重新计算世界视图投影矩阵。代码如下:
// recalculating depending values
CalcWorldViewProjMatrix();
接着,会根据是否使用着色器来进行不同的操作。如果使用着色器,会对世界视图投影矩阵进行转置操作,并将转置后的矩阵设置为顶点着色器常量;如果不使用着色器,则直接设置世界变换矩阵。代码如下:
// if shader set a constant
if (m_bUseShaders) {
ZFXMatrix mTranspose;
mTranspose.TransposeOf(*(ZFXMatrix*)&m_mWorldViewProj);
m_pDevice->SetVertexShaderConstantF(0, (float*)&mTranspose, 4);
}
else
m_pDevice->SetTransform(D3DTS_WORLD, &m_mWorld);
该函数的使用非常简单,若用户传入的矩阵指针为 NULL ,则表示用户希望不进行世界变换。此时,函数需要为 Direct3D 设置单位矩阵,因为 Direct3D 本
超级会员免费看
订阅专栏 解锁全文
1604

被折叠的 条评论
为什么被折叠?



