利用 bINormal“0设置当前法向量后,相继调用 glVertex,O,使指定的顶点被赋予当前的法向量。当每个顶 点具有不同的法向量时,需要有一系列的交替调用,如下列构造多边形的语句,分别为该多边形顶点n0、n1、 12、n3指定了法向量vo、1、v2、v3 glBegin (GL POLYGON) glNormal3fv(nO) glVertex3fv(vO) gINormal3fv(n1) glVertex3fv(v1) glNormal3fv(n2) glVertex3fv(v2) glNormal3fv(n3) glVertex3fv(v3) glEndO ·计算法向量 0 penGL并不能自动地计算几何对象的法向量,而只能是由用户显式地指定。法向量的计算是一个纯粹的几 何和数学问题。这里只简略地区分了几种情况。 1).求解析曲面的法向量 解析曲面是由数学方程(或方程组)描述的平滑的、可微曲面。解析曲面可以是显式定义的,即: V (s, t)=[X(s, t)Y(s, t)Z(s, t)] av av 其法向量为80t,当然这个法向量不是规格化的向量。 解析曲面如果是隐式表示的,即 F(x,y,z)=0 这时的法向量求解是比较困难的。在有些情况下,如能解出其中一个变量,如 这时就相当于显式表示了 即: (6,)-s,G(s)] 2).求多边形的法向量 在 OpenGL中,这种情形占了大多数。求平面多边形的法向量,利用不在同一直线上的多边形3个顶点v1,v2 和v3。两个矢量的叉积垂直于多边形,即为该多边形的法向量(需要经过规格化处理) 对于求多边形网格各顶点上的法向量,由于每个顶点同时位于几个不同的多边形边界上,所以需将周围多 边形的法向量相加,再取其平均值。 5.1.4坐标变换 在 OpenGL编程过程中,坐标变换是一个贯穿始终的操作。程序员必须在头脑中对整个坐标变换过程有 一个清晰的图象,才能将所建的场景模型正确地显示在屏幕上 OpenGL的坐标变换过程类似于用照相机拍摄照片的过程。如下图所示,使用照相机的步骤如下 1).竖起三角架,将照相机对准场景(视图变换)。 2).将要拍的场景置于所要求的位置上(造型变换)。 3)选择照相机透镜或调整焦距(投影变换)。 4).确定最终的照片需要多大。例如,放大照片(视口变换) 计算机图形学第五章第147页共36页
计算机图形学 第五章 第 147 页 共 36 页 利用 glNormal*()设置当前法向量后,相继调用 glVertex*(),使指定的顶点被赋予当前的法向量。当每个顶 点具有不同的法向量时,需要有一系列的交替调用,如下列构造多边形的语句,分别为该多边形顶点 n0、n1、 n2、n3 指定了法向量 v0、v1、v2、v3: glBegin (GL_POLYGON); glNormal3fv(n0); glVertex3fv(v0); glNormal3fv(n1); glVertex3fv(v1); glNormal3fv(n2); glVertex3fv(v2); glNormal3fv(n3); glVertex3fv(v3); glEnd(); • 计算法向量 OpenGL 并不能自动地计算几何对象的法向量,而只能是由用户显式地指定。法向量的计算是一个纯粹的几 何和数学问题。这里只简略地区分了几种情况。 1). 求解析曲面的法向量 解析曲面是由数学方程(或方程组)描述的平滑的、可微曲面。解析曲面可以是显式定义的,即: V(s,t) = [ X(s,t) Y(s,t) Z(s,t) ] 其法向量为 ,当然这个法向量不是规格化的向量。 解析曲面如果是隐式表示的,即: 这时的法向量求解是比较困难的。在有些情况下,如能解出其中一个变量,如: 这时就相当于显式表示了,即: 2). 求多边形的法向量 在 OpenGL 中,这种情形占了大多数。求平面多边形的法向量,利用不在同一直线上的多边形 3 个顶点 v1,v2 和 v3。两个矢量的叉积垂直于多边形,即为该多边形的法向量(需要经过规格化处理)。 对于求多边形网格各顶点上的法向量,由于每个顶点同时位于几个不同的多边形边界上,所以需将周围多 边形的法向量相加,再取其平均值。 5.1.4 坐标变换 在 OpenGL 编程过程中,坐标变换是一个贯穿始终的操作。程序员必须在头脑中对整个坐标变换过程有 一个清晰的图象,才能将所建的场景模型正确地显示在屏幕上。 OpenGL 的坐标变换过程类似于用照相机拍摄照片的过程。如下图所示,使用照相机的步骤如下: 1). 竖起三角架,将照相机对准场景(视图变换)。 2). 将要拍的场景置于所要求的位置上(造型变换)。 3). 选择照相机透镜或调整焦距(投影变换)。 4). 确定最终的照片需要多大。例如,放大照片(视口变换)
With a Camera With a Computer tn viewit positioning the vi model model ing positioning the models proj ection determining shape of viewing volume photograph viewport 图5-1-7照相机的拍摄过程与 OpenGL坐标变换的类比 计算机图形学第五章第148页共36页
计算机图形学 第五章 第 148 页 共 36 页 图 5-1-7 照相机的拍摄过程与 OpenGL 坐标变换的类比