1

我是关于three.js 的新手,我对导入的几何体(来自3dsmax 的js 文件,包括所有材质和纹理)和CanvasRenderer 有疑问。CanvasRenderer 显示导入几何体的三角形边缘,WebGLRenderer 运行良好。

画布示例: http ://der-n.square7.ch/threejs/examples/teapot_canvas.html

WebGL 示例: http ://der-n.square7.ch/threejs/examples/teapot_webgl.html

在three.js 库中,我找到了用于修复此行为的材质选项“overdraw: true”,但显然材质+纹理是由上述导出的3dsmax js 文件定义的。

对于测试,我使用了“misc_camera_trackball”示例并进行了一些小改动(我添加了一个 JSONLoader,更改了一些相机和轨迹球参数,更改了一些浅色,添加了一个 CanvasRenderer)

任何提示如何解决这个问题?谢谢你的帮助。

最好的问候奥吉

4

1 回答 1

0

在加载器回调中,您将所有加载的材料放在一个数组geometry.materials中。您可以遍历这些材料并将overdraw属性设置true为每个。

据我所知,THREE.MeshFaceMaterial它只是一种直通材质,表示“面有一个索引,该索引指向要从几何体的材质数组中使用的材质实例”,因此设置属性MeshFaceMaterial不会有任何效果。

于 2012-10-16T12:30:01.797 回答