OpenGL 进阶系列08 - 天空盒实现
一:Cubemap概述
OpenGL 中的 Cubemap(立方体贴图)是一种将六个不同方向的图像(面)组合成一个立方体的纹理,用于模拟环境映射、天空盒、反射等效果。Cubemap 由六个面组成,通常分别对应立方体的六个面:
- 正面(+X)
- 反面(-X)
- 顶面(+Y)
- 底面(-Y)
- 左面(+Z)
- 右面(-Z)
每个面都是一张 2D 图像,通常它们是正方形的,且尺寸相同。
二:生成 Cubemap 纹理
在 OpenGL 中,Cubemap 纹理是通过 glTexStorage2D
或 glTexImage2D
创建的,使用 GL_TEXTURE_CUBE_MAP
目标类型来指定这是一个立方体纹理。
GLuint cubemapTexture;
glGenTextures(1, &cubemapTexture);
glBindTexture(GL_TEXTURE_CUBE_MAP, cubemap