问题: D3D 渲染的一点思考

在学习d3d的初期就看到了渲染管线也就是T&L(Transform and Lighting).

 

Local Space ->World Space -> View Space ->Backface Culling -> Lighting -> Clipping -> Projection -> Viewport Space ->Rasterization

 

刚开始, 我认为当所有的物体渲染完了以后,比如画基本图元DrawPrimitive或者渲染mesh, DrawSubset. 完了调用Present. 就执行上述过程.最后就可以在屏幕上看到渲染后的3d图形了.

 

可是,随着学习的深入,以及自己写的一些测试程序, 发现实际情况好像不是这样, 因为后来每次渲染图形前就去设置灯光, 世界矩阵, 深度测试模版缓冲等然后渲染一个图元, 然后再改变灯光等再渲染, 结果互不影响. 那么渲染就不是在Present的时候一次性的执行上述过程, 而是每次DrawPrimitive或者DrawSubset的时候执行. 但是我的问题是这样会非常影响效率, d3d怎么采用这中方式, 而不是前面那种方式呢?

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示