Threejs - Reflectivitybitmap不适用于MeshLambertMaterial

时间:2016-09-14 07:03:19

标签: javascript three.js textures

什么有效:

我正在使用threejs版本73。 我想用WebGLRenderer渲染一个工具。 该工具由3个网格组成。每个网格都包含一个BufferGeometry和一个MeshLambertMaterial:

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

结果如下所示:Tool without Bitmap

我要归档的内容:

现在我想通过应用纹理(“img / tablereflection.bmp”,灰度256x256px,bmp)使工具看起来更逼真。如果我希望这种纹理影响我的反射行为,我不确定什么是最好的方法。

我做的是:

var geometry = new THREE.BufferGeometry();
var material = new THREE.MeshLambertMaterial({
    map: new THREE.TextureLoader().load("img/tablereflection.bmp")
});
var mesh = new THREE.Mesh(geometry, material);

但结果如下:Tool with Bitmap

这不是我想要的。它应该如下所示:ReferenceTool

有人可以告诉我,我可能会错过什么吗?

编辑

我的灯光功能是

function initLight(scene, camera) {
    var ambientLight = new THREE.AmbientLight(0x555555);
    scene.add(ambientLight);
    var leftLight = new THREE.PointLight(0x888888, 0.7, 0);
    leftLight.position.set(-2, 5, 2);
    camera.add(leftLight);
    var rightLight = new THREE.PointLight(0x888888, 0.7, 0);
    rightLight.position.set(2, 5, 2);
    camera.add(rightLight);
}

我已经尝试使用The material browser for MeshLambertMaterial并且可能能够使用这些设置possibly correct result来实现我想要的内容table inspector,但正如您所看到的那样现在是空的,所以我不确定幕后会发生什么。错误在哪里?我很高兴任何提示。

0 个答案:

没有答案