2012-09-11 30 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

相關問題