19、图形渲染中的顶点与着色器技术详解

图形渲染中的顶点与着色器技术详解

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 本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值