【发布时间】:2012-02-07 21:17:02
【问题描述】:
我正在尝试使用 Three.js 来渲染一个立方体,上面有 6 个不同的图像。
THREE.CubeGeometry 的构造函数如下所示:
THREE.CubeGeometry = function ( width, height, depth, segmentsWidth, segmentsHeight, segmentsDepth, materials, sides )
我可以从代码中看到,“materials”应该是一种材质,或者是 6 种不同材质的数组,但是这里传入的材质在渲染时似乎从未使用过。
相反,为 Mesh 构造函数提供的单一材质用于所有 6 个面。
var face_materials = ... <load 6 textures here>...
var cube_g = new THREE.CubeGeometry(400,400,400,1,1,1, face_materials); // <= ignored?
var cube = new THREE.Mesh(cube_g, some_material); // <= this is used instead
即使我将 null 或 undefined 作为“some_material”传递,它似乎也会覆盖 face_materials 并且什么也不渲染。
有没有办法使用 CubeGeometry 来完成这项工作?还是我必须分别创建 6 个面并将它们添加到场景中?
【问题讨论】:
标签: three.js