参考:https://learnopengl-cn.readthedocs.io/zh/latest/04%20Advanced%20OpenGL/06%20Cubemaps/

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

关于天空盒-空间概念上:
可以理解为一个盒子,内壁贴着贴图,我们位于盒子内,盒子离我们无穷远。我们抬头向四面看,最远处是这个盒子的内壁,由于我们始终位于盒子内,所以我们不会看到盒子以外的部分。

OpenGL实现上:
通常是:天空盒采用6张可以连接缝合的天空图片,贴图到一个立方体内部(通常采用0,0,0圆心,长度为1或2的立方体即可);然后把camera放入到立方体的中心,视棱锥从立方体的中心向外发出,映射到立方体颜色作为找到的屏幕底色。之后再把三维物体按照MVP投射到屏幕,放到底色的上层,从而从图形上看,天空盒始终位于物体的最远处,看起来所有的图形都位于盒子的内部。(优化效率,可以先渲染物体,然后把未被遮挡的位置渲染天空盒,提高天空盒的渲染效率)

立方体纹理采样特点:立方体纹理相当于一个中心点为0,0,0的盒子,采样坐标从中心点0,0,0发出,发出的射线在立方体纹理上的对应点,作为找到的颜色点。

分析了天空盒之后,有点感受:
计算机所谓的三维场景,三维动画,三维视频,其实都是“假的”,都是通过算法手段,通过数学模型模拟出来的,计算出一帧一帧的平面图片,来模拟。计算机再高级的显卡也只是计算速度上,算法算的快一些,另外数学模型可以多放一些,算法高级一些,对三维算法的支持效率高一些,并没有银弹,没有天生就构建出的三维微型世界来映射现实世界,没有天生就支持的三维演算对应现实世界。
三维模拟的每一步,都是通过数学模型,通过算法,一点一点对应到现实空间上来,再对应输出形成屏幕上一帧一帧的图像。
有点失望,没有银弹,又有点觉得理所当然:伟大的背后皆是苦难!每一步背后都需要有着模型算法的支撑~

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

关于OpenGL的天空盒的理解相关推荐

  1. 【OpenGL】关于OpenGL中Bind函数的理解

    在OpenGL中,总是会遇到类似下面的绑定语句: glBindTexture(GL_TEXTURE_2D, renderTex); glBindFramebuffer(GL_FRAMEBUFFER, ...

  2. OpenGL多重纹理使用与理解

    函数 对于opengl 扩展函数必须在初始化窗口结束后才能使用 wglGetProcAddress 获得 Opengl 没有重载函数,对于功能相同但参数类型和数量不同的函数加上后缀,最长可达4个,第一 ...

  3. OpenGL入门教程之 深入理解

    一.OpenGL简介 OpenGL是一种用于渲染2D.3D矢量图形的跨语言.跨平台的应用程序编程规范. OpenGL包含一系列可以操作图形和图像的函数,但OpenGL没有实现这些函数,OpenGL仅规 ...

  4. Opengl的一些常用功能理解

      在使用Opengl的过程中,会经常禁用或开启一些功能,这里经过一些查阅,整理一些对常用的一些功能的理解.后续会不断的补充. 1. glShadeModel   glShadeModel是设置ope ...

  5. OpenGL EGL GPU工作流程理解(十四)

    基本概念 1.OpenGL ES :OpenGL是一套绘图函数的标准,OpenGL|ES是OpenGL中针对嵌入式系统的一套函数子集. 2.EGL:通俗上讲,OpenGL是一个操作GPU的API,它通 ...

  6. OpenGL视角LooAt及Perspective理解

    在: http://blog.csdn.net/yulinxx/article/details/59538755 的基础上,修改 main.cpp 理解 glm::perspective 和 glm: ...

  7. OpenGL中各种坐标系的理解

    OPENGL坐标系可分为:世界坐标系和当前绘图坐标系. 世界坐标系:在OpenGL中,世界坐标系是以屏幕中心为原点(0, 0, 0),且是始终不变的.你面对 屏幕,你的右边是x正轴,上面是y正轴,屏幕 ...

  8. Opengl的glPushMatrix和glPopMatrix理解

    glPushMatrix()和glPopMatrix()的配对使用可以消除上一次的变换对本次变换的影响,将本次需要执行的缩放.平移等操作放在两者之间.使本次变换是以世界坐标系的原点为参考点进行. 1) ...

  9. 深入理解OpenGL之投影矩阵推导

    深入理解OpenGL之投影矩阵推导 OpenGL流水线中的投影矩阵以及坐标变换 OpenGL中,投影矩阵在Vertex shader中使用,用于变换顶点.一般和Model, View矩阵结合成MVP矩 ...

最新文章

  1. 在JS中最常看到切最容易迷惑的语法(转)
  2. spring 项目中的一个异常
  3. 6. 管理你的css和js文件 - 从零开始学Laravel
  4. sklearn朴素贝叶斯分类器_朴素贝叶斯原理
  5. 数据结构与算法--字符串的排列组合问题
  6. php之time的用法,php中time()与$_SERVER[REQUEST_TIME]用法区别
  7. 2019江苏高考作文_2019年关于现代组织的5大文章
  8. django得到Model的全部字段名(field)
  9. 第一次使用并配置Hibernate
  10. 网络管理与维护作业10
  11. 《图解算法》学习笔记之快速排序
  12. ArcGIS实验教程——实验二:ArcGIS地理配准完整操作步骤
  13. 关于 JWT Token 自动续期的解决(根据其他文献参考写的)
  14. MongoDB中updateOne的正常使用
  15. cwber获取html,qq飞车手游CW、CWW、WCW怎么触发方法
  16. 百度人脸活体检测系统通过信通院“护脸计划”首批优秀级安全防护能力评估
  17. 上市4天暴降1500元,iPhone14创下了苹果降价最快纪录
  18. TPC-C 、TPC-H、TPC-DS和SSB测试基准(Benchmark)介绍
  19. TypeScript Property ‘XXX‘ does not exist on type ‘never‘.
  20. Linux top命令参数及使用方法详解

热门文章

  1. Python编程简介
  2. 有趣的数字环的算法实现
  3. RocketMQ 集群踩坑记
  4. CHIL-ORACLE-伪列
  5. Airtest+Poco多设备并发自动化游戏测试框架(遇到的问题)
  6. php 表单模板,迅睿CMS 网站表单模板
  7. 2018计算机专业研究院教育部评估
  8. 民事诉讼过程中的一些笔记
  9. 【record】新系统软件无法打开,缺少dll
  10. 国际MOT研究及智能视频监控应用中的目标跟踪梳理