下面这篇文章详细讲述了 OpenGL 里的坐标转换,清晰,明了。但是其所谓的渲染管线只包括 modelview
转换 和 投影变换,我觉得不是这样的。这只是从坐标角度吧。比如什么顶点着色、光栅化、送至帧缓存
都没有涉及到。
原文地址:http://blog.csdn.net/zhulinpptor/article/details/5897102
1. OpenGL 渲染管线
OpenGL 渲染管线分为两大部分,模型观测变换(ModelView Transformation)和投影变换(Projection
Transformation)。做个比喻,计算机图形开发就像我们照相一样,目的就是把真实的场景在一张照相纸
上表现出来。那么观测变换的过程就像是我们摆设相机的位置,选择好要照的物体,摆好物体的造型。而
投影变换就像相机把真实的三维场景显示在相纸上一样。下面就分别详细的讲一下这两个过程。
1.1 模型观测变换
让我们先来弄清楚 OpenGL 中的渲染管线。管线是一个抽象的概念,之所以称之为管线是因为显卡在处理
数据的时候是按照一个固定的顺序来的,而且严格按照这个顺序。就像水从一根管子的一端流到另一端,
这个顺序是不能打破的。先来看看下面的图 1:
图 1 OPENGL 渲染管线
图中显示了 OpenGL 图形管线的主要部分,也是我们在进行图形编程的时候常常要用到的部分。一个顶点
数据从图的左上角(MC)进入管线,最后从图的右下角(DC)输出。MC 是 Model Coordinate 的简写,表示
模型坐标。DC 是 Device Coordinate 的简写,表示设备坐标。当然 DC 有很多了,什么显示器,打印机
等等。这里 DC 我们就理解成常说的屏幕坐标好了。MC 当然就是 3D 坐标了(注意:我说的 3D 坐标,而不
是世界坐标),这个 3D坐标就是模型坐标,也说成本地坐标(相对于世界坐标)。MC要经过模型变换(Modeling
Transformation)才变换到世界坐标,图 2:
评论0
最新资源