OpenGL CubeMapping及天空盒

天空盒的思想就是绘制一个大的立方体,然后将观察者放在立方体的中心,当相机移动时,这个立方体也跟着相机一起移动,这样相机就永远不会运动到场景的边缘。这与我们真实世界中的情况一样的,我们可以看见远处的天空接触到了地平线,但是不论我们怎么朝着那个方向移动,都不可能到达那个地方。

而天空盒可以说是Cube Mapping的典型应用。Cube Mapping,翻译成中文为立方体映射。实际上,Cube Mapping是用六张纹理图片作为立方体的六个面来进行纹理映射的。六张纹理图分别在OpenGL中被定义为POSITIVE_X  POSITIVE_Y  POSITIVE_Z  NEGATIVE_X  NEGATIVE_Y  NEGATIVE_Z。


在之前讨论过的二维纹理映射中,我们只需要通过二维纹理坐标就可以确定该像素的颜色值。而在Cube Mapping中,纹理采样器会将一个三维的纹理坐标看成一个向量,首先确定这个向量处于立方体的哪个平面上,然后再在这个平面上获取相应的纹理值。

下面给出获取一个向量{x,y,z}对应的Cube Mapping映射的具体步骤

1.首先向量中绝对值最大的那一维。举例,{-9.0,4.5,2.25}我们将选取第一维的值-9.0. 然后我们需要根据绝对值最大的维度确定向量映射的表面。根据x=-9.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值