| #version 460 |
| #extension GL_EXT_ray_tracing : enable |
| #extension GL_EXT_ray_query : enable |
| #extension GL_NV_displacement_micromap : enable |
| layout(binding = 1) uniform accelerationStructureEXT as; |
| layout(binding = 0) buffer block { |
| vec3 op_pos; |
| vec2 op_bary; |
| uint op_hit; |
| }; |
| void main() |
| { |
| op_pos = gl_HitMicroTriangleVertexPositionsNV[0]; |
| op_pos += gl_HitMicroTriangleVertexPositionsNV[1]; |
| op_pos += gl_HitMicroTriangleVertexPositionsNV[2]; |
| |
| op_bary = gl_HitMicroTriangleVertexBarycentricsNV[0]; |
| op_bary += gl_HitMicroTriangleVertexBarycentricsNV[1]; |
| op_bary += gl_HitMicroTriangleVertexBarycentricsNV[2]; |
| |
| op_hit = gl_HitKindEXT; |
| op_hit &= gl_HitKindFrontFacingTriangleEXT | |
| gl_HitKindBackFacingTriangleEXT | |
| gl_HitKindFrontFacingMicroTriangleNV | |
| gl_HitKindBackFacingMicroTriangleNV; |
| } |