【发布时间】:2018-09-02 14:03:20
【问题描述】:
目前,我有 2 个输入,一个用于几何 (.dae) 文件,一个用于纹理 (.png/.jpg)。我正在尝试使用文件输入中的这些纹理加载 Collada 文件。我有 2 个函数在文件输入更改时调用:
- loadCollada():使用 THREE.ColladaLoader 在几何文件输入发生变化时加载几何,并将几何存储在名为 loadedCollada 的全局变量中
- loadTextures():使用 THREE.TextureLoader 在纹理文件输入发生变化时加载纹理,并将纹理存储在名为 loadedTextures 的全局变量中
在这两个函数都被调用之后,第三个函数 loadModel() 被调用。目前,我已经让它工作了一些;模型最终被显示,但纹理没有正确应用,如果模型的上轴不是 Y_UP,它会以错误的角度显示。以下是我为 loadModel() 编写的代码的作用:
- 将几何图形从 loadedCollada 提取到一个名为 geometries 的数组中
- 使用 THREE.GeometryUtils.merge() 函数将阵列中的所有几何图形组合成一个几何图形 (THREE.Geometry)
- 从 loadedTextures 中的单个几何体和纹理创建最终网格
- 将模型放入场景中
对此的任何帮助将不胜感激;我一直试图弄清楚它已经有一段时间了。如果我不必从用户的机器上加载 Collada 文件就可以了,但我必须以某种方式让它从文件输入中工作。谢谢:)
【问题讨论】:
-
你能发布你描述的代码吗?不清楚你在这里问什么,也无法从描述中重现。
标签: javascript three.js geometry textures collada