ImageVerifierCode 换一换
格式:PPT , 页数:62 ,大小:3.19MB ,
文档编号:2491556      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-2491556.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(OpenGL高级课题与纹理映射技术教程课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

OpenGL高级课题与纹理映射技术教程课件.ppt

1、显示列表显示列表求值器求值器顶点操作顶点操作光栅化光栅化逐个象素操作逐个象素操作帧缓冲帧缓冲纹理纹理CPU后象素处理后象素处理顶点变换与光照计算纹理映射帧缓冲区操作像素级光照计算OpenGL其他高级课题混合深度测试抖动逻辑操作裁剪测试模板测试Alpha测试象素帧缓冲区透明度的度量 模拟透明物体 玻璃、水等 合成图像 反走样 混合状态下有效 glEnable( GL_BLEND );基于alpha值选择象素 glAlphaFunc( func, value ) glEnable( GL_ALPHA_TEST );在纹理映射时用alpha值作为蒙板结合输出与帧缓冲器中原有的象素值glBlendFu

2、nc( src, dst )混合方程pfrCdstCsrcC其他的裁剪测试 glScissor( x, y, w, h )包围盒外的象素被裁剪掉便于更新视域的一小块区域 影响glClear()操作用模板缓冲区的值控制绘制 无法通过模板测试的象素将不被绘制 例子:在模板缓冲区中创建一个蒙板,并仅绘制那些不在蒙板区域内的物体glStencilFunc( func, ref, mask ) 用func比较缓冲区的值与 ref 只对那些mask值为1的象素进行操作 func 是一个标准比较函数glStencilOp( fail(模板失败), zfail(模板通过,z失败), zpass(两者都通过)

3、) 基于模板测试和深度测试的结果相应调整模板缓冲区的值: GL_KEEP, GL_INCRglInitDisplayMode( |GLUT_STENCIL| );glEnable( GL_STENCIL_TEST );glClearStencil( 0 x0 );glStencilFunc( GL_ALWAYS, 0 x1, 0 x1 );glStencilOp( GL_REPLACE, GL_REPLACE, GL_REPLACE );绘制蒙板当stencil = 1绘制物体glStencilFunc( GL_EQUAL, 0 x1, 0 x1 )当stencil != 1绘制 glSten

4、cilFunc( GL_NOTEQUAL, 0 x1, 0 x1 ); glStencilOp( GL_KEEP, GL_KEEP, GL_KEEP ); glEnable( GL_DITHER );抖动用于加强视觉效果 用于模拟更多颜色打印设置目前,该功能很少被用到使用位逻辑操作结合多个象素值 glLogicOp( mode );命令模式 GL_XOR GL_AND目前,该功能很少被用到目前,该功能很少被用到颜色缓冲器合成的问题 有限颜色分辨率 截断 精度损失 累积缓冲区扮演着“浮点”颜色缓冲区的角色 合成到积累缓冲区 将结果转换到帧缓冲区glAccum( op, value ) 操作 在积

5、累缓冲区中的操作: GL_ADD, GL_MULT 读缓冲区操作: GL_ACCUM, GL_LOAD 写缓冲区操作: GL_RETURN glAccum(GL_ACCUM, 0.5)将写缓冲区的每一个值乘以0.5,然后加到累积缓冲区中颜色合成:透明全屏反走样:A-buffer算法景深:Depth Cue滤波:运动模糊: Motion blur消除锯齿状glEnable( mode ) GL_POINT_SMOOTH GL_LINE_SMOOTH GL_POLYGON_SMOOTH 象素的Alpha值由象素被覆盖大小决定 可以是RGBA或颜色索引模式当我们略微移动视点时,图像随之平移 每一幅图

6、像有不同的走样情况 用积累缓冲区对图像作平均,将消除这些走样沿平行焦平面的方向移动视点前平面后平面焦平面眼睛位置1眼睛位置2景深景深glFogif( property, value )景深效果处理 指定线性雾化渐变区域大小 GL_FOG_LINEAR环境效果 模拟真实雾化效果 GL_FOG_EXP GL_FOG_EXP2成像子集 只有当GL_ARB_imaging有定义时才有效 颜色矩阵 卷积 颜色表 直方图 MinMax 高级混合立即模式(immediate mode) 图元直接发送到绘制流水线并显示 不需要显卡内存显示列表(display list) 图元保存在显示列表中、显示列表保存在显

7、卡中保留模式(retained mode) 所有数据预先置入显存立即模式列出显示显示显示列表列表多项式多项式求值器求值器顶点操作顶点操作和和图元组装图元组装光栅化光栅化象素象素操作操作纹理纹理内存内存CPU象素象素操作操作帧帧缓冲缓冲创建显示列表GLuint id;void init( void ) id = glGenLists( 1 ); glNewList( id, GL_COMPILE ); /* other OpenGL routines */ glEndList();调用显示列表void display( void ) glCallList( id );不是所有的OpenGL程序都

8、能存储在显示列表当中显示列表创建后,状态仍然能够被改变显示列表可以嵌套调用显示列表一旦创建,不能进行编辑 令列表(A) 调用其他列表(B, C, 或D) 删除A并按照要求调用B, C或D考虑一个汽车模型 创建底盘显示列表 创建轮胎显示列表glNewList( CAR, GL_COMPILE );glCallList( CHASSIS );glTranslatef( );glCallList( WHEEL );glTranslatef( );glCallList( WHEEL );glEndList();将顶点、颜色数组一次性送至显存处理glVertexPointer( 3, GL_FLOAT,

9、 0, coords )glColorPointer( 4, GL_FLOAT, 0, colors )glEnableClientState( GL_VERTEX_ARRAY )glEnableClientState( GL_COLOR_ARRAY )glDrawArrays( GL_TRIANGLE_STRIP, 0, numVerts );所有有效数组被用于绘制ColordataVertexdata比直接绘制模式效率更高显示列表可以在多个OpenGL操作描述表之间共享,降低内存要求顶点数组便于内存访问的方式组织数据D3D和最近的OpenGL支持保留模式Bernstein 多项式求值器 G

10、LU NURBS(Non-Uniform Rational B-Splines,非均匀有理B样条)的基础GLU二次曲面物体 球面 圆柱(或圆锥) 圆盘(或圆)未绘制的光栅化后的顶点数据返回应用程序 确定哪些图元最终被绘制到屏幕上需要指定反馈缓冲区glFeedbackBuffer( size, type, buffer )选择绘制反馈模式 glRenderMode( GL_FEEDBACK );决定哪些图元在视域当中需要一个缓冲区放置返回结果选择绘制的选择模式 glRenderMode( GL_SELECT )用名字区别各个图元 “名字”用整数而非字符串表示名字建立在堆上 允许层次化图元名字选择

11、程序 glLoadName( name ) glPushName( name ) glInitNames()拾取是选择的特殊情况编程步骤 限制鼠标周围的一小块区域为当前绘制区域在投影矩阵上使用gluPickMatrix() 进入选择模式; 重绘屏幕 被视见体裁剪的每个图元引起一个选择命中 退出选择模式; 分析命中记录纹理映射的基本原理凹凸纹理映射(bump mapping)位移映射(displacement mapping)环境纹理映射(environment mapping)基于光照映射的快速绘制(light mapping)高级纹理映射技术总结将一个一维、二维、三维的图像映射到几何物体上的

12、过程纹理映射的用途 仿真自然界的材质 减少几何复杂度 图像warping 反射效果模拟 。stxyz图像:即纹理几何屏幕图像和几何在不同的管道中处理,最后在光栅处理器中融合。 复杂的纹理不影响几何的复杂性。几何管道顶点象素管道图像光栅处理器256 x 256的图像映射到 一个长方形,并进行透视投影。 二维纹理图像 纹理坐标 纹理映射到三维空间中平面 三步设置纹理读入或者生成图像将图像赋到某个纹理上打开纹理映射功能将纹理坐标赋到顶点上设置纹理参数 Wrapping(重复pattern的方式), filtering(纹理采样的滤波方式):类似于纹理图像序列的显示列表(可加快速度) 每个纹理对象对应

13、一个图像 可以由多个图形上下文共享生成纹理名字glGenTextures( n, *texIds );绑定纹理图像(id为纹理对象名字)glBindTexture( target, id );从CPU内存的一块图像定义一个纹理对象glTexImage2D( target, level, components, w, h, border, format, type, *texels ); 图像的尺寸是 2的幂次纹理颜色由象素处理管道处理如果图像的维数不是2的幂次 gluScaleImage( format, w_in, h_in, type_in, *data_in, w_out, h_out,

14、 type_out, *data_out ); *_in 源图像源图像 *_out 目标图像目标图像 Format:图像格式(图像格式(GL_RGB) Type:图像数据格式图像数据格式在缩放过程中进行插值和滤波将帧缓冲器的内容设定为纹理图像的来源设置某个纹理的一部分拷贝部分纹理 glCopyTexSubImage2D(.)基于参数化的纹理坐标glTexCoord*() 指定每个顶点处的纹理st1, 10, 10, 01, 0(s, t) = (0.2, 0.8)(0.4, 0.2)(0.8, 0.4)ABCabc纹理空间物体空间纹理映射区域通常是平面或曲面,计算任意空间曲面与纹理域的对应关系

15、本质上是一个参数化的过程 避免出现扭曲、变形的效果 最好是保角映射或保面积映射平面方程数学曲面物体表面属性 过程式纹理函数生成自动生成纹理坐标 glTexGenifdv()指定一个平面 基于到平面的距离生成纹理坐标生成模式 GL_OBJECT_LINEAR GL_EYE_LINEAR GL_SPHERE_MAP0DCzByAx纹理滤波模式 缩小或放大时的滤波方式 mipmap 缩小滤波纹理取址方式 Clamping(边界颜色) repeating(重复)纹理融合函数 如何混合纹理的颜色与物体表面计算的颜色: 融合,modulate 或者替换纹理多边形放大时缩小多边形纹理例如:Mipmap 允许

16、对一个纹理进行预处理,生成小尺寸纹理对于小的物体,能减少插值错误,加快绘制速度Mipmap由OpenGL自动生成可以在定义纹理的时候声明mipmap层次GLU mipmap 生成函数OpenGL 1.2 引入了高级的 LOD(层次细节) 控制纹理插值模式函数使用例子:glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP )glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT )(上左)重复;(上右)镜像;(下左)截断;(下右)重复边界颜色 控制纹理是如何映射到物

17、体上 glTexEnvfiv( GL_TEXTURE_ENV, prop, param ) GL_TEXTURE_ENV_MODE 模式: GL_MODULATE GL_BLEND GL_DECAL(GL_REPLACE)设置混合颜色: GL_TEXTURE_ENV_COLORDemo: MFCTex对同一个物体实施多步光照明计算和多个纹理映射,这就是三维绘制引擎中的多步纹理技术(multipass texture mapping)两步绘制: 计算漫射分量并与纹理相乘 计算镜面分量并与第一步计算结果相加。 在每一步中,纹理值可以和其他光照明分量进行多种融合操作,包括替代、相加、混合等。alph

18、a通道扮演了一个远远超过透明度的角色。第1到第4步:累积凹凸映射;第5步:漫射光分量;第6步:基纹理;第7步:镜面光分量(可选);第8步:自身发射光分量(可选);第9步:体/雾/大气效果(可选);第10步:屏幕闪烁(可选)。在单个绘制步骤中应用两个或多个纹理:单步多纹理映射技术(multi-texture mapping)。定义由一系列纹理步骤组成的纹理融合嵌套流水线。通常,第一个纹理步骤融合两个纹理值(或者插值后的顶点值)的RGB和alpha分量。其结果送入第二个步骤与其他的纹理值(或者插值后的顶点值)进行处理,直到完成所有的纹理步骤,最后与保存在帧缓冲器中的值进行融合或替代操作。可编程图形硬件可以处理8个纹理的同时融合 步 数速 度显 卡 支 持优 点缺 点多步纹理映射多步慢全部步骤无限制完成功能有限单步多纹理映射 单步快部分可完成多种功能单步内纹理映射数有限

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|