diff --git a/Shaders/HDR/skydome.vert b/Shaders/HDR/skydome.vert index a141fd672..179547975 100644 --- a/Shaders/HDR/skydome.vert +++ b/Shaders/HDR/skydome.vert @@ -11,6 +11,10 @@ uniform mat4 osg_ModelViewProjectionMatrix; void main() { gl_Position = osg_ModelViewProjectionMatrix * pos; - vRayDir = normalize(pos.xyz); + // 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)); vRayDirView = (osg_ModelViewMatrix * vec4(vRayDir, 0.0)).xyz; }