首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在GLGE中将纹理加载到立方体的不同面上?(或者至少是WebGL)

如何在GLGE中将纹理加载到立方体的不同面上?(或者至少是WebGL)
EN

Stack Overflow用户
提问于 2011-09-12 19:11:35
回答 2查看 645关注 0票数 0

我有6个纹理,我想加载一个立方体的6个不同的面。我正在尝试用GLGE.TextureCube();制作一个新的纹理。然后我将所有六个图像加载到脸部,假设应该在立方体上,如下所示

代码语言:javascript
复制
    mapTex = new GLGE.TextureCube();
    mapTex.setSrcNegX("models/map/negx.jpg"); // they are all 1024x1024
    mapTex.setSrcNegY("models/map/negy.jpg");
    mapTex.setSrcNegZ("models/map/negz.jpg");
    mapTex.setSrcPosX("models/map/posx.jpg");
    mapTex.setSrcPosY("models/map/posy.jpg");
    mapTex.setSrcPosZ("models/map/posz.jpg");

然后我将纹理添加到Wavefront对象中。然而,6个纹理图像中似乎只有一个被映射,并且它的映射不正确。

我的猜测是,当它从其他6个纹理贴图中创建新的纹理贴图时,它会将它们拼贴在一起,以便新纹理贴图的坐标不再与我的obj文件相对应。

如何正确地将6个纹理组合到一个贴图中,以便与GLGE一起使用?或者有没有办法在网格的面上手动加载纹理?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-12 19:53:18

立方体贴图有些特殊,因为通常的UV (ST)纹理坐标对它们不起作用。立方体贴图,顾名思义,由6个二次纹理组成,排列为立方体的面。纹理坐标不是立方体表面上的绝对位置,而是远离立方体中心的方向,并且给定方向上从中心发出的光线击中立方体的位置是该特定面上纹理的位置。

如果在第三个坐标为零的情况下应用纹理坐标,就像在Wavefront中那样,您将只处理立方体表面的一部分,即与XY平面相交的部分。如果要查看工作立方体贴图的实际效果,请使用对象的平滑法线作为纹理坐标。

票数 3
EN

Stack Overflow用户

发布于 2011-09-13 18:56:11

您需要使用不同的纹理坐标,例如: materialLayer.setMapinput( GLGE.MAP_OBJ ),这取决于您想要什么,请尝试GLGE.MAP_OBJ、GLGE.MAP_NORM或GLGE.MAP_ENV

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

https://stackoverflow.com/questions/7386952

复制
相关文章

相似问题

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