Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #extension GL_ARB_conservative_depth : enable
- float Fcoef = 2.0 / log2(4194304.0 + 1.0);
- #if CRUS_VERTEX_SHADER
- layout(location = nVERTEX) in vec3 inVertex;
- layout(binding = nTRANSFORM, row_major) uniform TRSM {
- mat4 ProjMatrix;
- mat4 ViewMatrix;
- mat4 ViewProj;
- mat4 ModelView;
- };
- out float logz;
- void main()
- {
- gl_Position = ViewProj * vec4(inVertex, 1.0);
- logz = 1.0 + gl_Position.w;
- gl_Position.z = log2(max(1e-6, logz)) * Fcoef - 1.0;
- }
- #elif CRUS_FRAGMENT_SHADER
- layout(binding = nMATERIAL, shared) uniform CMTS {
- vec4 Clr0;
- };
- layout(location = nFRAG_COLOR, index = 0) out vec4 FragColor;
- layout(depth_less) out float gl_FragDepth;
- in float logz;
- void main()
- {
- FragColor = Clr0;
- gl_FragDepth = log2(logz) * 0.5 * Fcoef;
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement