




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.,1,计算机图形学OpenGL总结,主讲人:桂进斌,.,2,参考书1、OpenGL编程指南(第八版),DaveShreiner等(李军等译),机械工业出版社,2014年。2、计算机图形学(第四版),DonaldHearn,电子工业出版社,2014年。,.,3,学习内容,1、图形软件包2、用VC+编写OpenGL程序3、图形变换4、图元绘制5、颜色和光照6、混合、反走样和雾化7、显示列表、位图和图像8、纹理映射9、复杂图形绘制,.,4,一、图形软件包,1、Direct3D和DirectXDirectX是微软公司的多媒体应用软件包,Direct3D是其中的一部分。DirectX支持图形、音响、应
2、用程序安装和设备管理等。Direct3D至少支持游戏或其他应用中的12种3D图形效果处理。,.,5,一、图形软件包,2、HeidiHeidi主要应用于CAD和CAM技术中,如AutoCAD、3DStudio以及3DSMAX。Heidi是专业性强的软件包,在CAD和CAM领域应用比较广泛,在其它领域如多媒体或游戏软件中应用较少。,.,6,一、图形软件包,3、OpenGLOpenGL是以SGI公司为首,联合IBM、Intel等8家公司共同制定的3D图形标准。OpenGL与硬件无关、独立于操作系统、支持网络运行。,.,7,二、用VC+编写OpenGL程序,1、OpenGL函数库基本库基本库是Open
3、GL的核心函数库。所有OpenGL操作都可用这些函数来实现。可以在平台之间移植。这些函数以“gl”为前缀。实用库实用库建立在基本库的基础之上,目的是为了减轻使用者的编程负担。这些函数以“glu”为前缀。辅助库提供窗口管理函数、事件处理函数和简单模型制作函数。这些函数以“aux”为前缀。,.,8,二、用VC+编写OpenGL程序,2、帧缓存在OpenGL中,帧缓存由颜色缓存、深度缓存、模板缓存和累积缓存组成。颜色缓存:用于存储每个像素点的颜色,包括左前、(左后、右前、右后)和辅助颜色缓存。深度缓存:用于存储每个像素点的深度值。模板缓存:用于将作图限制在屏幕中的某些部分。累积缓存:在RGBA模式中
4、,用于将一系列图像累加成一幅图像。3、建立OpenGL控制台应用程序(.NET),.,9,(4)OpenGL实用程序工具包(OpenGLutilitytoolkit,GLUT):glutWindows专用函数API,.,10,4、OpenGL中的数据类型,.,11,5、函数命名约定OpenGL函数都遵循一个命名约定,即采用以下格式:例如函数glColor3f(),gl表示这个函数来自库gl.h,color表示该函数用于颜色设定,3f表示这个函数采用了三个浮点数参数。,.,12,6、OpenGL中的颜色在OpenGL中,一种颜色用红、绿、蓝成分的混合来表示,每种成分的值范围是0.0到1.0。,.
5、,OpenGL初步编程,在Windows下开发和创建一个OpenGL程序的基本步骤:第一步,选择一个编译环境,如VC+第二步,安装GLUT工具包第三步,建立一个OpenGL工程第四步,编译连接第五步,执行程序,.,OpenGL初步编程,OpenGL库和头文件:动态库:opengl32.dllglu32.dllglut32.dll放入windowssystem32目录下静态库:opengl32.libglu32.libglut32.lib放入VC安装目录的LIB目录下头文件:gl.hglu.hglut.h放入VC安装目录的IncludeGL文件夹下,.,程序结构,绝大多数OpenGL程序具有类似
6、的结构,包含下述函数main():定义回调函数打开一个或多个具有指定属性的窗口进入事件循环(最后一条可执行语句)init():设置状态变量视图属性回调显示函数输入和窗口函数,.,#include/glut.hincludesgl.handglu.hvoiddisplay().voidinit().intmain(intargc,char*argv).,.,voiddisplay()glClear(GL_COLOR_BUFFER_BIT);/CleartheframebufferglColor3f(0.0,1.0,0.0);/SetcurrentcolortogreenglBegin(GL_PO
7、LYGON);/DrawthetriangleglVertex2f(-0.7,-0.7);glVertex2f(0.7,-0.7);glVertex2f(0,0.7);glEnd();glFlush();/Forcetodisplaythenewdrawingsimmediately,.,voidinit()glClearColor(0.0,0.0,0.0,0.0);/Settheclearcolortoblack/SpecifytheboundariesoftheviewingwindowglMatrixMode(GL_PROJECTION);glLoadIdentity();gluOrth
8、o2D(-1.0,1.0,-1.0,1.0);/Theparaare:(left,right,bottom,top)glMatrixMode(GL_MODELVIEW);,.,intmain(intargc,char*argv)glutInit(/Indicatenormaltermination/(RequiredbyANSIC),.,Main.c,#includemain(intargc这自动包含了gl.hintargc,char*argv)glutInit(设置OpenGL状态进入事件循环,.,21,三、图形变换,1、投影voidglOrtho(GLdoubleleft,GLdouble
9、right,GLdoublebottom,GLdoubletop,GLdoublezNear,GLdoublezFar);函数功能:用一个正射投影矩阵右乘当前投影矩阵。输入参数:裁剪面left,right,bottom,top,zNear,zFar。输出参数:无返回值:无voidglOrtho2D(GLdoubleleft,GLdoubleright,GLdoublebottom,GLdoubletop);,.,22,三、图形变换,正射投影,.,23,三、图形变换,正射投影矩阵,.,24,三、图形变换,voidgluPerspective(GLdoublefovy,GLdoubleaspect
10、,GLdoublezNear,GLdoublezFar);函数功能:设置一个透视投影矩阵。输入参数:视域的角度fovy,视域宽与高的比率,视点到近和远裁剪面的距离zNear和zFar。输出参数:无返回值:无,.,25,三、图形变换,voidglFrustum(GLdoubleleft,GLdoubleright,GLdoublebottom,GLdoubletop,GLdoublezNear,GLdoublezFar);函数功能:用一个透视投影矩阵右乘当前投影矩阵。输入参数:裁剪面left,right,bottom,top,到近和远裁剪面的距离zNear和zFar。输出参数:无返回值:无,.,
11、26,三、图形变换,透视投影(glFrustum),near,far,left,right,bottom,top,viewpoint,.,27,三、图形变换,透视投影(glFrustum)矩阵,.,28,三、图形变换,2、视区变换voidglViewport(GLintx,GLinty,GLintwidth,GLintheight);函数功能:在窗口中定义一个视区。输入参数:视区左下角坐标(x,y),视区的宽width,视区的高height。输出参数:无返回值:无,.,29,三、图形变换,3、裁剪变换voidglClipPlane(GLenumplane,constGLdouble*equat
12、ion);函数功能:定义附加裁剪平面。输入参数:参数plane表示裁剪平面索引号GL_CLIP_PLANEi(i取0到到GL_MAX_CLIP_PLANES-1之间的整数),参数equation表示三维平面方程Ax+By+Cz+D=0的系数A,B,C和D构成的数组。输出参数:无返回值:无,.,30,三、图形变换,4、几何变换voidglRotatef,d(TYPEangle,TYPEx,TYPEy,TYPEz);函数功能:对局部坐标系进行旋转。输入参数:旋转角度angle,旋转轴方向矢量(x,y,z)。输出参数:无返回值:无,.,31,三、图形变换,voidglTranslatef,d(TYP
13、Ex,TYPEy,TYPEz);函数功能:对局部坐标系进行平移。输入参数:在坐标轴方向的平移量x,y和z。输出参数:无返回值:无voidglScalef,d(TYPEx,TYPEy,TYPEz);函数功能:对局部坐标系进行缩放。输入参数:在坐标轴方向的缩放量x,y和z。输出参数:无返回值:无,.,32,四、图元绘制,1、图元定义voidglBegin(GLenunmode);函数功能:定义图元,图元顶点序列开始。输入:图元类型输出:无返回值:无voidglEnd(void);函数功能:定义图元,图元顶点序列结束。输入:无输出:无返回值:无,.,33,四、图元绘制,2、画点voidglPoint
14、Size(GLfloatsize);函数功能:定义顶点大小。输入:顶点大小size,size必须大于0.0,缺省为1.0。输出:无返回值:无voidglVertex2,3,4sifdv(TYPEcoords);函数功能:定义顶点。输入:顶点坐标。输出:无返回值:无,.,34,四、图元绘制,3、画线voidglLineWidth(GLfloatwidth);函数功能:定义线宽。输入:线宽width,该值必须大于0.0,缺省为1.0。输出:无返回值:无voidglLineStipple(GLintfactor,GLushortpattern);函数功能:定义线模式。输入:factor表示重复次数(
15、1到255),pattern表示线模式。输出:无返回值:无,.,35,四、图元绘制,4、画多边形voidglPolygonMode(GLenumface,GLenummode);函数功能:定义多边形模式。输入:face表示绘制多边形的哪些面(GL_FRONT,GL_BACK,GL_FRONT_AND_BACK),mode表示面模式(GL_POINT,GL_LINE,GL_FILL)。输出:无返回值:无voidglPolygonFace(GLenummode);函数功能:定义多边形的正面。输入:mode表示多边形的哪个面为正面(GL_CCW,GL_CW)。输出:无返回值:无,.,36,四、图元绘
16、制,voidglCullFace(GLenummode);函数功能:剔除多边形的某些面。输入:mode表示被剔除的面(GL_FRONT,GL_BACK,GL_FRONT_AND_BACK。输出:无返回值:无voidglPolygonStipple(constGLubyte*mask);函数功能:定义填充模式。输入:mask指向一个32x32位图。输出:无返回值:无,.,37,四、图元绘制,5、实例图元绘制实例:见pointp.c,lines.c和polys.cglBegin(GLenunmode);mode可能的取值有:GL_POINTS;GL_LINES,GL_LINE_STRIP,GL_L
17、INE_LOOP;GL_TRIANGLES,GL_TRIANGLE_STRIP;GL_QUADS,GL_QUAD_STRIP;GL_POLYGON.在二维投影下,glRectf可以绘制矩形,.,38,五、颜色和光照,1、绘图颜色voidglClearColor(GLclampfred,GLclampfgreen,GLclampfblue,GLclampfalpha);函数功能:设定清颜色缓冲区颜色值。voidglClear(GLbitfieldmask);函数功能:清除指定的缓冲区。,.,39,五、颜色和光照,voidglColor3b,f,d,s,i,ub,ui,us(TYPEred,TYP
18、Egreen,TYPEblue);voidglColor4b,f,d,s,i,ub,ui,us(TYPEred,TYPEgreen,TYPEblue,TYPEalpha);voidglColor3b,f,d,s,i,ub,ui,usv(TYPE*v);voidglColor4b,f,d,s,i,ub,ui,usv(TYPE*v);函数功能:指定当前颜色。voidglIndexs,i,f,d(TYPEc);voidglIndexs,i,f,dv(TYPE*c);函数功能:设置当前颜色索引值。,.,40,五、颜色和光照,2、阴影模式voidglShadeMode(GLenummode);函数功能:
19、设置阴影模式。输入参数:阴影模式类型mode。mode取值为GL_FLAT或GL_SMOOTH。当阴影模式为GL_FLAT时,多边形用一个顶点的颜色进行绘制;当阴影模式为GL_SMOOTH时,多边形用各个顶点颜色的插值结果进行绘制。输出参数:无返回值:无,.,41,五、颜色和光照,3、材质voidglMateriali,f(GLenumface,GlenumpName,TYPEparam);voidglMateriali,fv(GLenumface,GlenumpName,TYPE*param);函数功能:定义当前多边形的材质。输入参数:参数face表示材质应用于多边形的哪个面(GL_FRON
20、T、GL_BACK或GL_FRONT_AND_BACK),参数pName表示光线类型(GL_AMBIENT、GL_DIFFUSE、GL_SPECULAR、GL_SHINESS或GL_EMISSION)。参数param表示反射率或镜面反射指数。GL_SHINESS表示镜面反射指数,此时param允许取值范围为0到128。输出参数:无返回值:无,.,42,五、颜色和光照,voidglColorMaterial(GLenumface,GLenummode);函数功能:定义当前多边形的材质。输入参数:参数face表示材质应用于多边形的哪个面(GL_FRONT、GL_BACK或GL_FRONT_AND_
21、BACK),参数pName表示光线类型(GL_AMBIENT、GL_DIFFUSE、GL_AMBIENT_AND_DIFFUSE、GL_SPECULAR、GL_SHINESS或GL_EMISSION)。参数face缺省为GL_FRONT_AND_BACK,参数pName缺省为GL_AMBIENT_AND_DIFFUSE。输出参数:无返回值:无voidglColor*();,.,43,五、颜色和光照,4、光照voidglLighti,f(GLenumlight,GlenumpName,TYPEparam);voidglLighti,fv(GLenumlight,GlenumpName,TYPE*
22、param);函数功能:创建光源。输入参数:参数light表示光源编号GL_LIGHTi(i取0到GL_MAX_LIGHTS-1之间的值),参数pName表示操作类型(GL_AMBIENT、GL_DIFFUSE、GL_SPECULAR、GL_POSITION、GL_SPOT_DIRECTION、GL_SPOT_EXPONEXT、GL_SPOT_CUTOFF或GL_CONST_ATTENUATION)。参数param表示光的强度、光源位置、衰减因子或其他。输出参数:无返回值:无,.,44,五、颜色和光照,5、光照模型voidglLightModeli,f(GLenumpName,TYPEpara
23、m);voidglLightModeli,fv(GLenumpName,TYPE*param);函数功能:建立光照模型。输入参数:参数pName表示光照模型的类型(GL_LIGHG_MODEL_AMBIENT、GL_LIGHT_MODEL_LOCAL_VIEWER或GL_MODEL_TWO_SIDE)。参数param表示要设置的参数值。参数pName取GL_LIGHG_MODEL_AMBIENT时,param表示全局环境光,参数pName取GL_LIGHG_MODEL_LOCAL_VIEWER时,param表示镜面反射光视角的计算方法。输出参数:无返回值:无,.,45,五、颜色和光照,6、实例
24、见matarial.c,colormat.c,.,46,五、颜色和光照,.,47,五、颜色和光照,voidglNormal3b,s,i,f,d(TYPEnx,TYPEny,TYPEnz);voidglNormal3b,s,i,f,dv(constTYPE*v);函数功能:设置当前法向量。输入参数:法向量分量或法向量矢量。法向量的方向影响镜面反射光和散射光的强度。输出参数:无返回值:无,.,48,六、混合、反走样和雾,1、混合voidglBlendFunc(GLenumsfactor,GLenumdfactor);函数功能:设置混合因子。输入参数:参数sfactor和dfactor分别表示混合源
25、因子和混合目标因子。输出参数:无返回值:无结果颜色值RsSr+RdDr,GsSg+GdDg,BsSb+BdDb,AsSa+AdDa其中Rs,Rd等表示源和目标颜色,Sr,Dr等表示混合因子。各分量的值被截取到0,1.,.,49,六、混合、反走样和雾,.,50,六、混合、反走样和雾,.,51,六、混合、反走样和雾,.,52,六、混合、反走样和雾,.,53,六、混合、反走样和雾,2、反走样voidglHint(GLenumtarget,GLenummode);函数功能:设置实现线索。输入参数:参数target表示行为(GL_POINT_SMOOTH_HINT、GL_LINE_SMOOTH_HINT
26、、GL_FOG_HINT、GL_POLYGON_SMOOTH_HINT),参数mode表示计算时的首选考虑(GL_FASTEST、GL_NICEST或GL_DONT_CARE)。输出参数:无返回值:无,.,54,六、混合、反走样和雾,3、雾化voidglFogi,f(GLenumpName,TYPEparam);voidglFogi,fv(GLenumpName,TYPE*param);函数功能:设置混合因子。输入参数:参数pName表示将要设置的参数类型(GL_FOG_MODE、GL_FOG_DENSITY、GL_FOG_START、GL_FOG_END、GL_FOG_COLOR、GL_FO
27、G_INDEX),参数param表示参数值。当pName为GL_FOG_MODE时,param取值为GL_LINEAR、GL_EXP或GL_EXP2。输出参数:无返回值:无,.,55,六、混合、反走样和雾,.,56,六、混合、反走样和雾,例:见alpha.c,aargb.c和fog.c,.,57,七、显示列表、位图和图像,1、显示列表显示列表为优化绘图性能而设计,尤其是为优化网络应用而设计。OpenGL的显示列表在程序运行过程中是不可修改的。显示列表的典型应用位图和图像:将位图或图像的定义添加到显示列表中,在显示列表编译(而不是在图形显示)时将数据转换成硬件支持的格式。光照、材质及光照模型:可
28、将材质定义添加到显示列表中,避免在材质选择时反复计算。纹理:将纹理定义添加到显示列表中,在显示列表编译(而不是在图形显示)时将纹理格式转换成硬件支持的格式。矩阵操作:将计算某些矩阵及其逆矩阵的OpenGL命令添加到显示列表。,.,58,七、显示列表、位图和图像,voidglNewList(GLuintlist,GLenummode);函数功能:新建一个显示列表。输入参数:参数list表示显示列表的名称,参数mode表示显示列表的状态(GL_COMPILE、GL_COMPILE_AND_EXECUTE)。输出参数:无返回值:无voidglEndList();函数功能:显示列表定义结束。voidg
29、lCallList(GLuintlist);函数功能:调用显示列表。,.,59,七、显示列表、位图和图像,GLuintglGenLists(GLsizeirange);函数功能:新建一组空显示列表。输入参数:参数range表示将要创建的显示列表的数目。输出参数:无返回值:成功时返回最前面一个显示列表的索引值,否则返回0。GLbooleanglIsList(GLuintlist);函数功能:测试显示列表是否存在。输入参数:参数list表示被测试显示列表的名称。输出参数:无返回值:被测试的显示列表存在时返回GL_TRUE,否则返回GL_FALSE。,.,60,七、显示列表、位图和图像,例:见lis
30、t.c,.,61,七、显示列表、位图和图像,2、位图OpenGL提供了位图操作函数。利用这些函数可以实现字符(串)输出。voidglRasterPos2d,f,i,s(TYPEx,TYPEy);voidglRasterPos3d,f,i,s(TYPEx,TYPEy,TYPEz);voidglRasterPos4d,f,i,s(TYPEx,TYPEy,TYPEz,TYPEw);voidglRasterPos2,3,4d,f,i,sv(TYPE*v);函数功能:指定像素操作的光栅位置。,.,62,七、显示列表、位图和图像,voidglBitmap(GLsizeiwidth,GLsizeiheigh
31、t,GLfloatx,GLfloaty,GLfloatdx,GLfloatdy,constGLubyte*bitmap);函数功能:绘制位图。输入参数:参数width,height表示位图按像素表示的宽和高,参数x,y表示位图的左下角(相对于当前光栅位置的)坐标,参数dx,dy表示当前位图画完之后,当前光栅位置在水平和垂直方向的偏移量,参数bitmap表示位图的地址。输出参数:无返回值:无。,.,63,七、显示列表、位图和图像,glPixelStorei,f(GLenumpName,TYPEparam);函数功能:设置像素存储模式。输入参数:参数pName表示存储模式名,参数param为特定存
32、储模式设定的值。输出参数:无返回值:无。,.,64,七、显示列表、位图和图像,.,65,七、显示列表、位图和图像,.,66,七、显示列表、位图和图像,例:见font.c,.,67,七、显示列表、位图和图像,3、图像在位图中,每个像素点用一位来存储它的信息;在图像中,一个像素点可以用多位来存储它的信息。图像可以用作纹理图。,.,68,七、显示列表、位图和图像,voidglReadPixels(GLintx,GLinty,GLsizeiwidth,GLsizeiheight,GLenumformat,GLenumtype,GLvoid*pixels);函数功能:从帧缓存中读取像素块。输入参数:参数
33、x,y表示像素块左下角的坐标,参数width,height表示像块的宽和高,参数format表示像素数据的格式(GL_RGB、GL_RGBA、GL_RED、GL_GREEN、GL_BLUE、GL_ALPHA、GL_LUMINANCE_ALPHA、GL_LUMINANCE、GL_DEPTH_COMPONENT、GL_STENCIL_INDEX、GL_COLOR_INDEX),参数type表示像素数据的数据类型(GL_UNSIGNED_BYTE、GL_BYTE、GL_BITMAP、GL_UNSIGNED_SHORT、GL_SHORT、GL_UNSIGNED_INT、GL_INT、GL_FLOAT)
34、,参数pixels指向像素数据。输出参数:无返回值:无。,.,69,七、显示列表、位图和图像,voidglDrawPixels(GLsizeiwidth,GLsizeiheight,GLenumformat,GLenumtype,GLvoid*pixels);函数功能:在当前光栅位置绘制像素块。输入参数:参数width,height表示像块的宽和高,参数format表示像素数据的格式(GL_RGB、GL_RGBA、GL_RED、GL_GREEN、GL_BLUE、GL_ALPHA、GL_LUMINANCE_ALPHA、GL_LUMINANCE、GL_DEPTH_COMPONENT、GL_STEN
35、CIL_INDEX、GL_COLOR_INDEX),参数type表示像素数据的数据类型(GL_UNSIGNED_BYTE、GL_BYTE、BL_BITMAP、GL_UNSIGNED_SHORT、GL_SHORT、GL_UNSIGNED_INT、GL_INT、GL_FLOAT),参数pixels指向像素数据。输出参数:无返回值:无。,.,70,七、显示列表、位图和图像,voidglCopyPixels(GLintx,GLinty,GLsizeiwidth,GLsizeiheight,GLenumtype);函数功能:从帧缓存拷贝像素块到当前光栅位置。输入参数:参数x,y表示像素块左下角的窗口坐标
36、,参数width,height表示像块的宽和高,参数type表示拷贝操作的类型(GL_COLOR、GL_STENCIL、GL_DEPTH)。输出参数:无返回值:无。,.,71,七、显示列表、位图和图像,voidglPixelZoom(GLfloatxfactor,GLfloatyfactor);函数功能:在x和y方向进行缩放。voidglPixelTransferi,f(GLenumpName,TYPEparam);函数功能:设置像素转换模式。输入参数:参数pName表示像素转换模式名,参数param表示pName要设定的值。输出参数:无返回值:无。,.,72,七、显示列表、位图和图像,.,7
37、3,七、显示列表、位图和图像,.,74,七、显示列表、位图和图像,.,75,七、显示列表、位图和图像,voidglPixelMapui,us,fv(GLenummap,GLintmapsize,constTYPE*values);函数功能:设置像素(转换)映射。输入参数:参数map表示像素映射表名称,参数mapsize表示映射表的大小,参数values表示mapsize个值对组成的数组。输出参数:无返回值:无,.,76,七、显示列表、位图和图像,.,77,七、显示列表、位图和图像,.,78,七、显示列表、位图和图像,例:见image.c,.,79,七、显示列表、位图和图像,.,80,七、显示列
38、表、位图和图像,.,81,七、显示列表、位图和图像,.,82,七、显示列表、位图和图像,.,83,七、显示列表、位图和图像,.,84,七、显示列表、位图和图像,.,85,八、纹理映射,1、生成和绑定纹理名称voidglGenTextures(GLsizein,GLuint*textures);函数功能:生成纹理名称。输入参数:参数n为纹理名称的数目,参数textures表示被生成的纹理名称构成的数组。输出参数:无返回值:无。,.,86,八、纹理映射,.,87,八、纹理映射,2、纹理定义物体表面细节分为两类:一类是表面的颜色纹理,如桌上的木纹;另一类是表面的几何纹理,如凹凸不平的树皮。简单规则的
39、颜色纹理可用表面细节多边形来模拟;当纹理变得精致复杂时,可采用纹理映射(texturemap)技术,即将一幅平面图映射到物体表面上,从而产生物体表面的细节。纹理是一块矩形区域,可以从图像中读取。可以将纹理映射到非矩形区域。,.,88,八、纹理映射,纹理映射的基本步骤:纹理定义控制颜色启用纹理映射指定纹理坐标和几何坐标,.,89,八、纹理映射,voidglTexImage2D(GLenumtarget,GLintlevel,GLintinternalFormat,GLsizeiwidth,GLsizeiheight,GLintborder,GLenumformat,GLenumtype,cons
40、tGLvoid*pixels);函数功能:定义一个二维纹理图像。输入参数:参数target为纹理类型,只能是GL_TEXTURE_2D,参数level表示多分率图像的级数,参数internalFormat表示纹理中颜色分量的数目,参数width和height表示图像的宽和高,参数border表示图像边界的大小,参数format表示像素数据的格式,参数type表示像素数据的类型,参数pixels是指向像素数据的指针。输出参数:无返回值:无。,.,90,八、纹理映射,voidglTexImage1D(GLenumtarget,GLintlevel,GLintinternalFormat,GLsiz
41、eiwidth,GLsizeiheight,GLintborder,GLenumformat,GLenumtype,constGLvoid*pixels);函数功能:定义一个二维纹理图像。输入参数:参数target为纹理类型,只能是GL_TEXTURE_1D,参数level表示多分率图像的级数,参数internalFormat表示纹理中颜色分量的数目(1,2,3或4),参数width和height表示图像的宽和高,参数border表示图像边界的大小,参数format表示像素数据的格式,参数type表示像素数据的类型,参数pixels是指向像素数据的指针。输出参数:无返回值:无。,.,91,八、纹理映射,.,92,八、纹理映射,MIP纹理映射程序员可以指定一系列分辩率递减的纹理图(mipmaps),OpenGL按照物体的尺寸自动确定应该使用哪个纹理图。使用MIP纹理映射技术时,纹理图的大小必须从n*n依次递减到1*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版新能源汽车货物运输合同
- 二零二五年度ktv安全保卫及应急预案合同范本
- 二零二五年10月航空货运标准货物运输委托合同
- 二零二五年度电子商务平台信用保证合同模板
- 二零二五年度办公室装修合同(含办公家具维修)升级版
- 2025版办公设备耗材集中采购合同范本
- 2025版KTV装修材料采购与施工监理合同范本
- 二零二五年报关销售合同范本适用于外贸企业报关
- 二零二五年度清洁行业市场调研与分析合同
- 二零二五年度厂房租赁合同范本(含企业信息化建设)
- 《滕王阁序》原文及翻译
- 龋病的概述讲解
- 蔬菜采购技巧培训课件
- 腹膜透析健康宣教说课课件
- 急性淋巴结炎的护理查房
- 2024届上海市风华中学高一化学第二学期期末检测模拟试题含解析
- 心律失常患者的护理查房课件
- 北京开放大学《现代管理专题》终结性考试复习题库(附答案)
- 中广核中山科研基地建设项目环境影响报告表
- 实验室上岗证样本
- 动脉采血操作并发症及处理
评论
0/150
提交评论