OpenGL学习笔记 天空盒(反射,折射)

本文是关于OpenGL的学习笔记,重点介绍了如何使用立方体贴图创建天空盒,以及在片段着色器中实现反射和折射效果。通过立方体贴图,可以模拟无限空间的天空背景。文章讨论了优化天空盒渲染的技巧,如利用提前深度测试提高效率,并解释了如何欺骗深度缓冲以确保天空盒始终位于其他物体后面。此外,还展示了反射和折射的实现代码。
摘要由CSDN通过智能技术生成

天空盒

先展示一个效果图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j7qGzsyy-1594654641142)(static/天空盒.png)]

多个纹理组合起来映射到一张纹理上的一种纹理类型:立方体贴图(Cube Map)。

简单来说,立方体贴图就是一个包含了6个2D纹理的纹理,每个2D纹理都组成了立方体的一个面:一个有纹理的立方体。你可能会奇怪,这样一个立方体有什么用途呢?为什么要把6张纹理合并到一张纹理中,而不是直接使用6个单独的纹理呢?立方体贴图有一个非常有用的特性,它可以通过一个方向向量来进行索引/采样。假设我们有一个1x1x1的单位立方体,方向向量的原点位于它的中心。使用一个橘黄色的方向向量来从立方体贴图上采样一个纹理值会像是这样:

在这里插入图片描述

立方体贴图创建

unsigned int textureID;
glGenTextures(1, &textureID);
//GL_TEXTURE_CUBE_MAP 注意参数
glBindTexture(GL_TEXTURE_CUBE_MAP, textureID);

                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值