11 2011 档案
摘要:4.1摄像机与对象将三维图形系统形成图像的过程概念化的基本模式称为合成摄像机模型(syntheticcameramodel)。我们需要两个独立的实体:一个几何对象集以及这些对象的观察者。每个实体都可彼此独立地进行指定。将对象的规格和摄像机整合的过程称为投影(projection),该过程是由OpenGL在其流水线内部完成的。称为投影线(projector)的直线穿过图像中的每一点,并经过摄像机的光心(投影中心)。经过对象上某一点的投影线与焦平面的交点即为该点在图像中的投影点所在的位置。焦平面移到摄像机的前方,这就避免了由透镜引起的图像倒置。我们只需要指定摄像机和场景中的物体。OpenGL将在其
阅读全文
摘要:2.7OpenGL和GLUT坐标系之间的差异对于二维问题,在OpenGL中,x轴和y轴的正方向分别为向右和向上。对于GLUT中使用的输入函数和窗口系统,x轴和y轴的正方向分别为向右和向下。当我们使用来自鼠标的输入时,需要同时考虑两种坐标系,这很容易产生混淆。2.17状态的保存OpenGL状态决定了图元的绘制方式。矩阵堆栈(matrixstack)可用来保存投影矩阵和模型矩阵。每种堆栈只能容纳相应类型的矩阵。可用函数glPushMatrix()和glPopMatrix()使矩阵入栈或出栈。所使用的矩阵由当前矩阵模式glMatrixMode(GL_MODELVIEW或GL_PROJECTON)决定
阅读全文
摘要:1.2关于OpenGL的三种观点1.2.1程序员的观点一般而言,大多数图形应用程序主要包括如下三要素:(1)制定绘制对象(2)描述对象的属性(3)定义这些对象被观察的方式虽然所有产生图形输入的程序必须包含以上三个要素,如果某个程序是交互式的,它还必须包含一些输入函数。最后,所有的程序必须具有一些针对本地操作系统和窗口环境的初始化和终止的函数。1.2.2OpenGL状态机将OpenGL看做是一个具有输入和输出地状态机。其中输入为几何对象的描述信息和离散对象,它们都是通过OpenGL函数调用来制定的。输出为一个离散图元的集合或构成图像的像素集合。在输入和输出之间,是一台能够获取对象的描述信息、并将
阅读全文
摘要:所有OpenGL函数采用了以下格式<库前缀><根命令><可选的参数个数> <可选的参数类型>库前缀有gl、glu、aux、glut、wgl、glx、agl等等,分别表示该函数属于OpenGL那个开发库等,从函数名后面中还可以看出需 要多少个参数以及参数的类型。I代表int型,f代表float型,d代表double型,u代表无符号整型。例如glVertex3fv()表示了该函 数属于 gl库,参数是三个float型参数指针。我们用glVertex*()来表示这一类函数。基本库OpenGL函数库相关的API有核心库(gl)、实用库(glu)、辅助库(
阅读全文
摘要:一、初始化void glutInit(int* argc,char** argv)这个函数用来初始化GLUT库。对应main函数的形式应是:int main(int argc,char* argv[]);这个函数从main函数获取其两个参数。void glutInitWindowSize(int width,int height);void glutInitWindowPosition(int x,int y);设置glut程序要产生的窗口的大小和位置(左上角)。以像素为单位。void glutInitDisplayMode(unsigned int mode);设置图形显示模式。参数mode
阅读全文

浙公网安备 33010602011771号