首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

画正方体,好像两种方法都可以,应该是用哪种好

2013-04-20 
画立方体,好像两种方法都可以,应该是用哪种好一种就是画三角形的时候,只考虑外面还有一种就是不考虑里面外

画立方体,好像两种方法都可以,应该是用哪种好
一种就是画三角形的时候,只考虑外面

还有一种就是不考虑里面外面,用D3DCULL_NONE,然后D3DCLEAR_ZBUFFER

试了试,两种都可以,不知道哪种效率高,用哪种好
[解决办法]
三维程序裁剪要好一些,因为可以减少不必要的绘制。另外D3DCLEAR_ZBUFFER必须,否则画面会变花的。
[解决办法]
D3DCLEAR_ZBUFFER 是上一次绘制的深度缓存 不清理掉的话 这次的深度比较就会出现问题 某些不该出现的东西就会出来 (你可以让相机旋转然后不清理试试看)

[解决办法]
每种方法都有自己的用途,没有绝对的好坏

而且两种方法也不是你所说的那会事儿

三角形,可以单面显示,也可以双面显示
  三角形是有面方向的,方向是由顶点法向量来决定的,或者用三角形的顶点的排列顺序

正常情况下,只是面对着相机的三角形才会被绘制,而背对着的不会绘制
   D3DCULL_NONE则关闭了这个剔出机制,使得背面三角形也会被绘制

在三维世界当中, 从相继看过去的射线上,可能会有多个点存在, 绘制到屏幕的时候,这些点在屏幕上就会重叠, 所以才需要按照距离远近作比较, zbuffer保存的数据就是起到远近判断的, 让近处点遮盖远处点显示才会正确。

渲染是一帧一帧进行的, 每一帧开始的时候,一般都需要清理zbuffer, 以确保里面没有数据,否则上一帧绘制残留下的z数值会对这次渲染产生负面影响

热点排行