【问题标题】:Materials in exported Blender model for Three.js not workingThree.js 的导出 Blender 模型中的材料不起作用
【发布时间】:2013-01-21 20:08:18
【问题描述】:

我正在尝试使用 Blender 创建的模型和 Three.js 该模型非常基本,两个立方体相互叠加。一个立方体是红色的,另一个是绿色的。

我已经使用 Three.js 的 Blender 导出器插件导出了模型当我手动将材质分配给对象时:

loader.load("model.js", function ( geometry, material ) {

    material = new THREE.MeshBasicMaterial( { color: 0xFF0000 } );

    mesh = new THREE.Mesh( geometry, material);

    scene.add(mesh);

    animate();

});

没有问题如https://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/index.html所示

但是当我删除该行时:

material = new THREE.MeshBasicMaterial( { color: 0xFF0000 } );

使用了模型的材料。这会产生 Three.js 的错误:

TypeError: program is undefined [Break On This Error]

p_uniforms = program.uniforms,

您可以在https://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/index2.html亲自查看此内容

有没有人知道是什么导致了这个问题?你可以在https://googledrive.com/host/0B9t0vRo6sUnzWndDTGxicENIdDg/model.blend下载Blender文件

【问题讨论】:

    标签: three.js webgl blender


    【解决方案1】:

    简单。材料是一个数组。您需要执行以下操作:

    loader.load( "model.js", function ( geometry, materials ) {
    
        mesh = new THREE.Mesh( geometry, materials );
    
        scene.add( mesh );
    
        animate();
    
    } );
    

    three.js r.88

    【讨论】:

    • 谢谢,在我的例子中,立方体变黑了。我首先需要在场景中添加灯光 :)
    猜你喜欢
    • 2018-05-19
    • 2015-03-26
    • 2018-10-30
    • 2016-02-27
    • 2017-11-29
    • 2016-08-17
    • 2012-04-04
    • 2015-12-01
    • 2019-09-29
    相关资源
    最近更新 更多