@@ -33,17 +33,17 @@ struct ProjectedSphericalTriangle
3333 return retval;
3434 }
3535
36- vector4_type computeBilinearPatch (NBL_CONST_REF_ARG ( vector3_type) receiverNormal, bool isBSDF)
36+ vector4_type computeBilinearPatch (const vector3_type receiverNormal, bool isBSDF)
3737 {
3838 const scalar_type minimumProjSolidAngle = 0.0 ;
3939
4040 matrix <T, 3 , 3 > m = matrix <T, 3 , 3 >(tri.vertex0, tri.vertex1, tri.vertex2);
41- const vector3_type bxdfPdfAtVertex = math::conditionalAbsOrMax (isBSDF, nbl::hlsl::mul (m, receiverNormal), ( vector3_type) minimumProjSolidAngle);
41+ const vector3_type bxdfPdfAtVertex = math::conditionalAbsOrMax (isBSDF, nbl::hlsl::mul (m, receiverNormal), hlsl::promote< vector3_type>( minimumProjSolidAngle) );
4242
4343 return bxdfPdfAtVertex.yyxz;
4444 }
4545
46- vector3_type generate (NBL_REF_ARG (scalar_type) rcpPdf, scalar_type solidAngle, NBL_CONST_REF_ARG ( vector3_type) cos_vertices, NBL_CONST_REF_ARG ( vector3_type) sin_vertices, scalar_type cos_a, scalar_type cos_c, scalar_type csc_b, scalar_type csc_c, NBL_CONST_REF_ARG ( vector3_type) receiverNormal, bool isBSDF, NBL_CONST_REF_ARG ( vector2_type) _u)
46+ vector3_type generate (NBL_REF_ARG (scalar_type) rcpPdf, scalar_type solidAngle, const vector3_type cos_vertices, const vector3_type sin_vertices, scalar_type cos_a, scalar_type cos_c, scalar_type csc_b, scalar_type csc_c, const vector3_type receiverNormal, bool isBSDF, const vector2_type _u)
4747 {
4848 vector2_type u;
4949 // pre-warp according to proj solid angle approximation
@@ -58,15 +58,15 @@ struct ProjectedSphericalTriangle
5858 return L;
5959 }
6060
61- vector3_type generate (NBL_REF_ARG (scalar_type) rcpPdf, NBL_CONST_REF_ARG ( vector3_type) receiverNormal, bool isBSDF, NBL_CONST_REF_ARG ( vector2_type) u)
61+ vector3_type generate (NBL_REF_ARG (scalar_type) rcpPdf, const vector3_type receiverNormal, bool isBSDF, const vector2_type u)
6262 {
6363 scalar_type cos_a, cos_c, csc_b, csc_c;
6464 vector3_type cos_vertices, sin_vertices;
6565 const scalar_type solidAngle = tri.solidAngleOfTriangle (cos_vertices, sin_vertices, cos_a, cos_c, csc_b, csc_c);
6666 return generate (rcpPdf, solidAngle, cos_vertices, sin_vertices, cos_a, cos_c, csc_b, csc_c, receiverNormal, isBSDF, u);
6767 }
6868
69- scalar_type pdf (scalar_type solidAngle, NBL_CONST_REF_ARG ( vector3_type) cos_vertices, NBL_CONST_REF_ARG ( vector3_type) sin_vertices, scalar_type cos_a, scalar_type cos_c, scalar_type csc_b, scalar_type csc_c, NBL_CONST_REF_ARG ( vector3_type) receiverNormal, bool receiverWasBSDF, NBL_CONST_REF_ARG ( vector3_type) L)
69+ scalar_type pdf (scalar_type solidAngle, const vector3_type cos_vertices, const vector3_type sin_vertices, scalar_type cos_a, scalar_type cos_c, scalar_type csc_b, scalar_type csc_c, const vector3_type receiverNormal, bool receiverWasBSDF, const vector3_type L)
7070 {
7171 scalar_type pdf;
7272 const vector2_type u = sphtri.generateInverse (pdf, solidAngle, cos_vertices, sin_vertices, cos_a, cos_c, csc_b, csc_c, L);
@@ -76,7 +76,7 @@ struct ProjectedSphericalTriangle
7676 return pdf * bilinear.pdf (u);
7777 }
7878
79- scalar_type pdf (NBL_CONST_REF_ARG ( vector3_type) receiverNormal, bool receiverWasBSDF, NBL_CONST_REF_ARG ( vector3_type) L)
79+ scalar_type pdf (const vector3_type receiverNormal, bool receiverWasBSDF, const vector3_type L)
8080 {
8181 scalar_type pdf;
8282 const vector2_type u = sphtri.generateInverse (pdf, L);
0 commit comments