我是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包含这么多的值,以及它们代表什么?
答案 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值)。