CubeMap 立方体贴图
- 一个包含6个2D纹理的贴图
- 它是通过一个
方向向量来进行采样的. 访问到正确的face面.
创建立方体贴图
GL_TEXTURE_CUBE_MAP 有六个面,每个面都要绑定.
比如:
GL_TEXUTRE_CUBE_MAP_POSITIVE_X + i;
…
在Shader 采样器中,这么写:
samplerCube cubemap;
进行采样:
FragColor = texture(cubemap,texturedir);
// texturedir 是3D纹理坐标的向量
SkyBox 天空盒
作用:
用立方体才模拟巨大场景.
使用立方体的 位置 进行采样. // 这里的位置是以(0,0,0)为中心.
那么,刚好使用 model 模型坐标系即可. 即 texturedir = apos;
存在一个问题:
作为场景. 天空盒应该不能移动.
需要去除 skybox的位移.
即: view = mat4(mat3(view));
关于SkyBox的优化
为了避免多余的渲染.最后渲染天空盒.
进行 提前深度测试
Texcoords = apos; // 使用模型坐标
vec4 pos = project*view*vec4(aps,1.0f);
gl_position = pos.xyww;
特别注意:
最后使用pos.xyww.在顶点着


3401

被折叠的 条评论
为什么被折叠?



