- 19
- 0
- 约8.44千字
- 约 85页
- 2022-04-05 发布于北京
- 举报
计算机图形学真实感图形绘制------纹理映射技术王长波 博士华东师范大学软件学院提出问题真实感图形绘制:计算机图形输出设备上绘制出能够以假乱真的景象。如何表现物体表面的丰富细节?更精细的几何;更精确的光照计算;计算量太大!可以采用纹理映射技术!纹理映射技术是真实感图形的重要绘制技术之一.“All it takes is for the rendered image to look right” —— Jim BlinnExample 1Example 2Example 3提 要 纹理映射的基本理论基本概念实现纹理映射的基本过程纹理几何映射关系处理纹理映射的实现 纹理映射的D3D实现纹理映射的OpenGL实现高级纹理映射技术介绍纹理优化处理技术多层纹理映射凸凹纹理映射环境映照技术What is texture mapping?“All it takes is for the rendered image to look right” —— Jim Blinn纹理贴图是一个用图像、函数或其它数据源来改变表面在每一处的外观的过程。 例如,我们不必用精确的几何去表现一块砖墙,而只需把一幅砖墙的图像贴到一个多边形上。 除非观察者非常靠近墙,否则我们并不会觉得缺少几何细节。 既节省了大量的造型工作量,也节省了内存空间,加快了绘制速度。基本原理纹理映射----几何和图片之间的对应关系 如何映射? 通过纹理坐标:纹理坐标:每个像素的纹理坐标就是简单的(u , v) 坐标,它指定了像素正准备被映射到的纹理的纹理单元。 对应纹理图像,左下角为 (0,0) 右上角为 (1,1);可以设定顶点在图像空间上的纹理坐标[tx ty], 该象素就画对应该u, v坐标的RGB颜色;一般一个四边形的纹理坐标: (0,0)(0,1)(1,0)(1,1)(1,1)v1t1v0yt2t0v2(0,0)xTexture SpaceTriangle (in any space)纹理空间与模型空间的对应基本实现步骤: Three stepsSpecify texture Read or generate image Assign to texture Enable texturing Assign texture coordinates to vertices Specify texture parametersWrapping, filtering, etc.1. 读入纹理位图一般为二维图片可以是一张图片(8位, 24位, 32位)也可以是实际生成的一张图片长宽尺寸为2的倍数2. 如何映射利用纹理坐标来定义从图片到几何的映射:要将该纹理映射到一个三角形上, 需设置三角形的三个顶点在图像空间上的纹理坐标[tx ty], 再对应计算每个几何像素在纹理图像上的对应RGB颜色;一般一个四边形的纹理坐标: (0,0)(0,1)(1,0)(1,1)3D Game Studio.3. 纹理插值我们只指定了三角形顶点处的纹理坐标,中间每个象素 的纹理坐标(ti, tj)可用线性插值;一般双线性插值;从而三角形上每个象素点都可对应地到纹理图片上去取颜色.思考? 图像与几何体的尺寸不一致怎么办? 几何对应的纹理空间超出[0,1)纹理空间怎么办? 几何物体本身有颜色怎么办?问题1: 纹理图像缩放(纹理采样方式)在硬件图形加速卡中,纹理图像的大小经常为2m×2n(或者2m×2m)的纹素,其中m和n为非负整数。但是几何尺寸不一定正好是2的倍数,另外几何尺寸可能与纹理图像尺寸差别很大;若投影得到的象素数目比原始纹理大,则需要把纹理图像放大(magnification);若投影得到的象素数目比原始纹理小,则需要把纹理图像缩小(minification);纹理放大锯齿状消失,质量好块状效果明显,质量差一幅32×64的纹理应用到一矩形,非常近看。左图采用最近领域滤波,即对每个象素选择最近的纹素。右图采用最近四个纹素的双线性插值如:双线性插值(Bi-lnear Interpolation)纹理缩小当纹理图像缩小时,多个纹素可能覆盖一个象素单元。为了得到每个象素正确的颜色,应该综合考虑影响该象素的那些纹素。棋盘格纹理多边形通过一行象素,显示多个纹素可影响单个象素1. 点采样(Nearest neighbor)2. Mipmapping3. 求和面积表(summed area table)最近邻域法:选择在象素中心可见的纹素。但会引起严重的走样现象,见上图。当这类表面相对视点移动时,走样现象更加明显,称为时间走样 (temporal aliasing) 。双线性插值:效果仅比最近邻域法稍好,也会引起较严重的走样现象。Mipmap方式:对纹理进行预处理,建立多个纹素覆盖单个象素的快
原创力文档

文档评论(0)