2012-09-11 35 views
1

如果我在three.js中有一个对象应用了纹理(彩色纹理),例如一辆汽车 - 我如何向表面添加部分反射,以便最终材质可以说是组合一个闪亮的红色金属和现场的反映?是否可以将反射(使用立方体贴图)与Three.js上的材质结合使用?

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

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

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

如果它是能够将材料结合,是能够控制每个部分的不透明度(原始材料vs反射)来控制表面是如何反射的?

非常感谢

回答

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是应用于网格的材质 - 尽管变量名称有不寻常的选择。)

+0

感谢您的回复。我同意你关于不透明度,我只是试图用它来描述反射率。我曾假设,为了模拟反射率,必须使用立方体贴图和某种不透明度,因为真实反射是不可能的。您提到的最后一步是我不确定的那一步 - 如何添加纹理以及反射材质?谢谢 – Oriental

+0

我为你扩大了答案。有很多参数和材料选择。你只需要尝试一下。 :-) – WestLangley

相关问题