Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将Maya模型导入three.js场景的最佳方法是什么_Javascript_Three.js_Maya - Fatal编程技术网

Javascript 将Maya模型导入three.js场景的最佳方法是什么

Javascript 将Maya模型导入three.js场景的最佳方法是什么,javascript,three.js,maya,Javascript,Three.js,Maya,我有一个使用Maya制作的模型。我正在尝试将模型导入WebGL。我在three.js中尝试了ColladLoader,但渐变纹理没有显示出来。 ColladaLoader显示了模型最精确的渲染。three.js导出到JSON的程序不适用于我的Maya版本。如何在WebGL中显示渐变?我认为您无法从COLLADA或任何其他交换格式向WebGL、OpenGL、Maya、Blender、XSI、3DsMAX等正确导入纹理“如此”。没有“好的简单解决方案” 纹理通常是对外部文件的引用,它们不会嵌入到导出

我有一个使用Maya制作的模型。我正在尝试将模型导入WebGL。我在
three.js
中尝试了ColladLoader,但渐变纹理没有显示出来。
ColladaLoader显示了模型最精确的渲染。
three.js
导出到JSON的程序不适用于我的Maya版本。如何在WebGL中显示渐变?

我认为您无法从COLLADA或任何其他交换格式向WebGL、OpenGL、Maya、Blender、XSI、3DsMAX等正确导入纹理“如此”。没有“好的简单解决方案”

纹理通常是对外部文件的引用,它们不会嵌入到导出的格式中(这对于几乎所有3D格式都是如此,至少我知道的所有3D格式都是如此)。有时,将外部文件复制到与导出的三维文件相同的位置,以帮助导入者在假设的情况下知道如何处理这些外部参照(这种情况很少发生)

在你的情况下,如果我理解的很好,这是一个“渐变”,所以,一个程序纹理,所以甚至没有现有的外部文件复制。。。因此,Maya应该将程序纹理采样到位图文件中,然后将其与DAE文件一起复制。。。据我所知,这远远超出了玛雅在本地为你做的事情


因此,很不幸,好的答案是:你必须自己做这项工作。导出文件、制作纹理、将纹理复制到正确的位置、在WebGL上下文中重建材质、重新链接纹理等等。

我认为您无法从COLLADA或任何其他交换格式将纹理“按此”正确导入WebGL、OpenGL、Maya、Blender、XSI、3DsMAX等。没有“好的简单解决方案”

纹理通常是对外部文件的引用,它们不会嵌入到导出的格式中(这对几乎所有3D格式都是如此,至少对我所知道的所有格式都是如此)。有时,外部文件会复制到与导出的3D文件相同的位置,以帮助导入者在假设的情况下知道如何处理这些外部引用(情况很少如此)

顺便说一句,在你的情况下,如果我很清楚,这是一个“渐变”,所以,一个程序纹理,所以甚至没有现有的外部文件要复制…所以,Maya应该将你的程序纹理采样到位图文件中,然后用DAE文件复制它…据我所知,这远远超出了Maya为你本机接受的功能


因此,很不幸,好的答案是:你必须自己做这项工作。导出文件、制作纹理、将纹理复制到正确的位置、在WebGL上下文中重建材质、重新链接纹理等等。

不再支持Maya-to-Three.js导出器。我也不建议使用COLLADA,因为它没有针对web进行优化。相反,您可以尝试使用一些第三方glTF 2.0插件将您的3D资产导出到WebGL,例如Verge3D等。

不再支持Maya-to-Three.js导出器。我也不建议使用COLLADA,因为它没有针对web进行优化。相反,您可以尝试使用第三方glTF 2.0插件将3D资源导出到WebGL,例如Verge3D等。

如何在three.js中的collada文件上放置网格?我似乎不能。我可以在three.js中向collada文件添加纹理吗?我不这么认为。但是,我对three.js了解不够(这是一个API)能够告诉你确切的步骤,但这是这样的:1)在Three.js中导入COLLADA 2)在Three.js中加载纹理3)找到导入的COLLADA网格和正确的材质4)将加载的纹理链接到正确的材质。也就是说:在Three.js中导入后,您必须自己重新组合材质。Maya显然可以采用该过程真实纹理,并在需要时将其渲染到文件中。如何a可以在three.js中的collada文件上添加网格吗?我似乎不能。我可以在three.js中的collada文件上添加纹理吗?我不这么认为。但是,我对three.js了解不够(这是一个API)为了能够告诉您确切的步骤,但这是这样的:1)在Three.js中导入COLLADA 2)在Three.js中加载纹理3)定位导入的COLLADA网格和正确的材质4)将加载的纹理链接到正确的材质。因此,也就是说:在Three.js中导入后,您必须自己重新组合材质。显然,Maya可以如果需要的话,可以将该过程转换为真实纹理并将其渲染到文件中。