This glTF has a material named Material3
with "alphaMode": "BLEND"
but after using glTF exporter the Material3 alphaMode
is MASK
.
The logic on the exporter is:
if ( material.transparent || material.alphaTest > 0.0 ) {
gltfMaterial.alphaMode = material.opacity < 1.0 ? 'BLEND' : 'MASK';
but looks like it should be:
if ( material.transparent || material.alphaTest > 0.0 ) {
gltfMaterial.alphaMode = 'BLEND';
My solution doesn’t work as well as it seems that the glass looks OPAQUE
We’ve changed this a few times and don’t have a perfect solution for mapping three<->glTF alpha mode values. But I think something like this might be better:
if ( material.transparent ) {
gltfMaterial.alphaMode = 'BLEND';
} else if ( material.alphaTest > 0.0 ) {
gltfMaterial.alphaMode = 'MASK';
}
Your solution seems to be working for this specific case.
Thank you @donmccurdy ,your help is much appreciated.