OpenGL高级课题与纹理映射技术课件.pptVIP

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OpenGL高级课题与纹理映射技术课件.ppt

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 纹理融合函数 控制纹理是如何映射到物体上 glTexEnv{fi}[v]( GL_TEXTURE_ENV, prop, param ) GL_TEXTURE_ENV_MODE 模式: GL_MODULATE GL_BLEND GL_DECAL(GL_REPLACE) 设置混合颜色: GL_TEXTURE_ENV_COLOR Demo: MFCTex 多步纹理映射-multipass texture mapping 对同一个物体实施多步光照明计算和多个纹理映射,这就是三维绘制引擎中的多步纹理技术(multipass texture mapping) 两步绘制: 计算漫射分量并与纹理相乘 计算镜面分量并与第一步计算结果相加。 在每一步中,纹理值可以和其他光照明分量进行多种融合操作,包括替代、相加、混合等。alpha通道扮演了一个远远超过透明度的角色。 Quake3引擎中的多步纹理映射 第1到第4步:累积凹凸映射; 第5步:漫射光分量; 第6步:基纹理; 第7步:镜面光分量(可选); 第8步:自身发射光分量(可选); 第9步:体/雾/大气效果(可选); 第10步:屏幕闪烁(可选)。 单步多纹理映射技术 在单个绘制步骤中应用两个或多个纹理:单步多纹理映射技术(multi-texture mapping)。 定义由一系列纹理步骤组成的纹理融合嵌套流水线。通常,第一个纹理步骤融合两个纹理值(或者插值后的顶点值)的RGB和alpha分量。其结果送入第二个步骤与其他的纹理值(或者插值后的顶点值)进行处理,直到完成所有的纹理步骤,最后与保存在帧缓冲器中的值进行融合或替代操作。 可编程图形硬件可以处理8个纹理的同时融合 Half life中的辐射法向纹理映射 多步纹理映射:单步多纹理映射 步 数 速 度 显 卡 支 持 优 点 缺 点 多步纹理映射 多步 慢 全部 步骤无限制 完成功能有限 单步多纹理映射 单步 快 部分 可完成多种功能 单步内纹理映射数有限 * * * * * * * * * * * * * * * * * * * * * * * * * * 立即模式与显示列表 立即模式 列出显示 显示 列表 多项式 求值器 顶点操作 和 图元组装 光栅化 象素 操作 纹理 内存 CPU 象素 操作 帧 缓冲 显示列表 创建显示列表 GLuint id; void init( void ) { id = glGenLists( 1 ); glNewList( id, GL_COMPILE ); /* other OpenGL routines */ glEndList(); } 调用显示列表 void display( void ) { glCallList( id ); } 显示列表 不是所有的OpenGL程序都能存储在显示列表当中 显示列表创建后,状态仍然能够被改变 显示列表可以嵌套调用 显示列表一旦创建,不能进行编辑 令列表(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, 0, coords ) glColorPointer( 4, GL_FLOAT, 0, colors ) glEnableClientState( GL_VERTEX_ARRAY ) glEnableClientState( GL_COLOR_ARRAY ) glDrawArrays( GL_TRIANGLE_STRIP, 0, numVerts ); 所有有效数组被用于绘制 Color data Vertex data 保留模式的优点 比直接绘制模式效率更高 显示列表可以在多个OpenGL操作描述表之间共享,降低内存要求 顶点数组便于内存访问的方式组织数据 D3D和最近的OpenGL支持保留模式 高级图元 Bernstein 多项式求值器 GLU NURBS(Non-Uniform Rational B-Splines,非均匀有理B样条)的基础

文档评论(0)

琼瑶文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档