Skip to content

Commit bec4ca8

Browse files
I'm dumb part 3
1 parent 81e59d9 commit bec4ca8

File tree

3 files changed

+10
-11
lines changed

3 files changed

+10
-11
lines changed

examples_tests/41.VisibilityBuffer/fillVBuffer.frag

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ void main()
1919
{
2020
vec2 bary = nbl_glsl_barycentric_frag_get();
2121

22-
triangleIDdrawID_unorm16Bary_dBarydScreenHalf2x2[0] = bitfieldInsert(gl_PrimitiveID,drawGUID,MAX_TRIANGLES_IN_BATCH,32-MAX_TRIANGLES_IN_BATCH);
22+
const int triangleIDBitcount = findMSB(MAX_TRIANGLES_IN_BATCH-1)+1;
23+
triangleIDdrawID_unorm16Bary_dBarydScreenHalf2x2[0] = bitfieldInsert(gl_PrimitiveID,drawGUID,triangleIDBitcount,32-triangleIDBitcount);
2324
triangleIDdrawID_unorm16Bary_dBarydScreenHalf2x2[1] = packUnorm2x16(bary);
2425
triangleIDdrawID_unorm16Bary_dBarydScreenHalf2x2[2] = packHalf2x16(dFdx(bary));
2526
triangleIDdrawID_unorm16Bary_dBarydScreenHalf2x2[3] = packHalf2x16(dFdy(bary));

include/nbl/builtin/glsl/barycentric/frag.glsl

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,11 @@ vec3 nbl_glsl_barycentric_frag_getVertexPos(in uint drawID, in uint primID, in u
4848
#include <nbl/builtin/glsl/barycentric/utils.glsl>
4949
vec2 nbl_glsl_barycentric_frag_get()
5050
{
51-
return nbl_glsl_barycentric_reconstructBarycentrics(
52-
nbl_glsl_barycentric_frag_pos-nbl_glsl_barycentric_frag_provokingPos,
53-
mat2x3(
54-
nbl_glsl_barycentric_frag_getVertexPos(nbl_glsl_barycentric_frag_getDrawID(),gl_PrimitiveID,1u)-nbl_glsl_barycentric_frag_provokingPos,
55-
nbl_glsl_barycentric_frag_getVertexPos(nbl_glsl_barycentric_frag_getDrawID(),gl_PrimitiveID,2u)-nbl_glsl_barycentric_frag_provokingPos
56-
)
57-
);
51+
return nbl_glsl_barycentric_reconstructBarycentrics(nbl_glsl_barycentric_frag_pos,mat3(
52+
nbl_glsl_barycentric_frag_provokingPos,
53+
nbl_glsl_barycentric_frag_getVertexPos(nbl_glsl_barycentric_frag_getDrawID(),gl_PrimitiveID,1u),
54+
nbl_glsl_barycentric_frag_getVertexPos(nbl_glsl_barycentric_frag_getDrawID(),gl_PrimitiveID,2u)
55+
));
5856
}
5957
#define _NBL_BUILTIN_GLSL_BARYCENTRIC_FRAG_GET_DEFINED_
6058
#endif

include/nbl/builtin/glsl/barycentric/utils.glsl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ vec2 nbl_glsl_barycentric_reconstructBarycentrics(in vec3 positionRelativeToV0,
1313

1414
const float qe0 = dot(positionRelativeToV0,edges[0]);
1515
const float qe1 = dot(positionRelativeToV0,edges[1]);
16-
vec2 protoBary = vec2(qe0*e1_2-qe1*e0e1,qe1*e0_2-qe0*e0e1);
16+
const vec2 protoBary = vec2(qe0*e1_2-qe1*e0e1,qe1*e0_2-qe0*e0e1);
1717

18-
const float rcp_dep = 1.f/(e0_2*e1_2+e0e1*e0e1);
18+
const float rcp_dep = 1.f/(e0_2*e1_2-e0e1*e0e1);
1919
return protoBary*rcp_dep;
2020
}
2121
vec2 nbl_glsl_barycentric_reconstructBarycentrics(in vec3 pointPosition, in mat3 vertexPositions)
2222
{
23-
return nbl_glsl_barycentric_reconstructBarycentrics(pointPosition-vertexPositions[0],mat2x3(vertexPositions[1]-vertexPositions[0],vertexPositions[2]-vertexPositions[0]));
23+
return nbl_glsl_barycentric_reconstructBarycentrics(pointPosition-vertexPositions[2],mat2x3(vertexPositions[0]-vertexPositions[2],vertexPositions[1]-vertexPositions[2]));
2424
}
2525

2626
vec3 nbl_glsl_barycentric_expand(in vec2 compactBarycentrics)

0 commit comments

Comments
 (0)