2013-12-23 75 views
0

我在設置我的粒子上的不可見背景和Alpha通道時遇到了問題。Three.js:背景和png粒子的不可見背景

對於聖誕節我想用您的示例腳本wegl_particles_sprite。適應這種情況。我在前臺設置了一個全屏div的代碼,併成功使其無法點擊,以便我仍然可以使用我的網站。問題是我無法將png alpha通道設置爲透明,即使使用transparent=true;

首先,我設置背景透明:OK

renderer = new THREE.WebGLRenderer({ clearAlpha: 1, alpha:true }); 

但不能加載我的alpha通道transparents雪花。需要幫助某人制作我的聖誕魔法?

編輯:對不起,輸入錯誤,問題依然存在!對於顆粒^^

+0

你能舉一個活生生的例子來證明這個問題嗎? – WestLangley

+0

我同意westLangley。我們需要一個例子。或者至少一個截圖。 – Gero3

+0

[http://jsfiddle.net/ketzylcoatl/3b75p/5/](http://jsfiddle.net/ketzylcoatl/3b75p/5/),代碼,[http://jsfiddle.net/ketzylcoatl/3b75p/ 5 /嵌入式/結果/](http://jsfiddle.net/ketzylcoatl/3b75p/5/embedded/result/)的全屏結果,我無法從遠URL加載PNG。 – gronaz

回答

0

不應該說是

renderer = new THREE.WebGLRenderer({ clearAlpha: 1, alpha:true }); 
+0

請解釋您的答案以何種方式不同。 –

+0

這會產生一個運行時錯誤: 的α=真 這臺three.js所webglrenderer使用Alpha透明 阿爾法:真 – spassvogel

+0

編輯:對不起是打字錯誤,問題依舊!對於粒子^^ – gronaz

0

你用什麼樣的材料的雪花?也許這可能是有用的:

http://threejs.org/examples/webgl_materials_blending.html

最有可能的,你需要做的是這樣

material.transparent = true; 
material.blending = THREE.AdditiveAlphaBlending; 
+0

我使用了默認的'materials [i] = new THREE.ParticleSystemMaterial({size:size,map:sprite,blending:THREE.AdditiveBlending,depthTest:false,transparent:true}); 材料[i] .color.setHSL(color [0],color [1],color [2]); particles = new THREE.ParticleSystem(geometry,materials [i]); '也嘗試了THREE.AdditiveAlphaBlending;沒有成功:-( – gronaz

+0

此外,在你給出的例子:[http://threejs.org/examples/webgl_materials_blending.html](http://threejs.org/examples/webgl_materials_blending.html)它說:'renderer = new THREE.WebGLRenderer({alpha:false});'這不是我的目標,我需要所有的背景都是透明的。 – gronaz

0

最後我成功了。有了上面的代碼和一個已經隱形背景的png,一切似乎都奏效了!正如你可以看到:

http://www.makedifferent.fr

採取代碼[http://jsfiddle.net/ketzylcoatl/3b75p/5/]和享受!

無論如何,新年快樂!