三j:如何在3D模型上添加随机的JPG纹理



我是三j的新手,我想知道是否可以添加随机的JPG图片作为我的纹理。我弄清楚了如何在模型中添加材料,但我无法真正弄清楚如何添加纹理。这是我的JSON模型的旋转,也是我的更改纹理的代码:

"textures": [],
"animations": [{
    "fps": 29,
    "tracks": [{
        "type": "vector3",
        "keys": [{
            "value": [0.000392,0.249157,-0.004437],
            "time": 0
        },{
            "value": [0.000392,0.249157,-0.004437],
            "time": 120
        },{
            "value": [0.000392,0.249157,-0.004437],
            "time": 240
        },{
            "value": [0.000392,0.249157,-0.004437],
            "time": 360
        }],
        "name": "CameraPreset.position"
    },{
        "type": "vector3",
        "keys": [{
            "value": [1,1,1],
            "time": 0
        },{
            "value": [1,1,1],
            "time": 120
        },{
            "value": [1,1,1],
            "time": 240
        },{
            "value": [1,1,1],
            "time": 360
        }],
        "name": "CameraPreset.scale"
    },{
        "type": "quaternion",
        "keys": [{
            "value": [0,0.707107,0.707107,0],
            "time": 0
        },{
            "value": [-0.612372,-0.353553,-0.353553,0.612372],
            "time": 120
        },{
            "value": [-0.612372,0.353553,0.353553,0.612372],
            "time": 240
        },{
            "value": [-0,0.707107,0.707107,0],
            "time": 360
        }],
        "name": "CameraPreset.quaternion"
    }],
    "name": "default"
}],
"materials": [{
    "uuid": "36DB0D58-F5EE-366F-9C7F-307076036ACA",
    "side": 2,
    "blending": "NormalBlending",
    "name": "lambert1",
    "specular": 1508356,
    "shininess": 50,
    "emissive": 0,
    "ambient": 12531511,
    "depthTest": true,
    "color": 12531511,
    "vertexColors": false,
    "depthWrite": true,
    "type": "MeshPhongMaterial"
}],
"images": [],
"metadata": {
    "generator": "io_three",
    "type": "Object",
    "version": 4.4
}

这是我加载JSON模型的地方:

var mesheto;
var loader = new THREE.ObjectLoader();
loader.load(
    'models/shirt.json',
    function (object) {
        globalObject = object;
        object.name = 'shirt';
        mesheto = object;
        scene.add(object);
        GameLoop();
    }
);

这是改变纹理的on Click函数:

function loadimg(string) {
    globalObject.traverse( function ( child ) {
        console.log("clicked");
        if (child instanceof THREE.Mesh) {
            console.log(child instanceof THREE.Mesh);
            child.material.map = THREE.TextureLoader('../img/models/check.jpg');
            child.material.needsUpdate = true;
        }
    });
    // polo_model.material.map = THREE.TextureLoader('models/check.jpg');
}

您必须将.load添加到new THREE.TextureLoader().load("name of your texture.jpg")

最新更新