程序创建mesh的问题

我使用util.MeshUtils.createMesh创建mesh
填入了positions normals indices,其它的都没有。创建出来的mesh给meshrender.mesh。
我发现是unlit材质下是可以显示的。但是builtin-standard材质下显示不出来。
另外我在blender里面导出一个简单的立方体。在creator里面看它的mesh,就有很多数据。
我觉得是不是还有哪些必要的mesh参数在动态生成的时候也需要提供,才能让自定义的模型在builtin-standard材质下显示出来?

是的,builtin-standard材质需要更多的信息来正确显示模型。在Blender中导出的模型通常包含更多的信息,如UV、切线、切线空间、骨骼等。如果您使用 util.MeshUtils.createMesh 手动创建网格,您需要提供足够的信息才能使其在builtin-standard材质下正常工作。

以下是一些您可能需要提供的其他网格数据:

  • UVs:纹理坐标数据,它指定每个顶点在纹理上的位置。
  • Tangents:切线数据,它定义了每个顶点上的曲面的切线。
  • Bone weights:骨骼权重数据,它定义了每个顶点受到哪些骨骼的影响。

可以通过使用 util.MeshUtils.calculateNormalsutil.MeshUtils.calculateTangentsutil.MeshUtils.calculateBoneIndicesAndWeights 等函数来计算这些数据。然后,您可以将这些数据传递给 util.MeshUtils.createMesh ,以创建一个包含完整信息的网格。

3赞

跟我想象的一样。
但是,我并没有找到util.MeshUtils.calculateNormals,util.MeshUtils.calculateTangents等函数。
另外补充一下我只是希望代码生成关卡的围墙。

我在他们库中也没有看到这几个函数,很奇怪