2019-04-08 13:49:26 +09:00

35 lines
735 B
GLSL

#version 440
layout(location=0) in vec3 coord3d;
layout(location=1) in vec3 v_normal;
layout(location=2) in vec3 v_color;
layout(location=3) in vec2 v_texmap;
out vec3 reflectDir;
out vec3 refractDir;
uniform float RefractionIndex;
uniform mat4 ModelMatrix;
uniform mat4 mvp;
uniform bool DrawSkyBox;
uniform vec3 WorldCamPos;
void main(void)
{
//For drawing a mesh with reflected skybox
if (DrawSkyBox == true)
reflectDir = coord3d;
else
{
vec3 P = (ModelMatrix * vec4(coord3d, 1)).xyz;
vec3 N = normalize(ModelMatrix * vec4(v_normal, 1)).xyz;
vec3 V = normalize(WorldCamPos - coord3d);
reflectDir = reflect(-V, N);
refractDir = refract(-V, N, RefractionIndex);
}
gl_Position = mvp * vec4(coord3d, 1.0f);
}