#version 460 #extension GL_NV_displacement_micromap : enable #extension GL_EXT_ray_query : enable layout(binding = 1) uniform accelerationStructureEXT as; layout(binding = 0) buffer block { vec3 op_pos; vec2 op_bary; uint op_hitmask; }; void main() { op_pos = fetchMicroTriangleVertexPositionNV(as, 1, 1, 1, ivec2(0,0)); op_pos += fetchMicroTriangleVertexPositionNV(as, 1, 1, 1, ivec2(0,1)); op_pos += fetchMicroTriangleVertexPositionNV(as, 1, 1, 1, ivec2(1,0)); op_bary = fetchMicroTriangleVertexBarycentricNV(as, 1, 1, 1, ivec2(0,0)); op_bary += fetchMicroTriangleVertexBarycentricNV(as, 1, 1, 1, ivec2(0,1)); op_bary += fetchMicroTriangleVertexBarycentricNV(as, 1, 1, 1, ivec2(1,0)); op_hitmask = gl_HitKindFrontFacingTriangleEXT | gl_HitKindBackFacingTriangleEXT | gl_HitKindFrontFacingMicroTriangleNV | gl_HitKindBackFacingMicroTriangleNV; }