我想爲WebGLRenderer中的PhongMaterial中的THREE.SpotLight實現淺色曲奇(或圖案,或輕質紋理或光掩模)。目的是爲了能夠附加光線紋理,如下所示:http://www.idjnow.com/ProductImagesLarge/GOBO-GLASS1C.jpg紋理會降低光線的強度,產生陰影投影。計算Phong着色器中聚光燈錐體的位置
我認爲我有「附加一個紋理光和傳遞作爲一個統一的着色器查找」覆蓋,雖然還沒有能夠測試它,因爲我有問題計算我在聚光燈下的位置錐/點。
我看到射燈的光貢獻,這裏計算的(我直接修改源three.js所,而不是創造我自己的材料):
https://github.com/mrdoob/three.js/blob/master/src/renderers/WebGLShaders.js#L1013
聚光燈的點是一個圓, 對?或者如果它的角度是橢圓的。所以我需要在這裏添加一些代碼,這將告訴我在哪裏聚光燈下我(xy座標)。我可以在紋理查找中映射這些座標,相應地降低spotDiffuse,並希望工作圖案投影。
我怎樣才能計算這些座標相對於每個燈?
或者有沒有更好的方法在Three.js中實現輕型餅乾/圖案/淺色紋理/光罩?我認爲這是遊戲引擎中的一個流行功能,如果擁有類似內置的功能,將會很不錯。 http://docs.unity3d.com/Documentation/Components/class-Light.html描述了我正在尋找的東西(cookie部分)。
真棒,非常感謝!看起來它與我想要的完全一樣或非常接近:)一旦我研究了足夠的代碼,我就會接受。 – yaku 2013-03-31 20:35:11
爲防萬一我的網站被關閉,這裏是jsfiddle:http://jsfiddle.net/evgeni_popov/mekyV/2/ – Popov 2013-04-03 10:32:48
與兩個景點相同的東西:http:// jsfiddle。net/evgeni_popov/mekyV/3/ – Popov 2013-04-03 10:49:53