猿问

在 Three.js 中为加载的 glb 模型分配纹理

我使用 Three.JS 加载在 SketchUp 中创建的简单 glb 模型。该模型包含一个名为 Text 的组。


模型在 Three.js 中加载并显示良好,我可以通过遍历加载的模型找到网格。


我想创建一些文本,然后将该文本显示为模型上的纹理。但是当我分配纹理时,它只是黑色。如果改为分配颜色,它会按预期工作。我尝试了很多不同的东西,但纹理仍然是黑色的。


我使用以下代码进行分配:


  var textModelMesh = FindMeshWithNameInModel(model, "Text");

  var textTexture = CreateCanvasTexture("Hello");


  textModelMesh.material = new THREE.MeshBasicMaterial({ side: THREE.DoubleSide, map: textTexture})

如何让文本显示在加载的模型上?


小提琴链接:https : //jsfiddle.net/ajo27ny4/28/


慕雪6442864
浏览 1191回答 1
1回答

拉丁的传说

网格的几何体没有纹理坐标。您可以通过调试几何对象的缓冲区属性来查看这一点。只有一个positionandnormal但没有uv属性。我建议您确保 SketchUp 中的纹理坐标有效,然后执行新的glTF导出。three.js R105
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答