Hello guys !
I got an issue, i’m on it since 4 days and i realy dont understand why i got this !!
So i have an OBJ with all materials (DiffuseMaps, MetalnessMaps, roughnessMaps etc…), its all good on the obj one, but when i try to export a GLB with GLTFExporter, i got a lot of issue with materials and especially the Roughness and metalnessMap.
I’m doing this :
/*
Canvas Final Composite
*/const texture_merged = document.createElement('canvas'); texture_merged.width = width; texture_merged.height = height; const texture_ctx = texture_merged.getContext('2d'); texture_ctx.fillRect(0, 0, width, height); texture_ctx.globalCompositeOperation = "lighter"; let tmp_canvas = document.createElement('canvas'); tmp_canvas.width = width; tmp_canvas.height = height; let tmp_ctx = tmp_canvas.getContext('2d'); tmp_ctx.globalCompositeOperation = "multiply"; /* RED Channel : AO */ if(aoMap){ tmp_ctx.clearRect(0, 0, width, height) tmp_ctx.drawImage(aoMap.image, 0, 0); tmp_ctx.fillStyle = "#FF0000"; tmp_ctx.fillRect(0, 0, width, height); texture_ctx.drawImage(tmp_canvas, 0, 0); } /* GREEN Channel : Roughness */ if(roughnessMap){ tmp_ctx.clearRect(0, 0, width, height) tmp_ctx.drawImage(roughnessMap.image, 0, 0); tmp_ctx.fillStyle = "#00FF00"; tmp_ctx.fillRect(0, 0, width, height); texture_ctx.drawImage(tmp_canvas, 0, 0); } /* BLUE Channel : Metalness */ if(metalnessMap){ tmp_ctx.clearRect(0, 0, width, height) tmp_ctx.drawImage(metalnessMap.image, 0, 0); tmp_ctx.fillStyle = "#0000FF"; tmp_ctx.fillRect(0, 0, width, height); texture_ctx.drawImage(tmp_canvas, 0, 0); } /* Draw Final Texture */ texture_ctx.drawImage(tmp_canvas, 0, 0); return texture_merged;
To generate the aoRoughnessMetalnessMap to generate the gltf, but i got the wrong materials … i dontk now why, and i dont know why my diffuseMaps are more visible on the GLB exported than the OBJ …
The render is less metalness like the factors are not good as the obj values