我使用 Three.JS 加载了在 SketchUp 中创建的简单 glb 模型。该模型包含一个名为"文本"的组。
模型在 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/
网格的几何体没有纹理坐标。您可以通过调试几何对象的缓冲区属性来查看这一点。只有position
和normal
,但没有uv
属性。我建议您确保SketchUp中的纹理坐标有效,然后执行新的glTF
导出。
three.js R105