interferences réalistes
This commit is contained in:
@ -45,9 +45,12 @@ void main() {
|
||||
float relY = (pixelY - center.y) * zoom;
|
||||
|
||||
float radiusSq = relX * relX + relY * relY;
|
||||
float ringFactorBase = radiusSq * 0.065;
|
||||
|
||||
float wDelta = (relX * angleM1 + relY * angleM1_Y) * 200.0;
|
||||
float currDeltaBase = deltaLnm + wDelta;
|
||||
|
||||
float cosFactor = 1.0 - (radiusSq * 0.000004);
|
||||
|
||||
float currDelta = (deltaLnm * cosFactor) + wDelta;
|
||||
|
||||
vec3 accumColor = vec3(0.0);
|
||||
|
||||
@ -55,15 +58,16 @@ void main() {
|
||||
if (i >= lambdasCount) break;
|
||||
|
||||
float l = lambdas[i];
|
||||
|
||||
if (l < 1.0) l = 550.0;
|
||||
|
||||
vec3 baseColorVec = WavelengthToRGB(l);
|
||||
float currDelta = currDeltaBase - ringFactorBase;
|
||||
|
||||
float K = PI / l;
|
||||
float phase = currDelta * K;
|
||||
|
||||
float intensity = cos(phase);
|
||||
intensity = intensity * intensity;
|
||||
intensity = intensity * intensity;
|
||||
|
||||
accumColor += baseColorVec * intensity;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user