@@ -29,11 +29,11 @@ vec3 nbl_glsl_MC_getNormalizedWorldSpaceN()
2929{
3030 return normalizedN;
3131}
32- vec3 worldPosition;
33- mat2x3 dPosdScreen = mat2x3(vec3( 0.0),vec3(0.0)); // TODO
34- mat2x3 nbl_glsl_MC_getdPos ()
32+ // TODO: compute from barycentrics
33+ mat2x3 nbl_glsl_perturbNormal_dPdSomething() {return mat2x3(0.0);}
34+ mat2 nbl_glsl_perturbNormal_dUVdSomething ()
3535{
36- return dPosdScreen ;
36+ return mat2(0.0) ;
3737}
3838#define _NBL_USER_PROVIDED_MATERIAL_COMPILER_GLSL_BACKEND_FUNCTIONS_
3939#include <nbl/builtin/glsl/material_compiler/common.glsl>
@@ -115,6 +115,7 @@ void main()
115115
116116 nbl_glsl_xoroshiro64star_state_t scramble_start_state; // this should get advanced for secondary rays by 3 or 4 iterations
117117
118+ vec3 worldPosition;
118119 nbl_glsl_MC_instr_stream_t gcs;
119120 nbl_glsl_MC_instr_stream_t rnps;
120121 nbl_glsl_MC_precomputed_t precomputed;
@@ -130,16 +131,9 @@ void main()
130131 // tmp gbuffer reads
131132 const vec2 normalBuffer = texelFetch(encodedNormal,pixelCoord,0).rg;
132133 const vec2 UV = texelFetch(uvCoords,pixelCoord,0).xy;
133- mat2 dUVdScreen = mat2(0.0,0.0,0.0,0.0);/*
134- mat2x3 dBarydScreen;/*
135- {
136- // TODO: future https://diaryofagraphicsprogrammer.blogspot.com/2018/03/triangle-visibility-buffer.html
137- vec4 data;// = texelFetch(barycentricDerivatives,pixelCoord,0);
138- dBarydScreen[0] = vec3(data.rg,-data.r-data.g);
139- dBarydScreen[1] = vec3(data.ba,-data.b-data.a);
140- }
141- dPosdScreen = mat3(vPos[0],vPos[1],vPos[2])*dBarydScreen;
142- */
134+ mat2 dBarydScreen = mat2(0.0); // TODO:
135+ mat2 dUVdBary = mat2(0.0); // TODO:
136+ mat2 dUVdScreen = nbl_glsl_applyChainRule2D(dUVdBary,dBarydScreen);
143137
144138 // unproject
145139 {
@@ -179,7 +173,7 @@ void main()
179173 nbl_glsl_MC_runTexPrefetchStream(nbl_glsl_MC_oriented_material_t_getTexPrefetchStream(material), UV, dUVdScreen);
180174 #endif
181175 #ifdef NORM_PRECOMP_STREAM
182- nbl_glsl_MC_runNormalPrecompStream(nbl_glsl_MC_oriented_material_t_getNormalPrecompStream(material), dUVdScreen, precomputed);
176+ nbl_glsl_MC_runNormalPrecompStream(nbl_glsl_MC_oriented_material_t_getNormalPrecompStream(material), precomputed);
183177 #endif
184178 }
185179 }
0 commit comments