绘图模式常量(Draw Mode Constants)

这些是[page:Mesh.drawMode]的有效值,控制着顶点列表一旦被发送到GPU中将如何被解释。 请注意,只有当[page:Mesh.geometry]是一个[page:BufferGeometry]的时候,这些值才会生效。当[page:Mesh.geometry]是一个 [page:Geometry]的时候,改变这个值不会有任何效果。

绘图模式

v3d.TrianglesDrawMode

这是默认值,这将使得每三个连续顶点(v0, v1, v2),(v2, v3, v5),……被解释为一个单独的三角形。
如果顶点的数量不是3的倍数,那么将会忽略多余的顶点。

v3d.TriangleStripDrawMode

这将使得一系列的三角形(由(v0, v1, v2),(v2, v1, v3),(v2, v3, v4),……给定)一个一个地连在一起,每一个连续的三角形将和前一个三角形共享两个顶点。

v3d.TriangleFanDrawMode

这将会使得一个序列中的每一个三角形(由(v0, v1, v2),(v0, v2, v3),(v0, v3, v4),……给定)共享它们的第一个顶点(就像风扇一样)。

注意:截至[link:https://en.wikipedia.org/wiki/DirectX#DirectX_10 DirectX10]这个模式还没有被支持。 由于Chorme和Firefox在Windows上是使用[link:https://en.wikipedia.org/wiki/ANGLE_(software) ANGLE]来渲染WebGL的,所以这种模式将会在内部转换为受支持的模式, 但可能会导致这些浏览器在性能上降低一些。

用法

var geometry = new v3d.Geometry(); geometry.vertices.push( new v3d.Vector3(-10, 10, 0), new v3d.Vector3(-10, -10, 0), new v3d.Vector3( 10, -10, 0), ... ); geometry.faces.push(new v3d.Face3(0, 1, 2), ...); var material = new v3d.MeshBasicMaterial({ color: 0xffff00 }); var mesh = new v3d.Mesh(geometry, material); mesh.drawMode = v3d.TrianglesDrawMode; //default scene.add(mesh);

源代码

[link:https://github.com/mrdoob/three.js/blob/master/src/constants.js src/constants.js]