/usr/share/celestia/shaders/haze.vp is in celestia-common 1.6.1+dfsg-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | !!VP1.0
# c[0]..c[3] contains the concatenation of the modelview and projection matrices.
# c[4]..c[7] contains the inverse transpose of the modelview
# c[15] contains the eye position in object space
# c[16] contains the light direction in object space
# c[17] contains H, the normalized sum of the eye and light direction
# c[20] contains the light color * object color
# c[32] contains the ambient light color * object color
# c[33] contains the haze color
# c[40] contains (0, 1, 0, specPower)
# v[OPOS] contains the per-vertex position
# v[NRML] contains the per-vertex normal
# v[TEX0] contains the per-vertex texture coordinate 0
# o[HPOS] output register for homogeneous position
# o[TEX0] output register for texture coordinate 0
# o[COL0] output register for primary color
# R0...R11 temporary registers
# Transform the vertex by the modelview matrix
DP4 R1.x, c[0], v[OPOS];
DP4 R1.y, c[1], v[OPOS];
DP4 R1.z, c[2], v[OPOS];
DP4 R1.w, c[3], v[OPOS];
# Compute the diffuse light component
DP3 R2, v[NRML], c[16];
# Clamp the diffuse component to zero
MAX R2.x, R2, c[40].xxxx;
# Get the vector from the eye to the vertex
ADD R4, c[15], -v[OPOS];
# Normalize it
DP3 R0.w, R4, R4;
RSQ R0.w, R0.w;
MUL R4.xyz, R4, R0.w;
# Haze
DP3 R2.y, v[NRML], R4;
ADD R2.y, c[40].y, -R2.y;
# MUL R2.y, R2.x, R2.y;
MUL o[FOGC].x, R2.x, R2.y;
# Output the texture
MOV o[TEX0], v[TEX0];
# Output the primary color
MOV R0, c[32];
MAD o[COL0], c[20], R2.xxxx, R0;
# MUL o[COL1], R2.y, c[33];
# Output the vertex
MOV o[HPOS], R1;
END
|