WebGL顶点订单

时间:2014-07-20 04:18:32

标签: webgl vertices

我是WebGL的新手,我对顶点的顺序有疑问。创建立方体时,顶点将如下所示:

var vertices = [
// Front face
-1.0, -1.0,  1.0,
 1.0, -1.0,  1.0,
 1.0,  1.0,  1.0,
-1.0,  1.0,  1.0,

// Back face
-1.0, -1.0, -1.0,
-1.0,  1.0, -1.0,
 1.0,  1.0, -1.0,
 1.0, -1.0, -1.0,

// Top face
-1.0,  1.0, -1.0,
-1.0,  1.0,  1.0,
 1.0,  1.0,  1.0,
 1.0,  1.0, -1.0,

// Bottom face
-1.0, -1.0, -1.0,
 1.0, -1.0, -1.0,
 1.0, -1.0,  1.0,
-1.0, -1.0,  1.0,

// Right face
 1.0, -1.0, -1.0,
 1.0,  1.0, -1.0,
 1.0,  1.0,  1.0,
 1.0, -1.0,  1.0,

// Left face
-1.0, -1.0, -1.0,
-1.0, -1.0,  1.0,
-1.0,  1.0,  1.0,
-1.0,  1.0, -1.0
];

我可以将这些顶点的顺序重新排列成我想要的任何顺序,还是必须按照一定的顺序排列?

1 个答案:

答案 0 :(得分:1)

顶点的顺序取决于三角形剔除参数和绘制三角形的顺序。

组成三角形的顶点可以用右手或左手的方式排序。三角形的方向比描述三角形的法线指向的等待。阅读更多here

根据您为gl.cullface( option )选择的选项,您可以对三角形进行不同的剔除。因此,这会影响顶点顺序。

要照顾的另一个重要方面是绘制的三角形/基元的顺序。您的应用程序可能有不同的要求,因此可能需要预先排序需要绘制的三角形,这样也会影响顶点的顺序。一个这样的例子是绘制透明基元。混合透明基元有很多问题,因此需要注意。有关更具洞察力的直接示例,请阅读this

希望这有助于您了解顶点的顺序可能有多重要,也可能不重要。