繁体   English   中英

Three.js透明性错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM