2016-04-15 30 views
0

我有一個場景,其中有一盞燈和鑽石。 燈具性能: 點光源,位置:0 0 30,強度:1,距離60,顏色:白色。 鑽石材料是Phong,顏色:紅色,沒有發光,鏡面:白色,閃亮10.Firefox上的WebGL渲染 - 燈光效果顯示比Chrome更暗

在Chrome瀏覽器上,diamons閃耀爲假設,但在Firefox上鑽石根本不發光,看起來很暗就像有黑色的東西)。

我試圖在桌面Windows和Android手機上同時使用Firefox。

我想問一下我錯過了什麼?

下面是我的代碼設置:

// Renderer: 
ren=new THREE.WebGLRenderer({ antialias:true,alpha:true }); 
ren.shadowMap.enabled=true; 
elm.appendChild(ren.domElement); // the renderer is added to a DOM element "elm" 

// Light 
var o=new THREE.PointLight(0xffffff,1,60); 
o.position.set(0,0,30); 
o.name="sun"; // light will be later added to the scene, and use "update materials" flag to update the materials of the entire scene. 

// The diamond's material: (I gave a new parameter "name", for later use. I guess it should not makes trouble to the engine....) 
var mt=new THREE.MeshPhongMaterial({ name:"RedDiamond", transparent:true, opacity:0.85, fog:false, color:0xff0020, specular:0xffffff, shininess:10 }); 

活生生的例子可以在這裏看到:https://www.crazygao.com/VideoGames/Lamps,因爲第一級(加載可能需要一點時間只爲首次開盤現場,雖然尚未不完整)。照明差的問題,甚至在進度場景(使用閃光燈一個)可以看出

我的問題:我應該怎麼做,使鑽石在Firefox中大放異彩,但不會使整個場景在Chrome太亮? (我嘗試在場景中添加環境光,然後在Chrome中變得太亮....)

問題來自我的設置,還是Firefox的本質?我可以採取什麼最好的措施來解決這個問題?

非常感謝

回答

1

我的猜測是,你缺少WebGL的畫布合成與它背後的HTML。默認情況下,瀏覽器預期畫布中像素的值代表預乘alpha值。這意味着有許多可能的無效顏色

例RGBA = 1,1,1,0

這是一個無效的顏色,因爲由於阿爾法= 0和由0 = 0則R,G,和B相乘還必須爲零

當值無效結果是不確定的,所以你會在不同的瀏覽器

This answers covers some of the solutions得到不同的結果。

+0

我已經使用另一臺機器檢查了網站,雖然紋理是RGBA 8位(更正),但該網站在LAMBERT/PHONG材料上顯示完全黑暗,並在BASIC上顯示正確的映射。我擔心的是,照明是一個問題....但爲什麼然後它在除了我測試的其他瀏覽器上工作? (三星Galaxy 2上的火狐) - 如此有線,,,, – Xerix