# File lib/rubygl/shader.rb, line 136 def self.color_shader() Shader.new(''' #version 130 in vec3 position; uniform mat4 modelview; uniform mat4 perspective; void main() { gl_Position = perspective * modelView * vec4(position, 1); } ''',''' #version 130 out vec4 fColor; uniform vec4 color; void main() { fColor = color; } ''') end
# File lib/rubygl/shader.rb, line 104 def self.faceted_shader() Shader.new(''' #version 130 in vec3 position; out vec3 vPosition; uniform mat4 modelview; uniform mat4 perspective; void main() { vec4 hPosition = modelview * vec4(position, 1); vPosition = hPosition.xyz; gl_Position = perspective * hPosition; } ''',''' #version 130 in vec3 vPosition; out vec4 fColor; uniform vec4 color; uniform vec3 light; void main() { vec3 dx = dFdy(vPosition); vec3 dy = dFdx(vPosition); vec3 triangle_norm = normalize(cross(dx, dy)); float factor = clamp(dot(triangle_norm, light), 0, 1); fColor = vec4(color.xyz * factor, color.w); } ''') end
# File lib/rubygl/shader.rb, line 157 def self.phong_shader() Shader.new(''' #version 130 in vec3 position; in vec3 normal; out vec3 vPosition; out vec3 vNormal; uniform mat4 modelview; uniform mat4 perspective; void main() { vec4 hPosition = modelview * vec4(position, 1); vPosition = hPosition.xyz; vNormal = (modelview * vec4(normal, 1)).xyz; gl_Position = perspective * hPosition; } ''',''' #version 130 in vec3 vPosition; in vec3 vNormal; out vec4 fColor; uniform vec4 color; uniform vec3 light; float PhongIntensity(vec3 pos, vec3 norm) { vec3 N = normalize(norm); vec3 L = normalize(light - pos); vec3 E = normalize(pos); vec3 R = reflect(L, N); float diffuse = abs(dot(N, L)); float specular = abs(dot(R, E)); return clamp(pow(specular, 10) + diffuse, 0, 1); } void main() { float intensity = PhongIntensity(vPosition, vNormal); fColor = vec4(intensity * color.xyz, color.w); } ''') end
Generated with the Darkfish Rdoc Generator 2.