jak-project/game/graphics/opengl_renderer/shaders/tfrag3_no_tex.vert
ManDude e3051f90ae
small shader optimizations (#1402)
* small shader optimizations

* revert camera invert
2022-06-01 18:34:19 -04:00

45 lines
1 KiB
GLSL

#version 430 core
layout (location = 0) in vec3 position_in;
layout (location = 1) in vec4 rgba_in;
uniform vec4 hvdf_offset;
uniform mat4 camera;
uniform float fog_constant;
out vec4 fragment_color;
const float SCISSOR_ADJUST = 512.0/448.0;
// this is just for debugging.
void main() {
vec4 transformed = camera[3];
transformed += camera[0] * position_in.x;
transformed += camera[1] * position_in.y;
transformed += camera[2] * position_in.z;
// compute Q
float Q = fog_constant / transformed.w;
// perspective divide!
transformed.xyz *= Q;
// offset
transformed.xyz += hvdf_offset.xyz;
// correct xy offset
transformed.xy -= (2048.);
// correct z scale
transformed.z /= (8388608);
transformed.z -= 1;
// correct xy scale
transformed.x /= (256);
transformed.y /= -(128);
// hack
transformed.xyz *= transformed.w;
// scissoring area adjust
transformed.y *= SCISSOR_ADJUST;
gl_Position = transformed;
// time of day lookup
fragment_color = rgba_in;
}