blob: 16fba0154b74d32a7d7e1e18d9b5971f233ff520 (
plain)
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
|
void default_scatter(vec3 viewVec, vec3 lightDir);
uniform vec4 origin;
void main()
{
//transform vertex
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
vec3 pos = (gl_ModelViewMatrix * gl_Vertex).xyz;
vec3 norm = normalize(gl_NormalMatrix * gl_Normal);
gl_FrontColor = gl_Color;
vec3 ref = reflect(pos, norm);
vec3 d = pos - origin.xyz;
float dist = dot(normalize(d), ref);
vec3 e = d + (ref * max(origin.w-dist, 0.0));
ref = e - origin.xyz;
gl_TexCoord[0] = gl_TextureMatrix[0]*vec4(ref,1.0);
default_scatter(pos.xyz, gl_LightSource[0].position.xyz);
}
|