[英]Three.js Transparency Bug
因此,我正在尝试在我的网站上渲染3D化身,用户可以在该化身上放置角色上的纹理。 我想允许用户制作透明纹理,以便他们可以看到下面的模型。 当前,透明性使躯干的整个正面不可见。 有技巧或窍门吗?
渲染躯干的代码:
onProgress, onError );
loader.load( 'Models/<?php echo "$Item";?>', function ( object ) {
object.traverse( function ( child ) {
if ( child instanceof THREE.Mesh ) {
child.material.map = texture;
child.material.side = THREE.DoubleSide;
child.material.alphaTest = 0.5;
child.material.transparent = true;
}
} );
object.position.y = 50;
object.scale.set(15,15,15);
scene.add( object );
},
目前,我的输出如下所示:
感谢您提供的所有帮助!
有几种方法可以执行此操作。最灵活的方法是使用画布纹理。然后在其中绘制基本纹理,并在顶部绘制用户生成的透明纹理,然后将该画布纹理用作材质。 如果需要,这将使您在画布上做其他工作。
另一种方法是克隆整个对象,并将克隆附加到同一父对象,然后将用户生成的材质透明地分配给该克隆。但是,您必须注意原始对象及其克隆具有相同的定位和旋转/ etc,否则您将陷入Z战。 这是可行的,但也很痛苦。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.