首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保持纵横比的Scenejs矩形棱镜纹理

保持纵横比的Scenejs矩形棱镜纹理
EN

Stack Overflow用户
提问于 2014-12-12 22:58:41
回答 1查看 80关注 0票数 0

我是Scenejs的新手,有以下问题。我从一次查询中得到30到50张缩略图。图像的宽度约为200px,高度为100px至300px。我想将每个缩略图图像作为纹理呈现在3d场景中排列的单独的矩形棱镜上。我研究的许多例子只显示立方体和均匀的正方形图像。当我尝试调整矩形棱镜的几何形状时,图像多次出现。下面给出代码摘录。有人能给我指出正确的方向吗?

代码语言:javascript
复制
function get_Json_test_data()
{

var wiki_node_top =[{ 
           type: "cameras/orbit",
            yaw:  0,
            pitch: 0,
            zoom: 10,
            zoomSensitivity:0.5,

                    nodes: [
                {
                    type: "material",
                     id: "myMaterial",
                    color: { r: 1, g: 1, b: 1.0 } 
                }
                   ]
                }];

   scene = SceneJS.createScene({

   nodes: wiki_node_top 
});

}

function add_node_wiki (json1)
{
var wiki_x=-4;
var wiki_y=-4;
var wiki_z=0;
var test1 = json1.query.pages;
var test2 = [];
var icount = 0;
$.each(test1, function (i, item) {
    test2[icount] = item;
    icount++;
});
$.each(test2, function (i, item) {
   var   wiki_x_size=item.imageinfo[0].thumbwidth/200;
   var  wiki_y_size=item.imageinfo[0].thumbheight/200;

wiki_x +=2*wiki_x_size;
wiki_y += 2*wiki_y_size;

    update_scene(item, wiki_x,wiki_y,wiki_z,wiki_x_size,wiki_y_size);     
});   
}
function update_scene(item, wiki_x,wiki_y,wiki_z,wiki_x_size,wiki_y_size)
{
scene.getNode("myMaterial",
function(myMaterial) {
    myMaterial.addNode({         
                      type: "texture",
                      src: item.imageinfo[0].thumburl,                                                 
                      wrapS: "ClampToEdgeWrapping",
                      wrapT: "ClampToEdgeWrapping",     
       nodes:[{
            type: "translate",                
            x: wiki_x,
            y: wiki_y,
            z: wiki_z,
            nodes: [{
                type: "geometry/box",
                xSize: wiki_x_size,
                ySize: wiki_y_size,
                zSize: 1
            }]
        }]                                                                                              
});  
})

}

EN

回答 1

Stack Overflow用户

发布于 2014-12-25 22:26:01

SceneJS纹理参数,就像"wrapS“和"wrapT”的参数一样,是WebGL枚举的驼峰表示。

因此,由于"ClampToEdgeWrapping“不是WebGL中支持的值(据我所知),因此SceneJS不会识别这一点。

请参阅此处支持的枚举的映射:https://github.com/xeolabs/scenejs/blob/v4.0/src/core/webgl/enums.js

也许可以试试"clampToEdge"?

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

https://stackoverflow.com/questions/27446312

复制
相关文章

相似问题

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