#version 450 #extension GL_NV_fragment_shader_barycentric : require layout(location = 0) out vec2 value; layout(set = 0, binding = 0) readonly buffer Vertices { vec2 uvs[]; }; void main () { int prim = gl_PrimitiveID; vec2 uv0 = uvs[3 * prim + 0]; vec2 uv1 = uvs[3 * prim + 1]; vec2 uv2 = uvs[3 * prim + 2]; value = gl_BaryCoordNV.x * uv0 + gl_BaryCoordNV.y * uv1 + gl_BaryCoordNV.z * uv2; value += gl_BaryCoordNoPerspNV.x * uv0 + gl_BaryCoordNoPerspNV.y * uv1 + gl_BaryCoordNoPerspNV.z * uv2; }