Compensate for z-flattening when zooming

This commit is contained in:
Matt Keeter 2014-03-24 19:14:17 -04:00
parent e36ff6ae9c
commit 9283aa4752
2 changed files with 9 additions and 0 deletions

View file

@ -1,12 +1,18 @@
#version 120
uniform float zoom;
varying vec3 ec_pos;
void main() {
vec3 base3 = vec3(0.99, 0.96, 0.89);
vec3 base2 = vec3(0.92, 0.91, 0.83);
vec3 base00 = vec3(0.40, 0.48, 0.51);
vec3 ec_normal = normalize(cross(dFdx(ec_pos), dFdy(ec_pos)));
ec_normal.z *= zoom;
ec_normal = normalize(ec_normal);
float a = dot(ec_normal, vec3(0.0, 0.0, 1.0));
float b = dot(ec_normal, vec3(-0.57, -0.57, 0.57));

View file

@ -89,6 +89,9 @@ void Canvas::draw_mesh()
mesh_shader.uniformLocation("view_matrix"),
1, GL_FALSE, view_matrix().data());
// Compensate for z-flattening when zooming
glUniform1f(mesh_shader.uniformLocation("zoom"), 1/zoom);
// Find and enable the attribute location for vertex position
const GLuint vp = mesh_shader.attributeLocation("vertex_position");
glEnableVertexAttribArray(vp);