【问题标题】:THREE.JSONLoader - Double sided texture - PNGTHREE.JSONLoader - 双面纹理 - PNG
【发布时间】:2014-08-01 02:27:08
【问题描述】:

我是 Three.js 的新手,我需要建议。从 Blender(2.71 版)导出模型并加载到场景后,我看到我的三个侧面有纹理.....但第二面没有纹理......我必须启用双面纹理,但我不知道如何。我尝试了一些示例,但没有任何效果。我使用带有 alpha-chanel 的 .PNG 纹理格式。我也尝试在 Blender 中激活双面,但没有任何反应。

这是我的加载代码:

var three1;  

        var jsonLoader = new THREE.JSONLoader();
            jsonLoader.load('3D/three1.js', addthree1ToScene);

        function addthree1ToScene( geometry, materials ) 
        {
            var materiall = new THREE.MeshFaceMaterial( materials ); 

                three1 = new THREE.Mesh( geometry, materiall );
                three1.scale.set( 0.8, 0.8, 0.8 );
                three1.position.set(50,15.5,0);

            scene.add( three1 );
        }

感谢您的建议! (对不起我的英语:))

更新:

..像这样的东西?..

var three1;  

        var jsonLoader = new THREE.JSONLoader();
            jsonLoader.load('3D/three1.js', addthree1ToScene);

        function addthree1ToScene( geometry, materials ) 
        {
            var materiall = new THREE.MeshFaceMaterial( materials ); 


            for ( var i = 0; i < materials.length; i ++ )
            {
             var material = materials[i];
                material.side = THREE.DoubleSide;
            }

            three1 = new THREE.Mesh( geometry, materiall );


            three1.scale.set( 0.8, 0.8, 0.8 );
            three1.position.set(50,15.5,0);

            scene.add( three1 );
        }

它的工作,顺便说一句:)

【问题讨论】:

  • 对于materials 数组中的每种材料,设置material.side = THREE.DoubleSide;
  • @WestLangley 我认为如果你有答案,你应该把它写在答案部分而不是 cmets :)
  • @mrdoob 好点。我在猜测我何时发表评论——通常是因为我不完全确定我理解用户的问题。一旦我澄清,我会发布答案。在这种情况下,你是对的。

标签: three.js blender


【解决方案1】:

为你的材料数组中的每个材料,设置

material.side = THREE.DoubleSide;

three.js r.68

【讨论】:

    猜你喜欢
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 2011-02-09
    • 2012-07-29
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多