javascript 特里斯|设置透明时对象不可见:材料参数中的true

xfb7svmp  于 2023-10-14  发布在  Java
关注(0)|答案(1)|浏览(85)

我现在正在学习Bruno Simons的课程,在“鬼屋”的演讲中,他演示了如何实现纹理。一切都很好,所有的贴图纹理都工作得很好,但是当设置参数transparent: true时,整个对象都不可见,而不是删除浮置的纹理。

我错过了一个参数吗?或者textureLoader需要更多信息?

eh57zj3b

eh57zj3b1#

确保你使用的纹理有一个合适的alpha通道。Alpha通道应该确定纹理的哪些部分是透明的,哪些不是。您应该使用支持Alpha通道的PNG格式。检查纹理中的alpha值以确保其设置正确。
混合模式:为材质设置正确的混合模式。在Three.js中,你可以使用blending属性来配置它。对于透明度,通常需要将其设置为THREE.NormalBlending或THREE.CustomBlending,并在必要时指定自定义blendSrc和blendDst函数。
试试这个!!

const texture = new THREE.TextureLoader().load('your_texture.png');
const material = new THREE.MeshBasicMaterial({
    map: texture,
    transparent: true,
    blending: THREE.NormalBlending,
    depthTest: true,
    depthWrite: false,
});

const mesh = new THREE.Mesh(yourGeometry, material);
scene.add(mesh);

相关问题