11 2010 档案

D3DPT_TRIANGLELIST与D3DPT_TRIANGLESTRIP
摘要:这两种方式都可以绘制三角形网格,那么在什么情况下使用它们呢?如果要画多个三角型,那么使用D3DPT_TRIANGLELIST一定要配合IndexBuffer,否则的话将要重复定义很多顶点,如果要画少量的三角型,则可以使用D3DPT_TRIANGLESTRIP来代替D3DPT_TRIANGLELIST,比如要画一个矩形(也叫Quad,通常用在渲染一个纹理图片时),则可以由两个三角型拼接而成,比如有如下顶点定义,则可以通过TRIANGLESTRIP来拼接成一个矩形。那么如何确定顶点的定义顺序以保证TRIANGLESTRIP能正确工作呢?这里有个小窍门1 确保前三个顶点是顺时针方向的,如下面的V0V 阅读全文

posted @ 2010-11-22 14:58 前端风云志 阅读(5790) 评论(0) 推荐(0)

Primitive Type in DX
摘要:在调用DrawPrimitive函数时,一定要指定正确的图元个数,否则会出现诡异的结果,看下面的例子假设有下图所示的7个顶点如果图元类型是D3DPT_POINTLIST,那么按道理只能画三条线,结果如下[代码]但是如果一不小心将图元个数设置为4,就会出现下面的结果[代码]可见,如果顶点个数不够的话,DX选择了顶点(0,0)来终结。 阅读全文

posted @ 2010-11-22 10:41 前端风云志 阅读(822) 评论(0) 推荐(0)

DirectX backface culling(背面剔除)
摘要:先看一下什么是backface,有backface必然就有frontface,在DX中,frontface是这样定义的,按照顶点定义的先后顺序,呈顺时针排列的顶点构成的三角形是frontface(以view space为参考),与frontface相对的面则是backface,如下图所示。可见决定frontface的因素有两个顶点定义的先后顺序顶点的排列方向-顺时针或者逆时针(由顶点的位置坐标决定)先看第一条,如果顶点的位置不变,但是定义顺序变了,可能导致frontface变成backface,如下图再看第二条,如果顶点的定义顺序不变,但是位置变了,也可能导致frontface变成backfa 阅读全文

posted @ 2010-11-21 16:19 前端风云志 阅读(11346) 评论(5) 推荐(2)

导航

关注我

前端风云志