是否可以将反射(使用立方体贴图)与Three.js上的材质相结合?

时间:2012-09-11 06:15:31

标签: reflection textures opacity three.js material

如果我在three.js中有一个具有纹理的对象(彩色纹理),例如汽车 - 我怎样才能在表面上添加局部反射,以便最终的材质可以说是闪亮的红色金属与场景的反射相结合?

我熟悉使用额外的相机和立方体贴图创建反射,但我不确定如何将其与对象现有材质相结合。

我正在使用的反射方法的一个例子可以在这里找到:

https://github.com/mrdoob/three.js/commit/4d1dd95d62ff48b1842bf4e3fe0c393f5bd6f4d6#commitcomment-1832509

如果可以组合材料,是否可以控制每个部件的不透明度(原始材料与反射)以控制表面的“反射”程度?

非常感谢

1 个答案:

答案 0 :(得分:2)

是的,但它是reflectivity,而不是控制表面反射程度的opacity

请参阅此示例:http://mrdoob.github.com/three.js/examples/webgl_materials_cubemap.html

编辑:此示例未显示应用于材质的纹理,但在上面的示例中,可以像这样添加:

var texture = THREE.ImageUtils.loadTexture( 'texture.jpg' );

var cubeMaterial1 = new THREE.MeshLambertMaterial( {
    color: 0xffffff,
    ambient: 0xffffff,
    map: texture,
    envMap: reflectionCube
} );

(旁注,示例中的cubeMaterial1是应用于网格的材质 - 尽管变量名称有不寻常的选择。)