2021-04-10 09:14:16 +00:00
|
|
|
#version 330 core
|
|
|
|
|
|
|
|
layout(location = 0) in vec4 pos;
|
|
|
|
|
2021-07-28 07:40:04 +00:00
|
|
|
out vec3 vRayDir;
|
|
|
|
out vec3 vRayDirView;
|
2021-04-10 09:14:16 +00:00
|
|
|
|
2021-07-28 07:40:04 +00:00
|
|
|
uniform mat4 osg_ModelViewMatrix;
|
2021-04-10 09:14:16 +00:00
|
|
|
uniform mat4 osg_ModelViewProjectionMatrix;
|
|
|
|
|
|
|
|
void main()
|
|
|
|
{
|
|
|
|
gl_Position = osg_ModelViewProjectionMatrix * pos;
|
2021-07-29 09:55:01 +00:00
|
|
|
// Get the camera height (0 being the ground)
|
|
|
|
vec4 groundPoint = osg_ModelViewMatrix * vec4(0.0, 0.0, 0.0, 1.0);
|
|
|
|
float altitude = length(groundPoint);
|
|
|
|
// Compensate for the skydome being fixed on the ground
|
|
|
|
vRayDir = normalize(pos.xyz - vec3(0.0, 0.0, altitude));
|
2021-07-28 07:40:04 +00:00
|
|
|
vRayDirView = (osg_ModelViewMatrix * vec4(vRayDir, 0.0)).xyz;
|
2021-04-10 09:14:16 +00:00
|
|
|
}
|