26 lines
706 B
GLSL
26 lines
706 B
GLSL
#version 330 core
|
|
|
|
layout(location = 0)in vec3 inPosition;
|
|
layout(location = 2)in vec2 inTexCoord;
|
|
layout(location = 1)in vec3 inNormal;
|
|
|
|
uniform float flatSphere;
|
|
uniform vec2 screenSize;
|
|
uniform mat4 mvp;
|
|
uniform vec3 camera;
|
|
|
|
out vec2 texCoord;
|
|
out vec3 normal;
|
|
|
|
void main(void)
|
|
{
|
|
texCoord = vec2(inTexCoord.x/2, inTexCoord.y);
|
|
vec2 flatTexCoord = texCoord;
|
|
texCoord = mix(texCoord, flatTexCoord, vec2(flatSphere));
|
|
normal = inNormal.xyz;
|
|
vec4 flatPos = vec4(inTexCoord.x*2 -1, inTexCoord.y*2 -1, 0.0, 1.0);
|
|
vec3 position = vec3(inPosition.xy, inPosition.z - 1);
|
|
vec4 projPos = mvp * vec4(position*camera.z, 1.0);
|
|
gl_Position = mix(projPos, flatPos, vec4(flatSphere));
|
|
}
|