立方体贴图:将多个纹理组合起来映射到一张纹理上的一种纹理类型。
一个立方体贴图时包含了6个2D纹理的纹理,每个2D纹理都组成了立方体的一个面,相当于是一个有纹理的立方体。
创建立方体贴图:
首先需要生成一个纹理,将其绑定到纹理目标上,再做其他纹理操作。补充:绑定到GL_TEXTURE_CUBE_MAP
unsigned int textureID;
glGenTextures(1, &textureID);
glBindTexture(GL_TEXTURE_CUBE_MAP, textureID);

立方体贴图有6个纹理,需要调用glTexImage2D六次,需要将纹理目标(target)参数设置为立方体贴图的一个特定的面,告诉OpenGL在对立方体贴图的哪一个面
创建纹理。
有6个特殊的纹理目标,专门对应立方体贴图的一个面:

纹理目标 方位
GL_TEXTURE_CUBE_MAP_POSITIVE_X 右
GL_TEXTURE_CUBE_MAP_NEGATIVE_X 左
GL_TEXTURE_CUBE_MAP_POSITIVE_Y 上
GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 下
GL_TEXTURE_CUBE_MAP_POSITIVE_Z 后
GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 前
背后的int值是线性递增的,所以如果有一个纹理位置的数组或者vector,
可以从GL_TEXTURE_CUBE_MAP_POSITIVE_X开始遍历它们,在每个迭代中对枚举值加1,就可以遍历了整个纹理目标。
举例如下:
int width, height, nrChannels;
unsigned char *data;

第三十七章 立方体贴图总结相关推荐

  1. C++学习(三三六)球面贴图Sphere mapping 立方体贴图Cube mapping

    1.球面贴图 1.1原理 在一幅平面纹理图像中对各个方向的颜色进行编码就相当于把一个擦得锃亮的完美球体放在环境的中央,然后在极远处用长焦镜头对它进行拍照.需要编码的区域就是覆盖整个纹理图像的一个圆形区 ...

  2. 基于CUDA实现立方体贴图 (Cubemaps) 转换为全景图 (Equirectangular Panorama)

    在立方体贴图空间内发射光线(视线),计算球面光线(视线)会击中哪个面的哪个像素的像素值,最终生成Equirectangular全景图. InitSceneTexture():先获取Cubemaps并将 ...

  3. WebGL 利用FBO完成立方体贴图。

    这篇主要记录WebGL的一些基本要点,顺便也学习下如何使用FBO与环境贴图.先看下效果图(需要支持WebGL,Chrome,火狐,IE11). 主要实现过程如下,先用FBO输出当前环境在立方体纹理中, ...

  4. UnityShader18:立方体贴图(上)

    一.天空盒 使用立方体贴图最直接的目的就是展现天空盒,或者更进一步用于实现环境映射(反射与折射) 关于立方体贴图的采样原理:https://blog.csdn.net/Jaihk662/article ...

  5. LearnOpenGL->立方体贴图

    立方体贴图 立方体贴图 在本节中,我们将讨论的是将多个纹理组合起来映射到一张纹理上的一种纹理类型:立方体贴图(Cube Map). 简单来说,立方体贴图就是一个包含了6个2D纹理的纹理,每个2D纹理都 ...

  6. 【Unity Shader】 CubeMap(立方体贴图)

    Unity Shader 立方体贴图 一.介绍CubeMap Shader中对CubeMap采样 Unity中如何制作CubeMap 二.Reflect CubeMap(反射立方体纹理用于环境映射) ...

  7. OpenGL 核心技术之立方体贴图

    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D ...

  8. 【正点原子Linux连载】第三十七章 Linux内核移植 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  9. D3D11 立方体贴图(天空盒子)

    本章将学习如何使用一个3D纹理来纹理化一个半圆形.这种技术叫做立方体贴图,且我们将使用该技术来学会如何制作一个天空盒子. 立方体贴图通常用于创建一个无限远的环境,比如天空.我们能够使用该技术通过加载一 ...

最新文章

  1. 利用mem数组完成MM32 的 MicroPython中UART1的(REPL)的交互
  2. 玩转虚拟化VMWare之一: VMWare ESXi 5.0和vSphere Client安装和配置
  3. leetcode—Best Time to Buy and Sell stocks III
  4. csol战损左轮python_CSOL欢乐拍卖会迎新春 7把战损版武器登录即赠
  5. Oracle10g的flashback drop
  6. mysql截取最后一个斜杠_在MySQL中最后一个斜杠之后选择文本?
  7. Flex与.NET互操作(三):基于WebService的数据访问(下)
  8. [每天进步一点 -- 流水账]第1周
  9. [leetcode] 154.寻找旋转排序数组中的最小值 II
  10. C++|Qt中QTreeWidget基本操作及完整代码下载
  11. GCD中的队列与任务
  12. C语言学习笔记---abs()函数和div()函数
  13. 关于crossvalind函数(转)
  14. 感冒喝咖啡_早上喝咖啡时学习EmotionJS-就是这么简单。
  15. 大学生上课为什么一定要认真听讲?
  16. Java模拟项目开发(快递柜)
  17. 援引Yaphets的话:我又不淡定了
  18. 归并排序实现(JAVA)
  19. Linux文件与目录的默认权限与隐藏权限(chattr,lsattr)
  20. 轻松搭建影音服务器(转)

热门文章

  1. U盘插入后在“我的电脑”里找不到u盘
  2. 谈谈个人对SnmpSharpNet的实践经验
  3. 变分推断(Variational Inference)解析
  4. 襄阳教育云平台实名认证_襄阳教育云平台登录入口下载|襄阳教育云平台手机版登录入口 V3.8.7-清风安卓软件网...
  5. ADFでパラメーターのやり取り
  6. 计算机考试的话语,为考试加油的暖心句子 期末考试加油鼓励的话
  7. python (语音)信号拆分为数据块,计算短期能量和过零率
  8. 看得见的算法蒙特卡洛问题——使用蒙特卡洛算法求PI值
  9. spotify能免费下歌吗_什么是Spotify Duo,它适合您吗?
  10. matlab中删除照片_matlab中删除对象