openGL编程指南第一章

前言

这一章主要是介绍OpenGL技术里面的一些概念

文章目录

  • openGL编程指南第一章
    • OpenGL介绍
    • 相关概念
      • 图元(图形输出原语)
      • 模型
      • 渲染
      • 像素
      • 渲染模式
    • 渲染管线
      • 渲染管线操作流程

OpenGL介绍

它是一个图形API,设计目标是作为一种流线型且独立于硬件的操作接口。基于此OpenGL并没有提供复杂的操作函数,而是提供一些简单的图元工具供给程序员使用。同时,在使用OpenGL进行编程的时候,我们会发现,OpenGL其实是巨大的状态机,我们可以通过设置一系列变量(假设状态是一个对象,而一个个对象是这个对象里面的每一个选项)来控制OpenGL的运行。

相关概念

图元(图形输出原语)

图形软件包当中描述各种图形元素的函数简称图元,图元包括每一个对象的结构信息以及在场景当中的坐标信息。例如,描述几何要素的输出图元一般称为几何图元(点、线、面)。

模型

根据各种几何图元结构组成的整体

渲染

根据模型创建图像的过程,最终的图像在计算机上面绘制的是由像素点构成。

像素

在计算机中,和像素有关的信息都由一个叫位平面存储,位平面是一块内存区域存储着每个像素1位信息。例如像素的颜色值需要32位2进制数来表示,则位平面如下图所示:

以下关于位平面的图片以及部分描述来自于:Erichn的博客

该图表示一张图像,而三十二位颜色值可以假设为竖直方向的三十二个方块:

那么,帧缓存大小可以表示为整个体积:

我们把这个立方体在竖直方向进行32此切割,得到图像在竖直方向上每一个像素的分布:

每个小方块代表一位二值,对一副用多个比特表示其灰度值得图像来说,其中每个比特可以看做表示了1个二值平面;通俗来讲,用图像作为底面,用灰度大小的8位(或则其他位数)作为高度,形成的立方体直方图,各像素位置相同的位形成了一个平面(如上图中的切面所示)称为位平面。各个位平面能够组织成缓冲区,而缓冲区保存了图形硬件为了控制屏幕上所有像素的属性(颜色、灰度值、强度等等)的信息

渲染模式

  • 立即渲染模式

    这种模式也叫固定渲染管线,该模式将图形计算大多数功能给隐藏起来了,使得开发者很难控制OpenGL进行灵活渲染,即使这种方式容易理解和使用,但是开发效率很低,因此很早被放弃。

  • 核心模式

    在该模式下,开发者对绘图的细节有了更多的掌控,而且迫使开发者用最新的函数,如果依然用废弃的函数,OpenGL会抛出错误并终止绘制,而最新函数优势是更高的灵活性以及效率,同时带来了很大的学习难度。

渲染管线

渲染管线的功能是在给定虚拟相机、3D场景物体、以及光源等场景要素来产生或者渲染一副2D的图像。即:

  1. 将物体的3D坐标转变为屏幕的2D坐标
  2. 为屏幕的每一个像素着色

渲染管线操作流程

openGL编程指南第一章相关推荐

  1. Java7并发编程指南——第一章:线程管理

    Java7并发编程指南--第一章:线程管理 @(并发和IO流) Java7并发编程指南第一章线程管理 思维导图 项目代码 思维导图 项目代码 GitHub:Java7ConcurrencyCookbo ...

  2. 树莓派Python编程指南--第一章(起航--启动和运行)

    2019独角兽企业重金招聘Python工程师标准>>> 1.1 组装好你的树莓派 组装工作之后再讲述 控制二极管发光及关闭 组装完成后,我们开始第一个例子:控制二极管发光及关闭的小程 ...

  3. Opengl编程指南第二章:状态管理、几何绘图

    //http://blog.csdn.net/longhuihu/article/details/7701874 1.绘图基础 清除窗口 glClearColor(0.0, 0.0, 0.0, 0.0 ...

  4. 关于OpenGL编程指南第一个程序出错的问题

    写opengl红宝书第一个程序已经很久了吧,当时也是遇到了很多问题,对于新手入门看见自己跟着书上打的代码电脑老是报出这么多卡都看不懂的错误,年轻人心态容易崩. 首先你先把书的源代码下载下来,在红宝书的 ...

  5. CUDA并行程序设计 GPU编程指南: 第一章:超级计算简史

  6. Maya Python 游戏与影视编程指南 第一章

    import maya.cmds maya.cmds.polySphere(radius=5) maya.cmds.polyColorPerVertex(colorRGB=[1,0,0],colorD ...

  7. 《OpenGL编程指南》一第2章 着色器基础

    本节书摘来自华章出版社<OpenGL编程指南>一书中的第2章,作者 Bill Licea-Kane ,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第2章 着色 ...

  8. 《OpenGL编程指南》一第3章 OpenGL绘制方式

    本节书摘来自华章出版社<OpenGL编程指南>一书中的第3章,作者 Bill Licea-Kane ,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第3章 Op ...

  9. OpenGL编程指南(第八版)第一个渲染三角形案例代码在win8双显卡电脑VS2015中运行方法总结

    弄了好几天才把第一个程序运行出来,用该博客记录一下参考的博客资料及问题: 写得很好的博客参考资料为: http://blog.csdn.net/IceTeaSet/article/details/50 ...

  10. 《OpenGL编程指南(原书第8版)》——计算着色器

    原文  http://www.csdn.net/article/2014-11-21/2822754 主题 OpenGL 数学 概述 由于图形处理器每秒能够进行数以亿计次的计算,它已成为一种性能十分惊 ...

最新文章

  1. 沙场秋点兵---走出软件作坊:三五个人十来条枪 如何成为开发正规军(二十七)...
  2. Google下的这盘“小”棋
  3. Linux复习资料——CentOS7下安装MySQL5.7.22(完整版本)
  4. GMF 教程 Mindmap 5
  5. 机械制图中外螺纹的画法_机械制图基础知识之图样简化画法
  6. 《Simbody Theory Manual》
  7. 高德h5地图api接口_在uniapp h5中在线引入高德地图js api的方法分享
  8. C语言宏定义,内置宏的用法
  9. wget下载文件命令
  10. 如何将一个向量投影到一个平面上_线性代数总结 第三章 向量代数与几何计算(空间平面和直线)...
  11. IE浏览器被挟持怎么办,打不开正确网页被挟持到固定网页
  12. 《DSP using MATLAB》Problem 7.16
  13. The color “baseBlac in values has no declaration in the base values folder this can lead to crash
  14. 【webpack5】webpack-dev-server 热更新不能自动刷新浏览器
  15. 开发简单 web 服务程序 cloudgo
  16. Golang 函数定义 不定数目参数定义 多个输入参数函数 (...) 不定参数 可变参数 定义
  17. vue3.0 引入i18n 做国际化 - 做动态语言切换
  18. 中国工业制造RFID市场竞争力排名分析与投资战略规划研究报告2022-2028年版
  19. html流星雨页面,HTML5炫酷流星雨特效
  20. 几款超牛逼的终端命令行工具!好用到爆

热门文章

  1. C#写的制程能力CPK分析程序
  2. idea导入Javaweb项目
  3. 绿色建筑评价标准(GB/T 50378-2006)
  4. 自建机房与IDC机房对比
  5. 计算机一级四五章重点,《信息技术》第四章要点
  6. PHP毕业设计——许愿墙(有源码)
  7. 萤火虫算法_萤火虫算法(一)
  8. java实现萤火虫算法_基于萤火虫算法的矢量图生成方法
  9. 各种版本mysql驱动包下载地址
  10. Visio-Cisco-华为-IBM网络设备官方模板