如果我在three.js中有一个具有纹理的对象(彩色纹理),例如汽车 - 我怎样才能在表面上添加局部反射,以便最终的材质可以说是闪亮的红色金属与场景的反射相结合?
我熟悉使用额外的相机和立方体贴图创建反射,但我不确定如何将其与对象现有材质相结合。
我正在使用的反射方法的一个例子可以在这里找到:
如果可以组合材料,是否可以控制每个部件的不透明度(原始材料与反射)以控制表面的“反射”程度?
非常感谢
答案 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
是应用于网格的材质 - 尽管变量名称有不寻常的选择。)