【发布时间】:2015-07-16 10:02:54
【问题描述】:
我无法在我的网格上显示光照贴图,代码如下:
loader.load('model.ctm', function (geometry) {
var lm = THREE.ImageUtils.loadTexture('lm.jpg');
var m = THREE.ImageUtils.loadTexture('t.jpg');
var material = new THREE.MeshBasicMaterial({
lightMap: lm,
map: m,
});
geometry.faceVertexUvs[1] = geometry.faceVertexUvs[0];
mesh = new THREE.Mesh(
geometry,
material
);
scene.add(mesh);
}, {useWorker: true});
虽然我没有使用 geometry.faceVertexUvs[1] = geometry.faceVertexUvs[0]; ,但网格消失了,没有控制台错误。
当我使用它时,网格仍然消失并且控制台发生此错误:
TypeError: geometry.faceVertexUvs 未定义
如何解决这个问题?
谢谢。
【问题讨论】:
-
你能举一个简单的例子来演示这个问题吗?还要证明您的模型在不使用光照贴图时可以正确渲染。
-
1.您的示例未加载。退出保管箱并亲自尝试。 2. CTM.Loader 返回
THREE.BufferGeometry,而不是THREE.Geometry。据我所知,没有使用BufferGeometry的光照贴图的示例,因此您必须研究代码才能了解如何才能使其工作。 -
非常感谢,我做到了,所以问题出在 BufferGeometry 上,使用普通的 Geometry 和光照贴图显示正确。
标签: javascript html three.js