首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >已经创建的jsc3d 3d对象上的图像添加

已经创建的jsc3d 3d对象上的图像添加
EN

Stack Overflow用户
提问于 2015-06-06 14:56:12
回答 1查看 243关注 0票数 0

如果需要将任何canvas imagedata存储在创建的3d对象上,那么是否有可能在jsc3d创建的3d object.For示例中添加外部图像或文本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-12 11:27:29

是的,有可能。如果您查看纹理的jsc3d实现,您将看到纹理已经具有底层画布。

假设您有一个名为"myTexture“的画布和一个名为"myMesh”的网格,为了简单起见,您只需要一个固定大小为128x128px的纹理,这将在您的网格上涂上您的帆布:

代码语言:javascript
复制
    var canvas = document.getElementById('myTexture');
    var context = canvas.getContext('2d');
    var dim = 128;
    var imgData = context.getImageData(0,0,dim,dim);
    var data = imgData.data;
    var size = data.length / 4;
    var texture = new JSC3D.Texture;
    texture.data = new Array(size);
    var alpha;
    for(var i=0, j=0; i<size; i++, j+=4) {
        alpha = data[j + 3];
        texture.data[i] = alpha << 24 | data[j] << 16 | data[j+1] << 8 | data[j+2];
        if(alpha < 255)
            texture.hasTransparency = true;
    }
    texture.width = dim;
    texture.height = dim;       

    myMesh.setTexture(texture);
    viewer.update();

.data循环是从JSC3D.Texture.prototype.createFromImage (credits humu2009,jsc3d的创建者)中提取的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30684238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档