| #version 460 |
| #extension GL_NV_displacement_micromap : enable |
| #extension GL_NV_mesh_shader : enable |
| #extension GL_EXT_ray_query : enable |
| layout(max_vertices = 8, max_primitives = 16, triangles) out; |
| layout(binding = 1) uniform accelerationStructureEXT as; |
| layout(binding = 0) buffer block { |
| vec3 op_pos; |
| vec2 op_bary; |
| }; |
| 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)); |
| } |