为什么一个平面的顶点数据包含52个条目?

时间:2013-01-18 22:30:43

标签: away3d vertices vertex-array uv-mapping

我是3D领域的新手并且已经尝试了几个引擎来开始。我已经决定离开3D因为它很简单。

我正在创建一个平面并在其上粘贴纹理,并希望能够通过实时更改UV数据来为纹理设置动画。

var plane:Mesh = new Mesh(new PlaneGeometry(10, 10, 1, 1), textMat);

这些行都返回52:

CompactSubGeometry(plane.geometry.subGeometries[0]).UVData.length;
plane.subMeshes[0].vertexData.length;

据我所知,在其他引擎中,vertexdata包含每个顶点(x,y,z)的3个值。考虑到一个平面可以由4个或6个顶点构建,这将导致整个顶点阵列的12或18个顶点值。

UVData数组通常包含每个对应顶点的U和V值,这将导致比顶点阵列更少的值。但是UVdata和vertexData数组在这里具有相同的长度。

我尝试在away3D论坛上提问,但没有得到回应,而且我对3D的了解仍然很小,无法理解任何一个off3d源代码。

有人可以解释为什么vertexData和UvData包含这么多的值,以及它们代表什么?

2 个答案:

答案 0 :(得分:1)

http://away3d.com/forum/viewthread/4854/

vertexData = num_vertices *(x,y,z,Nx,Ny,Nz,Tx,Ty,Tz,u,v,Su,Sv)

laneGeometry(10,10,1,1)

52 = 4 * 13

答案 1 :(得分:0)

创建网格时,使用新的PlaneGeometry(10,10,1,1),你应该在vertexData中获得12个项目,在UVData中获得8个项目。它们对应于:

vertexData:4个顶点* 3(x,y,z值)。 UVData:4个顶点* 2(u,v值)。