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图形系统是一个软件接口 让程序员能够创建交互式程序 使用计算机图形学技术生成具有真实感的图像 本书是OpenGL ARB推荐的OpenGL 1 4版学习指南 本书首先阐述OpenGL的功能和计算机图形学基本知识 包括状态管理和几何体的绘制 模型变换 视点变换和投影变换 颜色和光照;然后深入探讨一些高级技术 包括反走样 雾阄 显示列表 图像处理 纹理映射 帧缓存 网格化 NURBS 选择和反馈等;同时讨论其他一些重要主题 像如何提高程序的性能 OpenGL扩展和跨平台技术等 本书只要求读者有一定的C语言基础和数学知识 适合所有对OpenGL编程感兴趣的读者阅读 OpenGL是一个功能强大的软件接口 用于绘制高质量的计算机图像 以及编写使用2D和3D几何物体及位图和图像的交互式应用程序 本书介绍OpenGLOpenGL实用库 内容全面 权威 被称为“OpenGL红宝书” 本书第三版针对的是OpenGL1.2版 而本版介绍了OpenGL1.3和1.4版新增的所有特性以及重要的OpenGL ARB OpenGL体系结构审核委员会 扩展 本书以清晰的语言阐述了OpenGL的功能以及众多计算机图形学基本技术 如构建和渲染3D模型 从不同的角度观察物体 使用着色 光照和纹理映射来提高图像的真实感;深入探讨了一些高级技术 其中包括纹理映射 反走样 雾效和大气效果 NURBS 图像处理等;讨论了其他一些重要主题 如提高性能 OpenGL扩展和跨平台技术等 ">OpenGL图形系统是一个软件接口 让程序员能够创建交互式程序 使用计算机图形学技术生成具有真实感的图像 本书是OpenGL ARB推荐的OpenGL 1 4版学习指南 本书首先阐述OpenGL的功能和计算机图形学基本知识 包括状态管理和几何 [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值