Is there a way to adjust this standard shader to bypass the preprocessor for controlnet? Check out the code here: https://jsfiddle.net/lunchie/mpuanxL3/4/
skinnedMesh.material = new THREE.ShaderMaterial( {
vertexShader: [
'#include <skinning_pars_vertex>',
'varying vec3 vNormal;',
'void main() {',
'#include <skinbase_vertex>',
'#include <begin_vertex>',
'#include <skinning_vertex>',
'#include <project_vertex>',
'mat4 skinMatrix = boneMatX * skinWeight.x + boneMatY * skinWeight.y + boneMatZ * skinWeight.z + boneMatW * skinWeight.w;',
'vNormal = (skinMatrix * vec4(normal, 0.0)).xyz;',
'}'
].join( '\n' ),
fragmentShader: [
'varying vec3 vNormal;',
'void main() {',
' gl_FragColor = vec4(abs(vNormal), 1.0);',
'}'
].join( '\n' ),
skinning: true
} );
The format of the normals being generated doesn't match the controlnet standards, resulting in images like this: https://i.sstatic.net/XcduX.png