OpenGL简介

相关术语:

2D+透视=3d

只有一只眼睛的人在感知距离时常常遇到困难。

渲染(render):对三维物体进行几何描述并把它转换成屏幕上的一幅图像。

颜色和着色

光照和阴影

纹理贴图(texture mapping)

混合(blending)和透明

抗锯齿(antialialiasing)

 

实时3d(视频游戏等)与非实时3d(电影预渲染)、

 

3D编程的基本原则:

立即模式()与保持模式(如游戏引擎)

坐标系统:2d/3d笛卡尔坐标

坐标裁剪

投影:正投影/透视投影

使用OpenGl:

OpenGL被定义为“图形硬件的一种软件接口”,是一个3d图形和模型库,具有高度可移植性,并具有非常快的速度。最初使用SGI公司(Silicon Graphics,Inc)仔细开发和优化的算法。

opengl与directx之争:OpenGl前身是SGI的IRIS GL,最初是一个3D图形函数库,为更好的发展。OpenGl体系结构委员会(ARB,Architecture Reiview Board)成立,免费的开放源代码的OpenGl软件实现方案叫MESA。microsoft为早期windows95提供的游戏开发工具包包含了一些新的API,其中最重要的是DirectDraw,后来成为众所周知的DirectX,OpenGl随后进入PC领域,这一事件也得益于MicroSoft(microsoft甚至是OpenGl ARB的创始成员之一)。随后openg被John Carmack发现可以用于pc平台上的游戏并执行效率远远高于同时期的directx,随后microsoft设想,opengl只用于配备了昂贵的图形卡的cad行业,没有花大精力为opengl创建一种快速的软件实现。后被sgi证明opengl API设计并没有缺陷,速度慢不过是由于软件实现所致。

再后来,microsoft采取不正当方式让opengl不适合于pc平台的游戏开发,而后sgl又发布自己的opengl驱动程序工具箱,microsoft无法阻止opengl在消费应用程序领域的进展,于是软下态度,同意在windows98上支持opengl,然而此时sgi放弃了扩大opengl在游戏开发人员的影响力的所有市场努力了与micros合作,开发了一个新的APi,叫做Fahrenheit,Fahrenheit兼取两者长处。

很多业界人士认为Fahrenheit的到来将为OPenGl画上一个句号。但是在Opengl被遗忘的过程中,却发生了有趣的事情,没有了SGI的支持,OpenGl焕发了自己的生命力。Fahrenheit完全落入microsoft的控制,并最终停止了开发。opengl越来越流行在移动平台,发展出opengl es。

工作原理

泛型实现和硬件实现

管线(pineline):