因此,我试图在我的网站上渲染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 );
},
目前,我的输出如下所示:
感谢所有帮助!
答案 0 :(得分:0)
执行此操作的方法有几种。最灵活的方法是使用画布纹理。然后在其中绘制基本纹理,然后在顶部绘制用户生成的透明纹理,然后将该画布纹理用于您的材料。如果需要,这可以让您在画布上做其他事情。
另一种方法是克隆整个对象,并将克隆附加到同一父对象,然后将用户生成的材质透明地分配给该克隆。.但是您必须注意原始对象及其克隆具有相同的对象定位和旋转/等等,否则您将发生Z角战斗。这是可行的,但也很痛苦。