如何在Gera库中更改纹理?

时间:2014-12-31 11:29:44

标签: javascript gera

我正在学习Gera WebGL库,我想知道如何更改其中的网格纹理?

我正在创建旋转框:

var cube = new Gera.Cube({
    geometry: {
        alpha: 1,
        beta: 1,
        gamma: 1,
        delta: 1,
        epsilon: 1,
        dzeta: 1
    },
    position: {
        x: 0,
        y: 0,
        z: -7
    },
    rotation: {
        x: 1,
        y: 0,
        z: 1,
        autostart: true,
        angle: 45
    },
    texture: 'imagePath.jpg'
});

scene.add( cube );

但是,如果我想在某个动作/事件后更改纹理,我该怎么办?

official spectification

中的信息较少

上面的代码来自索引页面,而一些来自某些playground scene

的样本

1 个答案:

答案 0 :(得分:0)

我找到了方法,如何实现纹理变化。

您可以使用下一个代码执行此操作:

window.setTimeout( function() {
    var image = new Image();
    image.src = 'new-file-path.jpg';
    image.onload = function( event ) {
        var handledImage = event.target || event.srcElement;
        cube.texture.image = handledImage;
    };
}, 1000 );

纹理将在1秒内更新。

另外,Gera现在没有提供CORS原始请求,所以要小心获取图像数据,如果你试图从远程服务器获取图像它不会被更新,你应该把你的纹理在localhost。