视图  
  计算机图形的要点就是创建三维物体的二维图像(图像必须是二维的,因为它是在平面的屏幕上显示的)。但是,当我们决定怎样在屏幕上绘图时,必须用三维坐标的方式来考虑。人们在创建三维图像时经常犯的一个错误就是太早考虑在平面的二维屏幕上所显示的最终图像。我们要避免考虑屏幕上的像素是如何绘制的,而是要尽量在三维空间中想象物体的形状。我们需要在深入计算机内部的三维空间中创建模型,让计算机去计算哪些像素需要绘制。——这段话很有启发,可以让你知道一个大概的计算机三维到屏幕上二维图像的模型

  把一个物体的三维坐标变换为屏幕上的像素坐标的三个步骤:
  1.变换包括模型、视图和投影操作,他们是由矩阵乘法表示的。这些操作包括旋转、移动、缩放、反射、正投影和透视投影等。
  2.由于场景实在一个矩形窗口中渲染的,因此位于窗口之外的物体必须裁剪掉。在三维计算机图形中,裁剪就是丢弃位于裁剪平面之外的物体。
  3.经过了变换的坐标和屏幕像素之间必须建立对应关系。这个过程称为视口变换。

  颜色
  几乎所有的OpenGL应用程序的目的都是在屏幕窗口中绘制具有各种颜色的图像。窗口是一个矩形的像素数组,每个像素包含并显示自己的颜色。从某种意义上说,OpenGL执行的所有计算就是确定将要在窗口绘制的每个像素的最终颜色。 
  计算机在RGBA模式下,每个像素分别保存一个R、G、B值,并可能保存一个A值。在索引模式下,每个像素存储一个表示颜色的数值(称为颜色索引)。每个颜色索引表示颜色表中一个特定的项。颜色表定义了一组特定的RGB值,称为颜色映射表。 
  不同的图形硬件在像素数组的大小以及每个像素显示的颜色数量方面存在很大的区别。在所有图形系统中,每个像素都使用相同数量的内存来存储它的颜色。用于存储所有像素颜色的内存称为颜色缓冲区。缓冲区的大小通常用位来表示的,因此8位缓冲区使用8位数据存储每个像素的颜色(256种)。颜色缓冲区的大小因机器而异。(在所有图形系统中,每个像素都使用相同数量的内存来存储它的颜色 和 颜色缓冲区的大小因机器而异 是不是矛盾啊!现在看着挺矛盾的)  
  程序执行的早期,颜色显示模式设置为RGBA模式或颜色索引模式。眼颜色模式初始化之后,它就不能再进行更改了。程序在执行时,根据定点确定每个几何图元的颜色。如果启动了光照,它的颜色取决于变换矩阵与表面法线以及其他材料属性的交互效果。
  接着,图元被光栅化(转换为二维图像)。光栅化过程决定了图元将占据窗口坐标中的哪些整形栅格方块,并为每个方块分配颜色和其他值。一个具有相关颜色值、z值和威力坐标值的栅格方块称为片段。像素是帧缓冲区的基本元素。片段来自图元,它与对应的像素组合,形成一个新的像素。在创建了片段后,OpenGL对片段应用纹理、雾和抗锯齿处理。此后,OpenGL使用片段以及已经存储在帧缓冲区的像素,执行所有指定的alpha混合、抖动和位逻辑操作。最后,片段的颜色写到像素,根据窗口的颜色显示模式在窗口中显示。

write by fgd

转载于:https://www.cnblogs.com/wendao/archive/2011/12/23/ogl_view_learning.html

OpenGL 视图和颜色的概念相关推荐

  1. openGL glColor3f函数颜色

    <span style="background-color: rgb(255, 255, 255); ">在OpenGl中设置颜色,一般可以使用glColor3f(). ...

  2. 玩转MFC文档视图架构编程1——深入浅出MFC文档/视图架构之基本概念深入浅出MFC文档/视图架构之文档

    原创地址: 深入浅出MFC文档/视图架构之基本概念 http://iis.xrtvu.com/Tech/ShowArticle.asp?ArticleID=276 深入浅出MFC文档/视图架构之文档模 ...

  3. 《视觉开发专题》之 OpenGL 3D动画绘制图形学概念的理解

    知识前导 计算机图形学的终极目标--讨好人类视觉系统   最近在啃的书中有一本叫<计算机图形学 原理及实践>,这本书让我深有感触的是其绪论中对计算机构建真实感图像的理解:我们所致力的最终目 ...

  4. opengl版本发展史及各种概念的厘清

    1.版本发展 1 opengl的版本区别 1.1 opengl1.1        1995年,SGI推出了更为完善的OpenGL 1.1版本.OpenGL 1.1的性能比1.0版提高甚多.其中包括改 ...

  5. Opengl ES系列学习--颜色

    本节我们来学习一下颜色的知识,在看完原作者讲解的颜色的知识的基础上,只要我们理解了,应该就能提取出重点,其实本节的重点就是下面这一句话. 所以我们要作的就是计算出物体颜色和光源颜色,然后把它们两个相乘 ...

  6. OpenGL中的颜色再次讨论

    一.经过这篇文章后,你将学会如下技能: 1.混合颜色来取得像半透明这样的效果. 2.对于锯齿边缘线和多边形变进行平滑处理. 3.创造真实的大气效果. 二. 1. 如果对OpenGL的透明玻璃效果很好奇 ...

  7. [OpenGL] 视图矩阵(View)矩阵与glm::lookAt函数源码解析

    一.视图矩阵(View)矩阵 首先明确视图矩阵的作用:在OpenGL的众多坐标系中,存在一个世界坐标系和一个摄像机坐标系,视图矩阵的作用就是将世界坐标系内的坐标转换成摄像机坐标系内的坐标. 如图,空间 ...

  8. 前端须知 上(颜色的概念)

    文章目录 颜色 色调 饱和度 亮度 对比度 Web安全色 颜色应用 前景色与背景色 前景色 背景色 颜色值的类型 色彩关键字 RGB模式 HSL 模式(使用极少) 透明度 颜色 关于css的颜色相关概 ...

  9. Reivt:文件中的三维视图没有颜色

    问题: Revit文件中的默认三维空间没有颜色 问题原因: 该三维视图应用了阶段化过滤器 解决方案: 1.在视图属性中找到阶段化过滤器 2.将阶段过滤器选项设置为"无"

最新文章

  1. php模块介绍,Python模块介绍
  2. sdk版本过低怎么办_滴滴ElasticSearch平台跨版本升级以及平台重构之路
  3. javascript 高级程序设计学习笔记(面向对象的程序设计) 1
  4. flask sqlalchemy一对多关系详解
  5. biosrecovery什么意思_BIOS中的每个中文是什么意思
  6. MDI多窗体1130
  7. 在javascript使用EL表达式注意事项
  8. MySQL数据库远程连接开启方法
  9. Spring框架利用PropertyPlaceholderConfigurer初始化加载多properties文件
  10. Java进阶:GIT
  11. 手机3D建模初现端倪,预计今年市场规模将达1.45亿美元
  12. 【大学物理·光学】光的衍射现象 惠更斯-菲涅耳原理
  13. 舱机器人尾巴毛茸茸_第一千五百二十四章 毛茸茸【二合一】
  14. 房地产微信营销方案微信“危”与“机”
  15. Windowed reading and writing
  16. win7计算机未连接网络,Win7无线网络显示未连接但可以上网的解决办法
  17. 博客篇-如何使用阿里云搭建网站
  18. 四川省国际科技合作基地(国合基地)申报条件程序
  19. Android中设置分割线
  20. iphone连接linux系统电脑,为什么iphone连不上电脑 多种解决方法【图文教程】

热门文章

  1. Redis中数据结构和编码详细图解(应用场景及优缺点)
  2. AutoCompleteExtender智能扩展实例
  3. Kafka基础系列第1讲:Kafka的诞生背景及应用
  4. 搭建 ELK 问题排查
  5. 讲述下 :LVM逻辑卷管理遇到的问题
  6. Unity中所有特殊的文件夹
  7. jquery实现输入框动态增减的实例代码
  8. React Native移动框架功能研究
  9. SQL - waitfor delay/time(SQL中延迟时间的方法)
  10. IEDevToolBar - 一个分析网页的有用的工具