OpenGL支持立方体贴图纹理的包装模式吗?

时间:2013-04-04 08:09:41

标签: opengl

是否支持立方体贴图纹理的包装模式? 我已将包装模式设置为GL_REPEAT并使用了tex-cords [-2,2],但我无法看到重复的纹理。它只被应用一次。 似乎用立方体贴图纹理不可能,为什么?

以下是我的签名:

#define eps1 1.0


 GLfloat tex_coords[] = {
   /* +X side */
   1.0, -eps1, -eps1,
   1.0, -eps1,  eps1,
   1.0,  eps1,  eps1,
   1.0,  eps1, -eps1,

   /* -X side */
   -1.0,  eps1, -eps1,
   -1.0,  eps1,  eps1,
   -1.0, -eps1,  eps1,
   -1.0, -eps1, -eps1,

   /* +Y side */
   -eps1, 1.0, -eps1,
   -eps1, 1.0,  eps1,
    eps1, 1.0,  eps1,
    eps1, 1.0, -eps1,

   /* -Y side */
   -eps1, -1.0, -eps1,
   -eps1, -1.0,  eps1,
    eps1, -1.0,  eps1,
    eps1, -1.0, -eps1,

   /* +Z side */
    eps1, -eps1, 1.0,
   -eps1, -eps1, 1.0,
   -eps1,  eps1, 1.0,
    eps1,  eps1, 1.0,

   /* -Z side */
    eps1,  eps1, -1.0,
   -eps1,  eps1, -1.0,
   -eps1, -eps1, -1.0,
    eps1, -eps1, -1.0,
};

2 个答案:

答案 0 :(得分:3)

ARB_seamless_cube_map无耻地偷走。

  

从立方体贴图纹理采样时,使用三维纹理坐标选择其中一个立方体贴图面并生成二维纹理坐标(s t),其中纹理像素为   从立方体贴图纹理的确定面采样。纹理的每个面被视为独立的二维纹理,并且生成的(s t)坐标经历相同的   夹紧和包装规则与任何其他二维纹理提取一样。

扩展本身也可能对您有用。

答案 1 :(得分:1)

s和t坐标基于两个非主要方向,但除以主方向的绝对值。由于主方向是绝对值最大的方向,因此结果将始终在[0,1]范围内。在进行查找之前,您可以将其视为3D纹理坐标的内置标准化。 简而言之,无法包装立方体贴图的面。