【问题标题】:Three.js LightMap not showing?Three.js LightMap 不显示?
【发布时间】: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 未定义

如何解决这个问题?

谢谢。

【问题讨论】:

  • 你能举一个简单的例子来演示这个问题吗?还要证明您的模型在不使用光照贴图时可以正确渲染。
  • 不使用光照贴图时的示例:Example1。使用光照贴图的示例:Example2
  • 1.您的示例未加载。退出保管箱并亲自尝试。 2. CTM.Loader 返回THREE.BufferGeometry,而不是THREE.Geometry。据我所知,没有使用 BufferGeometry 的光照贴图的示例,因此您必须研究代码才能了解如何才能使其工作。
  • 非常感谢,我做到了,所以问题出在 BufferGeometry 上,使用普通的 Geometry 和光照贴图显示正确。

标签: javascript html three.js


【解决方案1】:

修复了更改为普通几何时出现的问题,暂不支持BufferGeometry。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 2012-04-29
    • 2016-07-23
    相关资源
    最近更新 更多