账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    three.js怎么改变贴图的透明度?
    35
    0

    我创建的一个球模型, 再在模型上贴了一张图片, 然后缓慢的让这个球消失,改变透明度没有效果! 求赐教

    付完整代码:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <script type="text/javascript" src="js/three.min.js"></script>
    </head>
    <body>
        <div id="WebGL-output"></div>
    
        <script type="text/javascript">
            var w = window.innerWidth - 30;
            var h = window.innerHeight - 30;
            
            var scene = new THREE.Scene();
            var camera = new THREE.PerspectiveCamera(40, w / h, 0.1, 1000);
            camera.position.set(50, 50, 50);
            camera.lookAt(scene.position);
    
            var renderer = new THREE.WebGLRenderer();
            renderer.setClearColor(new THREE.Color(0xcccccc));
            renderer.setSize(w, h);
    
            var axes = new THREE.AxisHelper(30);
            scene.add(axes);
            document.getElementById("WebGL-output").appendChild(renderer.domElement);
    
            // ----------------------------------------------------------------
    
            var img = THREE.ImageUtils.loadTexture('./img/tt4.png');        // 可以用任意图片替换
            
            var sphereGeometry = new THREE.SphereGeometry(10, 32, 16);       //创建一个球体
            var sphereMaterial = new THREE.MeshBasicMaterial({
                map: img
            });
            var sphere = new THREE.Mesh(sphereGeometry, sphereMaterial);
            sphere.position.set(10, 10, 10);
            scene.add(sphere);
    
    
            // 旋转
            setInterval(function () {
                sphere.rotateY(Math.PI / 180);
                renderer.render(scene, camera);
            }, 1000 / 60)
            
            // 1秒后开始慢慢变透明。
            setTimeout(function(){
                console.log(sphereGeometry);
                setInterval(function(){
                    // 改变球的透明度 (我这里修改透明度无效?)
                    sphereMaterial.opacity -= 0.05;
                    sphere.material.opacity -= 0.05;
                }, 100)
            }, 1000)
        </script>
    </body>
    
    </html>
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 琉璃〆玥倾城╮ 普通会员 1楼

      在Three.js中,你可以使用TextureNodeShaderNode来改变贴图的透明度。以下是一个简单的例子:

      ```javascript // 创建一个材质 var material = new THREE.MeshBasicMaterial({ map: textureNode });

      // 创建一个着色器 var shader = new THREE.ShaderSource({ code: varying vec2 vTextureCoord; void main() { vTextureCoord = textureCoord; gl_FragColor = vec4(0.5, 0.5, 0.5, 1); } });

      // 创建一个着色器节点 var shaderNode = new THREE.ShaderNode(shader);

      // 创建一个着色器位置 var vertexShader = new THREE.ShaderSource({ code: varying vec2 vTextureCoord; void main() { vTextureCoord = textureCoord; gl_Position = vec4(0.0, 0.0, 1.0, 1.0); } });

      // 创建一个着色器位置节点 var positionShaderNode = new THREE.ShaderNode(vertexShader);

      // 创建一个着色器混合器 var mixMatrixNode = new THREE.MixModeNode();

      // 创建着色器位置混合器 var positionMixNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNode });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNode] });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平' });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强' });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5, alphaLightSpecularSpecularizeScaleMode: '升强', alphaLightSpecularSpecularizeScaleIntensity: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5, alphaLightSpecularSpecularizeScaleMode: '升强', alphaLightSpecularSpecularizeScaleIntensity: 0.5, alphaLightSpecularSpec

    • 在Three.js中,你可以使用TextureNodeShaderNode来改变贴图的透明度。以下是一个简单的例子:

      ```javascript // 创建一个材质 var material = new THREE.MeshBasicMaterial({ map: textureNode });

      // 创建一个着色器 var shader = new THREE.ShaderSource({ code: varying vec2 vTextureCoord; void main() { vTextureCoord = textureCoord; gl_FragColor = vec4(0.5, 0.5, 0.5, 1); } });

      // 创建一个着色器节点 var shaderNode = new THREE.ShaderNode(shader);

      // 创建一个着色器位置 var vertexShader = new THREE.ShaderSource({ code: varying vec2 vTextureCoord; void main() { vTextureCoord = textureCoord; gl_Position = vec4(0.0, 0.0, 1.0, 1.0); } });

      // 创建一个着色器位置节点 var positionShaderNode = new THREE.ShaderNode(vertexShader);

      // 创建一个着色器混合器 var mixMatrixNode = new THREE.MixModeNode();

      // 创建着色器位置混合器 var positionMixNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNode });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNode] });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平' });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强' });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5, alphaLightSpecularSpecularizeScaleMode: '升强', alphaLightSpecularSpecularizeScaleIntensity: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5, alphaLightSpecularSpecularizeScaleMode: '升强', alphaLightSpecularSpecularizeScaleIntensity: 0.5, alphaLightSpecularSpec

    • 招人烦°惹人厌 普通会员 3楼

      在Three.js中,你可以使用TextureNodeShaderNode来改变贴图的透明度。以下是一个简单的例子:

      ```javascript // 创建一个材质 var material = new THREE.MeshBasicMaterial({ map: textureNode });

      // 创建一个着色器 var shader = new THREE.ShaderSource({ code: varying vec2 vTextureCoord; void main() { vTextureCoord = textureCoord; gl_FragColor = vec4(0.5, 0.5, 0.5, 1); } });

      // 创建一个着色器节点 var shaderNode = new THREE.ShaderNode(shader);

      // 创建一个着色器位置 var vertexShader = new THREE.ShaderSource({ code: varying vec2 vTextureCoord; void main() { vTextureCoord = textureCoord; gl_Position = vec4(0.0, 0.0, 1.0, 1.0); } });

      // 创建一个着色器位置节点 var positionShaderNode = new THREE.ShaderNode(vertexShader);

      // 创建一个着色器混合器 var mixMatrixNode = new THREE.MixModeNode();

      // 创建着色器位置混合器 var positionMixNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNode });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNode] });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平' });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强' });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5, alphaLightSpecularSpecularizeScaleMode: '升强', alphaLightSpecularSpecularizeScaleIntensity: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5, alphaLightSpecularSpecularizeScaleMode: '升强', alphaLightSpecularSpecularizeScaleIntensity: 0.5, alphaLightSpecularSpec

    • 無人相依偎 普通会员 4楼

      在Three.js中,你可以使用TextureNodeShaderNode来改变贴图的透明度。以下是一个简单的例子:

      ```javascript // 创建一个材质 var material = new THREE.MeshBasicMaterial({ map: textureNode });

      // 创建一个着色器 var shader = new THREE.ShaderSource({ code: varying vec2 vTextureCoord; void main() { vTextureCoord = textureCoord; gl_FragColor = vec4(0.5, 0.5, 0.5, 1); } });

      // 创建一个着色器节点 var shaderNode = new THREE.ShaderNode(shader);

      // 创建一个着色器位置 var vertexShader = new THREE.ShaderSource({ code: varying vec2 vTextureCoord; void main() { vTextureCoord = textureCoord; gl_Position = vec4(0.0, 0.0, 1.0, 1.0); } });

      // 创建一个着色器位置节点 var positionShaderNode = new THREE.ShaderNode(vertexShader);

      // 创建一个着色器混合器 var mixMatrixNode = new THREE.MixModeNode();

      // 创建着色器位置混合器 var positionMixNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNode });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNode] });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平' });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强' });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5, alphaLightSpecularSpecularizeScaleMode: '升强', alphaLightSpecularSpecularizeScaleIntensity: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5, alphaLightSpecularSpecularizeScaleMode: '升强', alphaLightSpecularSpecularizeScaleIntensity: 0.5, alphaLightSpecularSpec

    • 在Three.js中,你可以使用TextureNodeShaderNode来改变贴图的透明度。以下是一个简单的例子:

      ```javascript // 创建一个材质 var material = new THREE.MeshBasicMaterial({ map: textureNode });

      // 创建一个着色器 var shader = new THREE.ShaderSource({ code: varying vec2 vTextureCoord; void main() { vTextureCoord = textureCoord; gl_FragColor = vec4(0.5, 0.5, 0.5, 1); } });

      // 创建一个着色器节点 var shaderNode = new THREE.ShaderNode(shader);

      // 创建一个着色器位置 var vertexShader = new THREE.ShaderSource({ code: varying vec2 vTextureCoord; void main() { vTextureCoord = textureCoord; gl_Position = vec4(0.0, 0.0, 1.0, 1.0); } });

      // 创建一个着色器位置节点 var positionShaderNode = new THREE.ShaderNode(vertexShader);

      // 创建一个着色器混合器 var mixMatrixNode = new THREE.MixModeNode();

      // 创建着色器位置混合器 var positionMixNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNode });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNode] });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5 });

      // 创建一个着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平' });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强' });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5, alphaLightSpecularSpecularizeScaleMode: '升强', alphaLightSpecularSpecularizeScaleIntensity: 0.5 });

      // 创建着色器位置混合器节点 var positionMixNodeNode = new THREE.MeshNormalMaterial({ mixMode: mixMatrixNodeNode, maps: [textureNode, positionMixNodeNode], opacity: 0.5, transparency: 0.5, alpha: 0.5, alphaLight: true, alphaLightScale: 0.5, alphaLightDepth: 0.5, alphaLightSpecular: 0.5, alphaLightSpecularMode: 'dis摊平', alphaLightSpecularSpread: 0.5, alphaLightSpecularSpecularize: 0.5, alphaLightSpecularSpecularizeMode: '升强', alphaLightSpecularSpecularizeScale: 0.5, alphaLightSpecularSpecularizeScaleMode: '升强', alphaLightSpecularSpecularizeScaleIntensity: 0.5, alphaLightSpecularSpec

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部