OpenGL 是一种用于创建实时3D图像的编程接口。我们可以通过透视、隐藏直线消除、颜色、着色、和其他技巧来创建深度幻觉。
3D
a. 简介
3D表示一个正在描述或者显示的物体有三个维度,分别是宽度,高度和深度。通过这三个维度让人感觉立体。
计算机3D图像的实质上也是平面的,它只是在计算机的屏幕上所显示的二维图像,但它可以通过提供深度的错觉。可以通过一个简单的说明:
2D + 透视 = 3D
b. 术语
- 变化与投影
- 光栅化:实际绘制或者填充每一个顶点之间的像素形成线程线框渲染是有它的用处的,但在大多数情况下我们并不是用线程,而是使用实心三角形渲染。
- 着色:沿着顶点之间改变颜色值,能够轻松的创建关照射一个立方体的效果,另一方面则是图形硬件上执行的单独程序,用来处理顶点和光栅化任务。
- 纹理贴图:不过是一个复用来贴到三角形或者多边形上的图片,在GPU上,纹理是快捷有效的。
- 混合:混合是将不同的颜色混在一起。
c.着色器
在实时计算机中,最前沿的技术是可编程着色器。图形不再是低能的渲染芯片。而是功能强大的高度可编程的渲染计算机。累屎CPU的术语CPU应运而生。它代表了图形处理单元,特指当今的图形卡上的可编程芯片。他们是高度并行的,并且具有非常快的速度。同样重要的是,程序员可以进行重新配置图形卡的工作方式,几乎以实现任何可以想得到的特效。
d.3D 编程的基本原则
OpenGL基本上是一种底层的渲染API,我们不能告诉它在什么地方绘制什么,我们需要自己动手通过载入三角形,应用必要的变化和正确的纹理和着色器并在必要的应用混合模式来组合一个模型。这使得我们能够大量的底层控制,与使用高层工具包,使用OpenGL这样的底层API动人之处在于,我们不能仅仅是通过许多标准的3D渲染,我们可以创建自己的算法,甚至可以去发现一些新的捷径性能技巧和艺术视觉技术。
在OpenGL 或几乎所有的3D API 中创建一个用于绘制窗口时,必须指定希望使用的坐标系以及指定的坐标如何映射到实际的屏幕像素。