2017-08-22 13 views
0

私は円筒形の粒子システムを持っています。 どのようにして明るい色の最大輝度を制御しながら、その半分を「明るく」してより暗い色にスムーズに移行できますか?粒子のための単純な指向性照明

これは、私が何をしたいんが、私は円柱の半径を変更すると、粒子の位置が遠く0からなっているので、軽い側の最軽量の色が軽くなります。..

varying vec3 fpDL; <-- incoming particle position 

vec3 objPos = vec3(0.0, 0.0, 0.0); 
float fragLS = objPos.x + fpDL.x; 
vec3 pColor = vec3(0.3, 0.3, 0.3); 
float lightStrength = 0.001; 
vec3 result = pColor * fragLS * lightStrength; 
gl_FragColor = vec4(result, opacity); 

は、私は明らかに..私は私が尋ねたものを実行する方法を考え出し、この方程式..

答えて

0

に、いくつかの要因が欠けている

varying vec3 fpDL; <-- incoming particle position 

vec3 pColor = vec3(0.3, 0.3, 0.3); 
vec3 lColor = vec3(0.6, 0.6, 0.6); 
float lStrength = 1.0; 

vec3 objPos = vec3(0.0, fpDL.y, 0.0); 
vec3 fragDir = normalize(fpDL - objPos); 
vec3 dirLight = clamp(fragDir * lStrength, 0.0, lStrength) ; 
vec3 result = pColor + (dirLight.x * lColor); 

gl_FragColor = vec4(result, opacity); 
関連する問題