平民程序 - linghuye's blog

天下风云出我辈,一入江湖岁月催。皇图霸业谈笑中,不胜人生一场醉。提剑跨骑挥鬼雨,白骨如山鸟惊飞。尘事如潮人如水,只笑江湖几人回。

随笔 - 221, 文章 - 0, 评论 - 680, 引用 - 0
数据加载中……

3D物体绘制不见

1.镜头不对: 物体不在镜头范围内,检查视图矩阵,世界矩阵,投影矩阵.
2.颜色全黑: 打开光照情况下,MATERIAL全为0, 或,在没有打开光照情况下,颜色值为0,造成全黑.检查当前Material和顶点颜色和纹理颜色.
3.深度不对: 被已有的深度遮住了.检查当前深度,直接在此渲染前加Clear深度为1.0作测试.
4.CullMode设置不对: 所有三角形被当作背面剔除了,设为CULL_NONE测试.
5.3D物件的纹理坐标统统大于1.0,且此时纹理寻址方式为BORDER, 且BORDER被设为黑色,画面全黑.
6.深度被Clear为0.0,且打开深度测试,绝对什么都画不上,上述3的特例.
7.COLORWRITE被DISABLE,一级白痴错误.
8.没有设置或没有正确设置Viewport,常发生于OpenGL.
9.OpenGL,使用DrawArray或glDrawElements时,没有打开glEnableClientState(GL_VERTEX_ARRAY),此时渲染语句失败,但没有任何错误返回.
10.DirectX使用XYZRHW顶点模式渲染2D图像时,顶点Z值取0且没有关闭ZBUFFERWRITE,导致情况6.
11.BeginScene和EndScene中崩溃,但被全局异常函数捕捉到,但异常处理函数没有EndScene,导致EndScene永远不会被调用,结果BeginScene也失败,没有调用BeginScene,没有画面,画面都没更新.
12.物件太小,而世界坐标体系太大,如设置平面模式glOrtho(0, 1024, 768, 0, 0, 1024); 而物体的坐标都在1.0f以下,物体就太小看不见了.
 13.物体被ZNear和ZFar裁剪掉了,如glOrtho(0, cx, cy, 0, 0, 1); 在离镜头1单位之外的物体全不可见.

posted on 2007-12-28 21:34 linghuye 阅读(992) 评论(1)  编辑 收藏 引用 所属分类: 3D图形学研究

评论

# re: 3D物体绘制不见  回复  更多评论   

Thx
2008-01-27 19:58 | MageMaster
只有注册用户登录后才能发表评论。