OpenGL高级课题与纹理映射技术教程课件.ppt
《OpenGL高级课题与纹理映射技术教程课件.ppt》由会员分享,可在线阅读,更多相关《OpenGL高级课题与纹理映射技术教程课件.ppt(62页珍藏版)》请在三一办公上搜索。
1、OpenGL高级课题与纹理映射技术,OpenGL 架构,顶点变换与光照计算,纹理映射,帧缓冲区操作,像素级光照计算,OpenGL其他高级课题,关于帧缓冲区(frame buffer),Alpha:第四维颜色分量,透明度的度量模拟透明物体玻璃、水等合成图像反走样混合状态下有效 glEnable(GL_BLEND);,Alpha测试,基于alpha值选择象素glAlphaFunc(func,value)glEnable(GL_ALPHA_TEST);在纹理映射时用alpha值作为蒙板,混合,结合输出与帧缓冲器中原有的象素值glBlendFunc(src,dst),裁剪包围盒,其他的裁剪测试glSc
2、issor(x,y,w,h)包围盒外的象素被裁剪掉便于更新视域的一小块区域影响glClear()操作,模板缓冲区(stencil buffer),用模板缓冲区的值控制绘制无法通过模板测试的象素将不被绘制例子:在模板缓冲区中创建一个蒙板,并仅绘制那些不在蒙板区域内的物体,控制模板缓冲区,glStencilFunc(func,ref,mask)用func比较缓冲区的值与 ref只对那些mask值为1的象素进行操作func 是一个标准比较函数glStencilOp(fail(模板失败),zfail(模板通过,z失败),zpass(两者都通过))基于模板测试和深度测试的结果相应调整模板缓冲区的值:GL
3、_KEEP,GL_INCR,创建模板,glInitDisplayMode(|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绘制glStencilFunc(GL_NOTEQUAL,0 x1,0 x1);glStencilOp(
4、GL_KEEP,GL_KEEP,GL_KEEP);,抖动,glEnable(GL_DITHER);抖动用于加强视觉效果用于模拟更多颜色打印设置目前,该功能很少被用到,象素上的逻辑操作,使用位逻辑操作结合多个象素值glLogicOp(mode);命令模式GL_XORGL_AND目前,该功能很少被用到,累积缓冲器,颜色缓冲器合成的问题有限颜色分辨率截断精度损失累积缓冲区扮演着“浮点”颜色缓冲区的角色合成到积累缓冲区将结果转换到帧缓冲区,累积缓冲区存取,glAccum(op,value)操作在积累缓冲区中的操作:GL_ADD,GL_MULT读缓冲区操作:GL_ACCUM,GL_LOAD写缓冲区操作:
5、GL_RETURNglAccum(GL_ACCUM,0.5)将写缓冲区的每一个值乘以0.5,然后加到累积缓冲区中,累积缓冲区的应用,颜色合成:透明全屏反走样:A-buffer算法景深:Depth Cue滤波:运动模糊:Motion blur,反走样(Anti-aliasing),消除锯齿状glEnable(mode)GL_POINT_SMOOTHGL_LINE_SMOOTHGL_POLYGON_SMOOTH象素的Alpha值由象素被覆盖大小决定可以是RGBA或颜色索引模式,全屏反走样:视点抖动,当我们略微移动视点时,图像随之平移每一幅图像有不同的走样情况用积累缓冲区对图像作平均,将消除这些走样
6、,景深,沿平行焦平面的方向移动视点,前平面,后平面,焦平面,眼睛位置1,眼睛位置2,景深,雾化,glFogif(property,value)景深效果处理指定线性雾化渐变区域大小GL_FOG_LINEAR环境效果模拟真实雾化效果GL_FOG_EXPGL_FOG_EXP2,雾化,高级成像,成像子集只有当GL_ARB_imaging有定义时才有效颜色矩阵卷积颜色表直方图MinMax高级混合,立即模式、显示列表和保留模式,立即模式(immediate mode)图元直接发送到绘制流水线并显示不需要显卡内存显示列表(display list)图元保存在显示列表中、显示列表保存在显卡中保留模式(reta
7、ined 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,0,coords)glColorPointer(4,GL_FLOAT,0,colors
9、)glEnableClientState(GL_VERTEX_ARRAY)glEnableClientState(GL_COLOR_ARRAY)glDrawArrays(GL_TRIANGLE_STRIP,0,numVerts);所有有效数组被用于绘制,保留模式的优点,比直接绘制模式效率更高显示列表可以在多个OpenGL操作描述表之间共享,降低内存要求顶点数组便于内存访问的方式组织数据D3D和最近的OpenGL支持保留模式,高级图元,Bernstein 多项式求值器GLU NURBS(Non-Uniform Rational B-Splines,非均匀有理B样条)的基础GLU二次曲面物体球面圆
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OpenGL 高级 课题 纹理 映射 技术 教程 课件
链接地址:https://www.31ppt.com/p-2167155.html