Hi there,
I am doing avatars using threejs, loading gltf and I get some shading patterns on some parts of them although textures are solid color and mesh is good, please see the difference between mine (white background) and gltf online viewer (black background).
I am suspicious of of post-processing shader and composer, so I am adding it here as well.
Any help is much appreciated.
let pixelRatio = window.devicePixelRatio;
let AA = true;
if (pixelRatio > 1) {
AA = false;
}
let renderer = new THREE.WebGLRenderer({
antialias: AA,
powerPreference: "high-performance",
})
renderer.shadowMap.enabled = true;
renderer.toneMapping = THREE.ReinhardToneMapping;
renderer.toneMappingExposure = 1.7;
renderer.gammaFactor = 2.2;
renderer.outputEncoding = THREE.sRGBEncoding;
renderer.setSize ( window.innerWidth , window.innerHeight );
document.getElementById ( 'webgl' ).appendChild ( renderer.domElement );
const composer = new EffectComposer ( renderer );
const renderPass = new RenderPass ( WebScene , camera );
renderPass.renderToScreen = true;
composer.addPass ( renderPass );
const effectFXAA = new ShaderPass( FXAAShader );
effectFXAA.uniforms[ 'resolution' ].value.x = 1 / ( window.innerWidth * pixelRatio );
effectFXAA.uniforms[ 'resolution' ].value.y = 1 / ( window.innerHeight * pixelRatio );
composer.addPass( effectFXAA );
const brightnessContrastShader = new ShaderPass ( BrightnessContrastShader );
brightnessContrastShader.name = 'BrightnessContrast';
brightnessContrastShader.uniforms ['brightness'].value = 0.20 ;
brightnessContrastShader.uniforms ['contrast'].value = 0.20 ;
brightnessContrastShader.renderToScreen = true;
composer.addPass ( brightnessContrastShader );