Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uniform vec4 u_f4ViewportSize;
- uniform float u_fClippingNearDis;
- uniform float u_fClippingFarDis;
- /// Converts OpenGL fragment coordinates to normalized device coordinates (NDC).
- vec3 fragCoordsToNDC(in vec3 _f3FragPos_Ss)
- {
- vec3 f3FragPos_Ns = vec3(_f3FragPos_Ss.xy * u_f4ViewportSize.zw, _f3FragPos_Ss.z);
- f3FragPos_Ns = (f3FragPos_Ns - 0.5) * 2.0;
- return f3FragPos_Ns;
- }
- /// Converts OpenGL normalized device coordinates (NDC) to fragment coordinates.
- vec3 ndcToFragCoord(in vec3 _f3FragPos_Ns)
- {
- vec3 f3FragPos_Ss = (_f3FragPos_Ns + 1.0) * 0.5;
- return vec3(f3FragPos_Ss.xy * u_f4ViewportSize.xy, f3FragPos_Ss.z);
- }
- /// Converts a position in OpenGL's normalized device coordinates (NDC) to the specified space.
- vec4 ndcToSpecificSpacePosition(in vec3 _f3FragPos_Ns, in mat4 _m4Inverse)
- {
- vec4 f4ClipPos;
- f4ClipPos.w = (2.0 * u_fClippingNearDis * u_fClippingFarDis) / (u_fClippingNearDis + u_fClippingFarDis + _f3FragPos_Ns.z * (u_fClippingNearDis - u_fClippingFarDis));
- f4ClipPos.xyz = _f3FragPos_Ns * f4ClipPos.w;
- return _m4Inverse * f4ClipPos;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement