OpenGL图形编程2基本图形绘制(陈永强)ppt课件

上传人:20****08 文档编号:240677861 上传时间:2024-04-29 格式:PPT 页数:47 大小:338.80KB
返回 下载 相关 举报
OpenGL图形编程2基本图形绘制(陈永强)ppt课件_第1页
第1页 / 共47页
OpenGL图形编程2基本图形绘制(陈永强)ppt课件_第2页
第2页 / 共47页
OpenGL图形编程2基本图形绘制(陈永强)ppt课件_第3页
第3页 / 共47页
点击查看更多>>
资源描述
1OpenGL图形编程图形编程武汉纺织大学数学与计算机学院武汉纺织大学数学与计算机学院授课教师:陈永强授课教师:陈永强 教授教授1OpenGL图图形形编编程武程武汉纺织汉纺织大学数学与大学数学与计计算机学院授算机学院授课课教教师师:2.OpenGL基本基本图图形形绘绘制制o2.1glBegin/glEnd o2.2点的点的绘制制o2.3直直线的的绘制制o2.4多多边形面的形面的绘制制o2.5OpenGL中的字符函数中的字符函数o2.6OpenGL中的反走中的反走样22.OpenGL基本基本图图形形绘绘制制2.1glBegin/glEn2.1glBegin/glEndoOpenGL的的图元元绘制放在函数制放在函数glBegin和和glEnd之之间,由函数,由函数glBegin的参数指定的参数指定绘制制图元的元的类型。型。2.1glBegin/glEndOpenGL 的的图图元元绘绘制放在函制放在函2.1glBegin/glEnd表 glBegin可支持的OpenGL图元 模式模式 图元类型图元类型 GL_POINTS 将指定的各个顶点用于创建单个的点将指定的各个顶点用于创建单个的点 GL_LINES 将指定的顶点用于创建线段。每两个顶点指定一条单独的线将指定的顶点用于创建线段。每两个顶点指定一条单独的线段。如果顶点个数是奇数,则忽略后一个段。如果顶点个数是奇数,则忽略后一个 GL_LINE_STRIP 将指定的顶点用于创建线条。第一个顶点之后的每个顶点指将指定的顶点用于创建线条。第一个顶点之后的每个顶点指定的是线条延伸到的下一个点定的是线条延伸到的下一个点 GL_LINE_LOOP 特性和特性和GL_LINE_STRIP 相似,只不过最后一条线段是在相似,只不过最后一条线段是在指定的后一个和第一个顶点之间绘制。典型情况下,这用于指定的后一个和第一个顶点之间绘制。典型情况下,这用于绘制那些可能违反了绘制那些可能违反了 GL_POLYGON 用法规则的封闭区用法规则的封闭区域域 GL_TRIANGLES 将指定的顶点用于构造三角形。每三个顶点指定一个新三角将指定的顶点用于构造三角形。每三个顶点指定一个新三角形。如果顶点个数不是三的倍数,多余的顶点将被忽略形。如果顶点个数不是三的倍数,多余的顶点将被忽略 2.1glBegin/glEnd 表表 glBegin可支持的可支持的O2.1glBegin/glEnd表 glBegin可支持的OpenGL图元(续)模式模式 图元类型图元类型 GL_TRIANGLE_STRIP 将指定的顶点用于创建三角条。指定前三个顶点之后,后继的每将指定的顶点用于创建三角条。指定前三个顶点之后,后继的每个顶点与它前面两个顶点一起用来构造下一个三角形。每个顶点个顶点与它前面两个顶点一起用来构造下一个三角形。每个顶点 三元组(在初的组之后)会自动重新排列以确保三角形绕法的三元组(在初的组之后)会自动重新排列以确保三角形绕法的 一一致性。致性。GL_TRIANGLE_FAN 将指定的顶点用于构造三角扇形。第一个顶点充当原点,第三个将指定的顶点用于构造三角扇形。第一个顶点充当原点,第三个顶点之后的每个顶点与它的前一个顶点还有原点一起组合。顶点之后的每个顶点与它的前一个顶点还有原点一起组合。GL_QUADS 每四个顶点一组用于构造一个四边形。如果顶点个数不是四的倍每四个顶点一组用于构造一个四边形。如果顶点个数不是四的倍数,多余的顶点将被忽略数,多余的顶点将被忽略 GL_QUADS_STRIP 将指定的顶点用于构造四条形边。在第一对顶点之后,每对顶点将指定的顶点用于构造四条形边。在第一对顶点之后,每对顶点定义一个四边形。和定义一个四边形。和 GL_QUADS 的顶点顺序不一样,每对顶的顶点顺序不一样,每对顶点以指定顺序的逆序使用,以便保证绕法的一致点以指定顺序的逆序使用,以便保证绕法的一致 GL_POLYGON 将指定的顶点用于构造一个凸多边形。多边形的边缘决不能相交。将指定的顶点用于构造一个凸多边形。多边形的边缘决不能相交。最最后一个顶点会自动连接到第一个顶点以确保多边形是封闭的后一个顶点会自动连接到第一个顶点以确保多边形是封闭的 2.1glBegin/glEnd 表表 glBegin可支持的可支持的O2.2点的点的绘绘制制o点的点的绘制制glVertex函数用于指定函数用于指定顶点,可以有点,可以有2,3,4个参数。个参数。带2个参数个参数时指定的是空指定的是空间点的点的x,y坐坐标,其,其z坐坐标为默默认值0,在,在绘制平面制平面图形形时常常使用常常使用这类函数;函数;带3个参数个参数时指定的是空指定的是空间点的点的x,y和和z坐坐标;带4个参数个参数时,除了定,除了定义空空间点的点的x,y,z坐坐标,还有一个不有一个不为0的的w坐坐标。点的坐点的坐标(x,y,z,w)实际上构成了一个上构成了一个齐次坐次坐标。在。在OpenGL中,中,仍然使用仍然使用规范化范化齐次坐次坐标以保以保证点的点的齐次坐次坐标与三与三维坐坐标的一一的一一对应关系,关系,最后指定的空最后指定的空间点的坐点的坐标为(x/w,y/w,z/w,1),),w成了坐成了坐标值的的一个一个缩放因子。放因子。62.2点的点的绘绘制点的制点的绘绘制制62.2点的点的绘绘制制o点的点的绘制制 glBegin(GL_POINTS);glVertex3f(0.0f,0.0f,0.0f);glVertex3f(10.0f,0.0f,0.0f);glEnd();72.2点的点的绘绘制点的制点的绘绘制制72.2点的点的绘绘制制o点的属性(大小)点的属性(大小)在在OpenGL中中绘制一个点制一个点时,点大小的默,点大小的默认值是一个象素。是一个象素。可以用函数可以用函数glPointSize修改修改这个个值:void glPointSize(GLfloat size);这个函数采用一个参数来指定画点个函数采用一个参数来指定画点时以象素以象素为单位的近似位的近似直径。直径。82.2点的点的绘绘制点的属性(大小)制点的属性(大小)82.2点的点的绘绘制制o点的属性(大小)点的属性(大小)通常使用下面的代通常使用下面的代码来来获取点大小的范取点大小的范围和它和它们之之间最小的中最小的中间值:GLfloat sizes2;/保存保存绘制点的尺寸范制点的尺寸范围 GLfloat step;/保存保存绘制点尺寸的步制点尺寸的步长 glGetFloatv(GL_POINT_SIZE_RANGE,sizes);glGetFloatv(GL_POINT_SIZE_GRANULARITY,&step);在数在数组 seizes 中包含两个元素,分中包含两个元素,分别保存了保存了glPointSize的最小有效的最小有效值和最大有和最大有效效值,而,而变量量step将保存点大小之将保存点大小之间允允许的最小增量。指定范的最小增量。指定范围之外的大小不之外的大小不会被解会被解释为错误,而是使用最接近指定,而是使用最接近指定值的可支持的最大或最小尺寸。的可支持的最大或最小尺寸。92.2点的点的绘绘制点的属性(大小)制点的属性(大小)92.3直直线线的的绘绘制制o直直线的的绘制模式制模式nGL_LINESnGL_LINE_STRIPnGL_LINE_LOOP10(a)GL_LINES画画线模式模式 (b)GL_LINE_LOOP画画线模式模式 (c)GL_LINE_STRIP画画线模式模式图5-57 OpenGL画画线模式模式2.3直直线线的的绘绘制直制直线线的的绘绘制模式制模式10(a)GL_LINES画画线线2.3直直线线的的绘绘制制o直直线的的绘制制使用模式使用模式GL_LINES可以在两点之可以在两点之间画画线,在两点,在两点(0,0,0)和和(10,10,10)之之间画一条直画一条直线:glBegin(GL_LINES);glVertex3f(0.0f,0.0f,0.0f);glVertex3f(10.0f,10.0f,10.0f);glEnd();注意,在注意,在glBegin/glEnd序列中两个序列中两个顶点指定了一个直点指定了一个直线,如果序,如果序列中指定的点列中指定的点为奇数个,那么最后一个奇数个,那么最后一个顶点将被忽略。点将被忽略。112.3直直线线的的绘绘制直制直线线的的绘绘制制112.3直直线线的的绘绘制制o直直线的的绘制制需要在一系列的需要在一系列的顶点之点之间绘制制连续直直线,就要用到,就要用到GL_LINE_STRIP或或GL_LINE_LOOP模式。模式。122.3直直线线的的绘绘制直制直线线的的绘绘制制122.3直直线线的的绘绘制制o直直线的的绘制制GL_LINE_STRIP模式可以根据指定的一系列模式可以根据指定的一系列顶点,从一个点,从一个顶点到另一点到另一个个顶点用点用连续的的线段画段画线:glBegin(GL_LINE_STRIP);glVertex3f(0.0f,0.0f,0.0f);glVertex3f(10.0f,10.0f,0.0f);glVertex3f(20.0f,5.0f,0.0f);glEnd();在在xy平面内平面内绘制了两条直制了两条直线(0,0,0)到到(10,0,0)和和(0,10,0)到到(20,5,0)。132.3直直线线的的绘绘制直制直线线的的绘绘制制132.3直直线线的的绘绘制制o直直线的的绘制制GL_LINE_LOOP模式与模式与GL_LINE_STRIP模式模式类似,只是会在指定似,只是会在指定的最后一个的最后一个顶点与第一个点与第一个顶点之点之间画最后一条画最后一条线。142.3直直线线的的绘绘制直制直线线的的绘绘制制142.3直直线线的的绘绘制制o直直线的属性的属性n线宽 n线型型 152.3直直线线的的绘绘制直制直线线的属性的属性152.3直直线线的的绘绘制制o直直线的属性的属性n 线宽可用可用glLineWidth指定指定线宽:void glLineWidth(GLfloat width)与点的大小与点的大小类似,似,glLineWidth函数采用一个参数函数采用一个参数来指定要画的来指定要画的线以象素以象素计的近似的近似宽度度。162.3直直线线的的绘绘制直制直线线的属性的属性162.3直直线线的的绘绘制制o直直线的属性的属性n线宽可以用下面的代可以用下面的代码来来获取取线宽范范围和它和它们之之间的的最小最小间隔:隔:GLfloat sizes2;/保存保存线宽的尺寸范的尺寸范围 GLfloat step;/保存保存线宽尺寸的最小尺寸的最小间隔隔 glGetFloarv(GL_LINE_WIDTH_RANGE,sizes);glGetFloatv(GL_LINE_WIDTH_GRANULARITY,&step);数数组 sizes中保存了中保存了glLineWidth的最小有效的最小有效值和最大有效和最大有效值,而,而变量量step将将保存保存线宽之之间允允许的最小增量。的最小增量。OpenGL规范只要求支持一种范只要求支持一种线宽:1.0。Microsoft的的OpenGL实现允允许线宽从从0.5到到10.0,最小增量,最小增量为 0.125。172.3直直线线的的绘绘制直制直线线的属性的属性172.3直直线线的的绘绘制制o直直线的属性的属性n线型型可以用虚可以用虚线或短划或短划线模式模式创建直建直线,需要先,需要先调用:用:glEnable(GL_LINE_STIPPLE);然后,建立用于画然后,建立用于画线的模式的模式:glLineStipple(GLint factor,GLushort pattern);参数参数pattern是一个是一个 16 位位值,指定画,指定画线时所用的模式,逆向使所用的模式,逆向使用。每一位代表用。每一位代表线段的一部分是开段的一部分是开还是关。默是关。默认情况下,每一情况下,每一位位对应一个象素。一个象素。参数参数factor充当倍数可以增加模式的充当倍数可以增加模式的宽度。度。182.3直直线线的的绘绘制直制直线线的属性的属性182.3直直线线的的绘绘制制19图图5-58 画线模式用于构造线段画线模式用于构造线段2.3直直线线的的绘绘制制19图图5-58 画画线线模式用于构造模式用于构造线线段段2.3直直线线的的绘绘制制o例子例子红皮皮书lines.c2.3直直线线的的绘绘制例子制例子2.4多多边边形面的形面的绘绘制制o三角形面的三角形面的绘制制nGL_TRIANGLESnGL_TRIANGLE_STRIPnGL_TRIANGLE_FANo四四边形面的形面的绘制制nGL_QUADSnGL_QUADS_STRIPo多多边形面的形面的绘制(制(GL_POLYGON)212.4多多边边形面的形面的绘绘制三角形面的制三角形面的绘绘制制212.4多多边边形面的形面的绘绘制制o三角形面的三角形面的绘制制在在OpenGL中,面是由多中,面是由多边形构成的。形构成的。三角形是最三角形是最简单的多的多边形,有三条形,有三条边。可以使用。可以使用 GL_TRIANGLES模式通模式通过把三个把三个顶点点连接到一起而接到一起而绘出三角形。出三角形。2.4多多边边形面的形面的绘绘制三角形面的制三角形面的绘绘制制2.4多多边边形面的形面的绘绘制制o三角形面的三角形面的绘制制以下以下绘制了一个三角形:制了一个三角形:glBegin(GL_TRIANGLES);glVertex2f(0.0,0.0);glVertex2f(15.0,15.0);glVertex2f(30.0,0.0);glEnd();注意:注意:这里三角形将被用当前里三角形将被用当前选定的定的颜色填充,如果尚未色填充,如果尚未指定指定绘图的的颜色,色,结果将是不确定的。果将是不确定的。2.4多多边边形面的形面的绘绘制三角形面的制三角形面的绘绘制制2.4多多边边形面的形面的绘绘制制o三角形面的三角形面的绘制制使用使用GL_TRIANGLE_STRIP模式可以模式可以绘制几个相制几个相连的的三角形,系三角形,系统根据前三个根据前三个顶点点绘制第一个多制第一个多边形,以后形,以后每指定一个每指定一个顶点,就与构成上一个三角形的后两个点,就与构成上一个三角形的后两个顶点点绘制新的一个三角形。制新的一个三角形。GL_TRIANGLE_STRIP模式模式2.4多多边边形面的形面的绘绘制三角形面的制三角形面的绘绘制制GL_TRIANGLE_S2.4多多边边形面的形面的绘绘制制o三角形面的三角形面的绘制制使用使用GL_TRIANGLE_FAN模式可以模式可以绘制一制一组相相连的三角形,的三角形,这些些三角形三角形绕着一个中心点成扇形排列。第一个着一个中心点成扇形排列。第一个顶点构成扇形的中心,点构成扇形的中心,用前三个用前三个顶点点绘制出最初的三角形之后,制出最初的三角形之后,随后的所有随后的所有顶点都和扇点都和扇形中心以及形中心以及紧跟在它前面的跟在它前面的顶点构成下一个三角形,此点构成下一个三角形,此时是以是以顺时针方向穿方向穿过顶点。点。GL_TRIANGLE_FAN模式模式2.4多多边边形面的形面的绘绘制三角形面的制三角形面的绘绘制制GL_TRIANGLE_F2.4多多边边形面的形面的绘绘制制o多多边形面的形面的绘制制规则n所有多所有多边形都必形都必须是平面的。是平面的。多多边形的所有形的所有顶点必点必须位于一个平面上,不能在空位于一个平面上,不能在空间中中扭曲。扭曲。n多多边形形的的边缘决决不不能能相相交交,而而且且多多边形形必必须是凸的。是凸的。如果有任意两条如果有任意两条边交叉,就称交叉,就称这个多个多边形与自己相交。形与自己相交。“凸凸的的”是是指指任任意意经过多多边形形的的直直线进入入和和离离开开多多边形形的的 次数不超次数不超过一次。一次。262.4多多边边形面的形面的绘绘制多制多边边形面的形面的绘绘制制规则规则262.4多多边边形面的形面的绘绘制制o非凸多非凸多边形形可以把它分割成几个凸多可以把它分割成几个凸多边形(通常是三角形),形(通常是三角形),再将它再将它绘制出来。制出来。问题:如果如果这样的多的多边形被填充形被填充时看不到任何看不到任何边缘,但,但轮廓廓图形状形状态会看到会看到组成大表面的所有成大表面的所有小三角形。小三角形。OpenGL提供了一个特殊提供了一个特殊标记来来处理理这些些边缘,称称为边缘标记。272.4多多边边形面的形面的绘绘制非凸多制非凸多边边形形272.4多多边边形面的形面的绘绘制制o边缘标记在在指指定定顶点点的的列列表表时,通通过设置置和和清清除除边缘标记,可可以以通通知知OpenGL哪哪些些线段段被被认为是是边线(围绕图形形边界界的的线),哪哪些些线段不是(不段不是(不应该显示的内部示的内部线段)。段)。glEdgeFlag函函数数用用一一个个参参数数把把边缘标记设为True或或false。当当函函数被数被设置置为True 时,后面的,后面的顶点将点将标记出出边界界线段的起点。段的起点。glEdgeFlag(True)glEdgeFlag(False)282.4多多边边形面的形面的绘绘制制边缘标记边缘标记282.4多多边边形面的形面的绘绘制制o多多边形面的属性形面的属性n正反(正反(绕法)法)n颜色色n显示模式示模式n填充填充n法向量法向量292.4多多边边形面的形面的绘绘制多制多边边形面的属性形面的属性292.4多多边边形面的形面的绘绘制制o多多边形面的属性形面的属性n正反(正反(绕法)法)指定指定顶点点时顺序和方向的序和方向的组合称合称为“绕法法”。绕法是任何多法是任何多边形形图元的一个重要特性。元的一个重要特性。一般默一般默认情况下,情况下,OpenGL认为逆逆时针绕法的多法的多边形是正形是正对着着的。的。glFrontFace(GL_CW);CL_CW告告诉OpenGL应该把把顺时针缠绕的多的多边形形为正正对着的。着的。为了改回把逆了改回把逆时针绕法法视为正面,可以使用正面,可以使用 CL_CCW。302.4多多边边形面的形面的绘绘制多制多边边形面的属性形面的属性302.4多多边边形面的形面的绘绘制制o多多边形面的属性形面的属性n颜色色在在绘制多制多边形形时,常常要指定,常常要指定绘制的制的颜色。在色。在OpenGL中,中,颜色色实际上是上是对各个各个顶点而不是点而不是对各个多各个多边形指定的。形指定的。多多边形的形的轮廓或者内部用廓或者内部用单一的一的颜色或色或许多不同的多不同的颜色来填充的色来填充的处理方理方式称式称为明暗明暗处理。理。在在OpenGL中,用中,用单一一颜色色处理的称理的称为平面明暗平面明暗处理(理(Flat Shading),用),用许多不同多不同颜色色处理的称理的称为光滑明暗光滑明暗处理(理(Smooth Shading),也称),也称为Gourand明暗明暗处理(理(Gourand Shading)。)。312.4多多边边形面的形面的绘绘制多制多边边形面的属性形面的属性312.4多多边边形面的形面的绘绘制制o多多边形面的属性形面的属性n颜色色设置明暗置明暗处理模式的函数理模式的函数为:void glShadeModel(GLenum mode);其中参数其中参数mode的取的取值为GL_FLAT或或GL_SMOOTH,分,分别表示平面明暗表示平面明暗处理和光滑理和光滑明暗明暗处理。理。322.4多多边边形面的形面的绘绘制多制多边边形面的属性形面的属性322.4多多边边形面的形面的绘绘制制o多多边形面的属性形面的属性n颜色色glShadeModel(GL_FLAT)指定多指定多边形最后一个形最后一个顶点点时的当前的当前颜色作色作为填充多填充多边形的形的纯色,唯一例外色,唯一例外是是GL_POLYGON图元,它采用的是第一个元,它采用的是第一个顶点的点的颜色。色。glShadeModel(GL_SMOOTH)从从各各个个顶点点给三三角角形形投投上上光光滑滑的的阴阴影影,为各各个个顶点点指指定定的的颜色色之之间进行插行插值。332.4多多边边形面的形面的绘绘制多制多边边形面的属性形面的属性332.4多多边边形面的形面的绘绘制制o多多边形面的属性形面的属性n显示模式示模式多多边形不是必形不是必须用当前用当前颜色填充的。默色填充的。默认情况下情况下绘制的多制的多边形是形是实心的,但可以通心的,但可以通过指定把多指定把多边形形绘制制为轮廓或只是点(只廓或只是点(只画出画出顶点)来修改点)来修改这项默默认行行为。函数函数glPolygonMode允允许把多把多边形渲染形渲染为填充的填充的实心、心、轮廓廓线或只是点。可以把或只是点。可以把这项渲染模式渲染模式应用到多用到多边 形的两面或形的两面或只只应用到正面或背面。用到正面或背面。342.4多多边边形面的形面的绘绘制多制多边边形面的属性形面的属性342.4多多边边形面的形面的绘绘制制o多多边形面的属性形面的属性n显示模式示模式 glPolygonMode(GLenum face,GLenum mode);参参数数face用用于于指指定定多多边形形的的哪哪一一个个面面受受到到模模式式改改变的的影影响响,取取GL_FRONT,GL_BACK 或或GL_FRONT_AND_BACK。参参数数mode用用于于指指定定新新的的绘图模模式式,GL_FILL是是默默认值,生生成成填填充充的的多多边形形;GL_LINE生生成成多多边形形的的轮廓廓;而而 GL_POINT只画出只画出顶点。点。352.4多多边边形面的形面的绘绘制多制多边边形面的属性形面的属性352.4多多边边形面的形面的绘绘制制o多多边形面的属性形面的属性n填充填充多多边形面既可以用形面既可以用纯色填充,也可以用色填充,也可以用3232的模板的模板位位图来填充。来填充。void glPolygonStipple(const GLubyte*mask);glEnable(GL_POLYGON_STIPPLE);362.4多多边边形面的形面的绘绘制多制多边边形面的属性形面的属性362.4多多边边形面的形面的绘绘制制o多多边形面的属性形面的属性n法向量法向量法向量是垂直于面的方向上点的向量,它确定了几何法向量是垂直于面的方向上点的向量,它确定了几何对象在空象在空间中的方向。中的方向。在在OpenGL中,可以中,可以为每个每个顶点指定法向量。点指定法向量。void glNormal3bsidf(TYPE nx,TYPE ny,TYPE nz);void glNormal3bsidfv(const TYPE*v);372.4多多边边形面的形面的绘绘制多制多边边形面的属性形面的属性372.4多多边边形面的形面的绘绘制制o例子例子红皮皮书polys.c2.4多多边边形面的形面的绘绘制例子制例子2.5OpenGL中的字符函数中的字符函数oGLUT位位图字符字符 void glutBitmapCharacter(void*font,int character);oGLUT矢量字符矢量字符 void glutStrokeCharacter(void*font,int character);392.5OpenGL中的字符函数中的字符函数GLUT位位图图字符字符392.5OpenGL中的字符函数中的字符函数o例子例子红皮皮书font.c2.5OpenGL中的字符函数例子中的字符函数例子2.6OpenGL中的反走中的反走样样o二种方法二种方法nRGBA颜色模式色模式混合混合n多重采多重采样2.6OpenGL中的反走中的反走样样二种方法二种方法2.6OpenGL中的反走中的反走样样nRGBA颜色模式混合色模式混合1.启用反走启用反走样 glEnable(primitiveType);2.启用启用OpenGL颜色混和并指定色混和并指定颜色混合函数色混合函数 glEnable(GL_BLEND);glBlendFunc(GL_SCR_ALPHA,GL_ONE_MINUS_SRC_ALPHA);422.6OpenGL中的反走中的反走样样RGBA颜颜色模式混合色模式混合422.6OpenGL中的反走中的反走样样nRGBA颜色模式混合色模式混合颜色混和函数用于色混和函数用于计算两个相互重叠的算两个相互重叠的对象的象的颜色。色。在在RGBA颜色模式(色模式(A表示透明度)中,已知源表示透明度)中,已知源像素的像素的颜色色值为(Sr,Sg,Sb,Sa),目),目标像素的像素的颜色色值为(Dr,Dg,Db,Da),),颜色色混合后像素的混合后像素的颜色色为:(RSSr+RDDr,GSSg+GDDg,BSSb+BDDb,ASSa+ADDa)432.6OpenGL中的反走中的反走样样RGBA颜颜色模式混合色模式混合432.7OpenGL中的反走中的反走样样nRGBA颜色模式混合色模式混合定定义混合因子混合因子void glBlendFunc(GLenum srcfactor,GLenum destfactor);44常量常量RGB混合因子混合因子Alpha混合因子混合因子GL_ZERO(0,0,0)0GL_ONE(1,1,1)1GL_SRC_COLOR(RS,GS,BS)ASGL_ONE_MINUS_SRC_COLOR(1,1,1)(RS,GS,BS)1ASGL_DST_COLOR(RD,GD,BD)ADGL_ONE_MINUS_DST_COLOR(1,1,1)(RD,GD,BD)1ADGL_SCR_ALPHA(AS,AS,AS)ASGL_ONE_MINUS_SRC_ ALPHA(1,1,1)(AS,AS,AS)1ASGL_DST_ALPHA(AD,AD,AD)ADGL_ONE_MINUS_DST_ ALPHA(1,1,1)(AD,AD,AD)1AD表表5-1 源混和因子和目标混合因子源混和因子和目标混合因子2.7OpenGL中的反走中的反走样样RGBA颜颜色模式混合色模式混合44常量常量RG2.7OpenGL中的反走中的反走样样nRGBA颜色模式混合色模式混合教材教材【程序程序5-12】红皮皮书aargb.c2.7OpenGL中的反走中的反走样样RGBA颜颜色模式混合色模式混合2.7OpenGL中的反走中的反走样样n多重采多重采样1.获取一个支持多重采取一个支持多重采样的窗口;的窗口;glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_MULTISAMPLE);2.打开窗口后,打开窗口后,验证多重采多重采样是否可用;是否可用;Glint bufs,samples;glGetIntegergu(GL_SAMPLE_BUFFERS,&bufs);glGetIntegerv(GL_SAMPLES,&samples);3.启用多重采启用多重采样glEnable(GL_MULTISAMPLE);2.7OpenGL中的反走中的反走样样多重采多重采样样2.7OpenGL中的反走中的反走样样n多重采多重采样红皮皮书multisamp.c2.7OpenGL中的反走中的反走样样多重采多重采样样
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!