【问题标题】:Why does a plane's vertexdata contain 52 entries?为什么平面的顶点数据包含 52 个条目?
【发布时间】:2013-01-18 22:30:42
【问题描述】:

我是 3D 领域的新手,并且已经尝试了几种引擎以开始使用。我选择 away3D 是因为它很简单。

我正在创建一个平面并在其上粘贴纹理,并且希望能够通过实时更改 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 包含每个顶点的 3 个值(x、y、z)。考虑到一个平面可以由 4 个或 6 个顶点构建,这将导致整个顶点数组有 12 个或 18 个顶点值。

UVData 数组通常包含每个对应顶点的 U 和 V 值,这会导致值比顶点数组少。但是这里的 UVdata 和 vertexData 数组的长度是一样的。

我尝试在 away3D 论坛上提问,但没有得到回应,而且我的 3D 知识还太少,无法理解任何 away3d 源代码。

谁能解释一下为什么 vertexData 和 UvData 包含这么多值,以及它们代表什么?

【问题讨论】:

    标签: away3d vertices vertex-array uv-mapping


    【解决方案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

    【讨论】:

    • 欢迎来到堆栈溢出,您能在答案中添加更多细节吗?
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-07-26
      • 2017-12-22
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      • 2020-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多