X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=demos%2Fdesertpillars%2Fdata%2Fsphere.glsl;h=0dd872bd71e4dc800b728e69abdeb46dd6cdcdf2;hp=6144acaadab85db545c2568dbc1214e6afb31c12;hb=e03a752116ab28283bf89dddf1228804cc853a7b;hpb=7834588fc4f3846641bb9eed680a8890b8852a9a diff --git a/demos/desertpillars/data/sphere.glsl b/demos/desertpillars/data/sphere.glsl index 6144acaa..0dd872bd 100644 --- a/demos/desertpillars/data/sphere.glsl +++ b/demos/desertpillars/data/sphere.glsl @@ -1,38 +1,2 @@ -import phong; - -uniform Morph -{ - float morph; -}; - -const float PI = 3.1415926535; -const float OFFSET = 0.001; - -#pragma MSP stage(vertex) -vec3 deform(vec3 p) -{ - vec3 d = cos(p*(2.0*PI)+morph)*0.05; - return p*(1.0+(d.x+d.y+d.z)*sin(morph*0.2)); -} - -vec4 get_vertex_position() override -{ - return vec4(deform(vertex.xyz), 1.0); -} - -vec3 get_vertex_normal() override -{ - vec3 tangent; - if(abs(normal.x)>abs(normal.y)) - tangent = normalize(vec3(-normal.z, 0.0, normal.x)); - else - tangent = normalize(vec3(0.0, -normal.z, normal.y)); - vec3 binormal = cross(normal, tangent); - - vec3 xn = deform(vertex.xyz-tangent*OFFSET); - vec3 xp = deform(vertex.xyz+tangent*OFFSET); - vec3 yn = deform(vertex.xyz-binormal*OFFSET); - vec3 yp = deform(vertex.xyz+binormal*OFFSET); - - return normalize(cross(xp-xn, yp-yn)); -} +import cooktorrance; +import sphere_morph;