1 modeling:

1.1 将OpenGL配置到应用程序中;

1.2 设置 graphic context,如读入要进行贴图的纹理,设置要投影的模式(glfrustum),light source, material;

2 vertex processing

2.1 transformation,将vertex从 local space变到eye space

2.2 为定点进行lighting computation

2.3 计算vertex的texture coordinate

2.4 texture coordinate transformation

3

3.1 primitive assembly: 哪几个vertex属于同一个polygon

3.2 clipping, 将在eye space中的object与第一步modeling中设置的frustum进行切割,并将切割的结果,即frustum里头的object, 进行perspective division,即将frustum压缩到2*2*2的Cube里头

3.3 将cube里的object变换到window/screen space中, 即用glviewport 设置结果要在window的哪个地方显示

3.4 back culling

4 rasterization

4.1 rasterize 面对eye 的object的polygon,因为在3.4中back culling,已将所有背对eye的面去除;

5 fragment processing

5.1 通过对vertex进行差值,得到每一个fragment的颜色(光源提供给每个fragment的亮度,只有顶点进行了lighting computation,这是OpenGL默认的,如果想颜色的过渡更细腻,可以分割polygon,这样vertex就多了);

5.2 通过vertex的纹理坐标,即在纹理中的位置,对fragment进行坐标差值,确定fragment对应的纹理的位置,然后读取纹理值;

6 per-fragment operation

各种测试(alpha, depth etc),不通过测试的fragment直接丢弃,这也是为什么叫fragment为potential pixel的原因,只有通过测试的fragment才能在屏幕上显示成为pixel。其实pixel的本质是面积很小的cube,但是为了方便理解,我们一般认为它是点;

7 frame buffer

第2步vertex processing和第4步fragment processing可以再编程,即自己写shader代替编译器的相应部分。

转载于:https://www.cnblogs.com/qingsunny/p/3304655.html

OpenGL pipeline (very important)相关推荐

  1. opengl如何画出一个球_OpenGL-Controlling and Monitoring the Pipeline

    全球图形学领域教育的领先者.自研引擎的倡导者.底层技术研究领域的技术公开者,东汉书院在致力于使得更多人群具备内核级竞争力的道路上,将带给小伙伴们更多的公开技术教学和视频,感谢一路以来有你的支持.我们正 ...

  2. OpenGL(5)深入理解Pipeline, State, Context

    OpenGL(5)深入理解Pipeline, State, Context Pipeline(管线/管道) 管线(pipeline),可以理解为渲染流水线.它的最终目的是将输入3D数据经过几个流程的处 ...

  3. OpenGL 矩阵变换

    origin refer :http://www.songho.ca/opengl/gl_transform.html#modelview OpenGL 矩阵变换 Related Topics: Op ...

  4. 最简单的视音频播放演示样例5:OpenGL播放RGB/YUV

    ===================================================== 最简单的视音频播放演示样例系列文章列表: 最简单的视音频播放演示样例1:总述 最简单的视音频 ...

  5. opengl显示英文_OpenGL-Using Shaders(使用Shader)

    周一到周五,每天一篇,北京时间早上7点准时更新~,中英文对照,一边学编程一边弹吉他,做一个奇葩码农! 请不要怀疑翻译是否有问题,我们的翻译工程师是蓝翔毕业的呢! As we mentioned in ...

  6. hwui opengl VS skia opengl VS skia vulkan?

    之前讨论过skia codec部分在o,p上的变化,比如增加了heif解码等. 其实skia在android o,p的变化不只这些. 印象最深刻的还是渲染部分 从o开始hwui渲染支持skia ope ...

  7. OpenGL 坐标变换(1)

    OpenGL学习脚印: OpenGL 坐标变换 写在前面 本节内容翻译和整理自http://www.songho.ca songho的博客<OpenGL Transformation>内容 ...

  8. 最简单的视音频播放示例5:OpenGL播放RGB/YUV

    ===================================================== 最简单的视音频播放示例系列文章列表: 最简单的视音频播放示例1:总述 最简单的视音频播放示例 ...

  9. 基于Java的飞机大战游戏的设计与实现论文

    源码下载 http://www.byamd.xyz/hui-zong-1/ 摘 要 现如今,随着智能手机的兴起与普及,加上4G(the 4th Generation mobile communicat ...

最新文章

  1. 2020高速公路shp文件_全国按轴收费方案最终版!今天起,高速公路就按照这个标准收费...
  2. pyqt漂亮gui界面模板_一种基于模板的C代码自动生成方法
  3. leetcode 1006. 笨阶乘
  4. 广州体育学院有计算机专业吗,广州体育学院2014年下半年计算机水平考试报名的通知...
  5. 利用 GitHub Actions 在 GitHub 上进行加密挖矿?
  6. android.mk 添加v7_Android.mk引入第三方jar包和so库文件的方法
  7. oracle 数据库文件丢失
  8. 【OpenCV学习笔记】【函数学习】十一(读入图像﹑显示图像和保存图像)
  9. UVa 815 - Flooded!
  10. Serial垃圾回收器总结
  11. AFNetworking请求服务器错误
  12. php后台发送qq消息,WebQQ消息发送功能
  13. 推荐一些经典网络小说及对网络文学和网络市场的一些个人看法
  14. 地壳中元素含量排名记忆口诀_地壳含量_地壳中元素含量排名口诀
  15. WebAI.js:一个简单的网页前端 AI 模型部署工具
  16. 请先切换至Wxml Pannel的解决方法
  17. 网站服务器带宽2m怎么样,云服务器带宽2m够用吗
  18. Pycharm安装后打开提示:此应用无法在你的电脑上运行,若要找到合适于你的电脑的版本,请咨询发布者。
  19. 2022广东最新八大员之(安全员)模拟试题题库及答案
  20. MPC5748G开发笔记-----S32DS提示The target may have entered reset escalation

热门文章

  1. python小学生口算题生成器_小学数学题出题神器
  2. 网上学c语言推荐课程网站,C语言教学网络课程网站论文
  3. python判断是否为变位词_python实现对变位词的判断方法
  4. mysql字符串逆时针旋转180度_mysql 函数示例(转)
  5. mysql+多列外键_MySQL中的多列外键?
  6. axure 8 表格合并_搞定LaTeX论文中的表格
  7. 华为漫画 | 什么是DSP?
  8. 水库调度matlab,基于MATLAB模糊系统在水库调度中的应用初探_廖明潮
  9. java反射可以获得什么属性_java反射获得属性的值
  10. h3c s7506e 配置手册_H3C交换机s5500Web登录配置