画立方体,好像两种方法都可以,应该是用哪种好
一种就是画三角形的时候,只考虑外面
还有一种就是不考虑里面外面,用D3DCULL_NONE,然后D3DCLEAR_ZBUFFER
试了试,两种都可以,不知道哪种效率高,用哪种好
[解决办法]
三维程序裁剪要好一些,因为可以减少不必要的绘制。另外D3DCLEAR_ZBUFFER必须,否则画面会变花的。
[解决办法]
D3DCLEAR_ZBUFFER 是上一次绘制的深度缓存 不清理掉的话 这次的深度比较就会出现问题 某些不该出现的东西就会出来 (你可以让相机旋转然后不清理试试看)
[解决办法]
每种方法都有自己的用途,没有绝对的好坏
而且两种方法也不是你所说的那会事儿
三角形,可以单面显示,也可以双面显示
三角形是有面方向的,方向是由顶点法向量来决定的,或者用三角形的顶点的排列顺序
正常情况下,只是面对着相机的三角形才会被绘制,而背对着的不会绘制
D3DCULL_NONE则关闭了这个剔出机制,使得背面三角形也会被绘制
在三维世界当中, 从相继看过去的射线上,可能会有多个点存在, 绘制到屏幕的时候,这些点在屏幕上就会重叠, 所以才需要按照距离远近作比较, zbuffer保存的数据就是起到远近判断的, 让近处点遮盖远处点显示才会正确。
渲染是一帧一帧进行的, 每一帧开始的时候,一般都需要清理zbuffer, 以确保里面没有数据,否则上一帧绘制残留下的z数值会对这次渲染产生负面影响