使用DX绘制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也失败,没有调用BeginS

...

上一篇:【Leetcode】【Medium】Pow(x, n)


下一篇:Python异常的使用