图形学基础 | CubeMap 立方体贴图

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.在顶点着

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值