繁体   English   中英

从代码而不是MTL加载纹理

[英]Load texture from code rather than MTL

我已经能够加载OBJ文件并将其关联到MTL,以为其提供纹理。 但是,我似乎无法直接从代码中分辨出要与模型关联的纹理,只有在MTL文件中提到纹理时,我才能使其显示在模型上。

我看了看文档,看了看示例,然后一遍又一遍地搜索,但我不知道如何应用纹理。

这是我当前的加载模型和材料文件的代码

        var mtlLoader = new THREE.MTLLoader();
        mtlLoader.setPath( '/3Dproject/models/' );
        mtlLoader.load( 'tshirt.mtl', function( materials ) {

            materials.preload();

            var objLoader = new THREE.OBJLoader();
            objLoader.setMaterials( materials );
            objLoader.setPath( 'models/' );
            objLoader.load( 'tshirt.obj', function ( object ) {

                object.position.x = 0;
                object.position.y = -50;
                object.scale.x = 2;
                object.scale.y = 2;
                object.scale.z = 2;
                scene.add( object );

            }, onProgress, onError );

        });

这是我的资料档案

# MTL written from \3Dproject\models\tshirt.obj
newmtl texture
Kd 0.48 0.48 0.48
Ns 256
d 1
illum 2
Ka 0 0 0
Ks 0.04 0.04 0.04
map_Kd \texture.jpg

如果我这样将纹理加载到Javascript中

        var texloader = new THREE.TextureLoader();
        var skinTexture = texloader.load('/3Dproject/models/texture.jpg', function (tex) {
            skinTexture = tex;
        });

然后如何将其应用于模型?

http://creativiii.com/3Dproject/old-index.html上的工作示例

通常,纹理是通过material.map属性分配的。

object.material.map = skinTexture;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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