Mam problemy z włączaniem mgły sceny w THREE.ShaderMaterial
. Obecnie mgła wpływa tylko na inne geometrie, ale mgła nie ma wpływu na Skydome, który jest tworzony przy użyciu THREE.ShaderMaterial.Parametr mgły ShaderMaterial nie działa
Wygląda na to, że w ShaderMaterial jest parametr boolowski fog
, który najwyraźniej powinien mieć wartość true, aby użyć mgły sceny. Używanie jej prowadzi jednak do błędów w wersji uniforms.fogColor is undefined
. Błąd występuje przy WebGLRenderer
funkcji refreshUniformsFog
.
Czy to błąd, czy też używam tego parametru nieprawidłowo?
Walizka testowa oparta na webgl_materials_lightmap.html przykład tutaj: http://jsfiddle.net/HXhb4/ Jeśli ustawisz mgła na true w linii 62 i wykonasz test, otrzymasz błędy. To, co chciałbym zrobić, to skydome, na które ma wpływ mgła, jak model lub skydome stworzony przy użyciu normalnego MeshPhongMaterial.
Dziękuję bardzo, to ma sens! Włączenie logiki przeciwmgielnej było bardzo łatwe, wystarczyło włączyć do shaderów "THREE.ShaderChunk.fog_pars_fragment' i" THREE.ShaderChunk.fog_fragment'. – yaku
Chciałbym zrobić to samo, o którym tutaj wspomniano, jednak nie mam doświadczenia w pisaniu shaderów. Czy istnieje szansa, że Ty lub ktoś inny mógł przesłać jakiś kod, aby dowiedzieć się, w jaki sposób została dodana logika modułu cieniującego, aby ta odpowiedź zadziałała? Dzięki! – Brannon
@Brannon, proszę sprawdzić moją odpowiedź poniżej z przykładem kodu – imbrizi