计算机图形学三种渲染(绘制)技术,renderingtechnology 计算机图形学中对于⼀个真实三维物体的表⽰有很多⽅式,⽐如点云,mesh,体素,曲线等;这也影响了在绘制三维物体时对绘制基元的选择,下⾯是本⼈总结的⼀些绘制技术的分类,希望对⼤家有所帮助。
真实感图形算法研究
渲染出真实图像的三个要素:
1. 精确的⼏何模型
2. 精致的纹理贴图
3. 合理真实的光照
光照和阴影
局部光照模型早期的光照模型是基于经验的,它只能反映光源直接照射的情况,这种光照模型为局部光照模型;
局部光照模型需要考虑的因素:环境光,漫反射,⾼光与镜⾯反射,光的衰减,
产⽣颜⾊(RGB),多光源,硬阴影,软阴影,体积阴影
阴影分为动态阴影算法和静态阴影算法(区别在于光源是否运动)
阴影⽣成技术,⽬前普遍采⽤的⼀般有三种:Planar Shadow、Shadow Mapping和Shadow Volume,前者类似投影,计算最简单,缺点只能绘制抛射在平⾯上的阴影;Shadow mapping利⽤站在光源处所沿光源法线看去所⽣成的深度图来检测场景中的体象素是否处于阴影中,缺点是光源与物体位置相对固定、且在极端情况下计算精度差,不太适合精确到象素的动态光阴场合;Shadow Volume是⽬前最适合精确表现动态光阴场景的技术,适⽤性最⼴,其典型的适⽤范例便是,不⾜在于阴影体积引⼊了额外的顶点和⾯,加⼤了存储和处理强度,同时渲染出的阴影⽐较硬,如果要实现软阴影,仍需其他技术配合
全局光照模型⽐较精确,它通过模拟物体之间光照的相互作⽤,以求达到令⼈满意的光照效果。
全局光照模型⼊射光的构成:光源直接照射,其他物体的反射光,透射光。
纹理贴图
纹理贴图是指将2D纹理或数据赋值到3D物体的过程,其原理是改变光照⽅程中的参数值来实现改变物体外貌的⽬的。
单个纹理的⼀般纹理管线:
常⽤的投影函数有:球形投影,圆柱投影,平⾯投影,⾃然投影
纹理贴图的⽅法:
l alpha贴图:来实现图像的透明、半透明的效果
l 光照贴图
l 光泽贴图:⽤来模拟物体⾮均匀的表⾯光泽
l 环境贴图:
l 凹凸贴图:基本思想是通过改变表⾯法线,⽽不是使⽤纹理来改变光照⽅程中的颜⾊分量。
过程性纹理主要⽤于模拟⾃然界中常见的Marble,Stone,Wood,Cloud等纹理,⼤多数的过程纹理都是基于某类噪声函数。
3D纹理不再是⼀个⼆维平⾯图像,它是⼀个有体积的纹理,可以看作是各种不同的⽴⽅体材料,看成⼏⼗、⼏百层的2D纹理重叠在⼀起,每层都是简单的2D纹理。3D纹理中的每个点在纹理内部空间有
三维的相对坐标。
多通路纹理贴图:在计算机图形学理论中,需要对所有光照⽅程因⼦进⾏快速计算,同时⽣成⼀个颜⾊样本。实际上,可以在不同的通路中对光照因⼦进⾏计算,每个通路对前⼀个结果进⾏修改。
基于图像的绘制技术(Image-BaRendering,IBR)
适合实时应⽤场合,⽤图像表⽰⼀个物体的最⼤好处就是绘制两与所要绘制的像素数成正⽐,与本⾝模型⽆关。
乌髻岩
月光奏鸣曲吉他谱该技术的优缺点:
1. 基于实景图像,所构造的虚拟环境逼真度⾼;
2. 场景的处理时间与场景的复杂度⽆关,易于实现实时交互;
3. 缺乏统⼀的空间坐标体系;
4. 难以实现任意⽅式的空间漫游与交互。
具体技术:
洗水果公告板:很多特殊效果可以将图像绘制在朝向视点的多边形表⾯上,这种观察⽅向来确定多边形⽅向的技术叫做公告板技术,其中的多边形为公告板。
根据不同的平⾯法线朝向,公告板可分为⼏类:
Ø 朝向视平⾯的公告板:
Ø 朝向视点的公告板;
Ø 轴对称公告板。
精灵 : 是最简单的IBR单元,是⼀幅可以在屏幕上移动的图像;如果对精灵纹理加上⼀个深度值,则叫做深度精灵。
替代技术:其实也是⼀种公告板技术。
反⾛样技术 :图形边界的⾮连续状态的失真现象成为⾛样(锯齿),⽽反⾛样就是为了避免这种失真。
GPU瓶颈检测:
乙烯化学式Ø 光栅操作检测
管线的终端是光栅操作,负责深度和模版缓存的读写,⽐较和颜⾊缓存的读写,以及alpha混合和测试。光栅化中许多的负载都加重了帧缓冲区带宽的负担。在测试过程中,可以通过改变颜⾊缓冲的位深,或深度缓冲的位深,或者都改变来检测是否会影响到帧率。
轮机员
Ø ⽚元着⾊阶段
⽚元着⾊开销可以被理解为pixel的开销,它是⼀个分辨率函数,可以通过改变分辨率来检测⽚元着⾊是否造成了性能瓶颈
wuziqi体绘制技术(volume rendering)
可视化的对象⼀般是指在空间上离散的3D数据
3D空间上离散的数据之间的连接关系可以分为:
结构化数据:逻辑上组织成3D数组的空间离散数据,即这些空间离散数据的各个元素具有3D数组之间的逻辑关系,每个元素都可以有它⾃⼰所在的层号、⾏号和列号。
[1] 均匀结构化数据:在x,y,z三个⽅向上,⽹格点之间的距离均相等。
[2] 规则⽹格结构化数据:分布在长⽅体组成的3D⽹格上,即在x,y,z三个⽅向上,⽹格点之间的距离互不相等,但在同⼀个⽅向上相等。
[3] 矩阵⽹格结构化数据:分布在由长⽅体组成的3D⽹格点上,长⽅体的⼤⼩可以各不相同,⽆规则可循。
[4] 不规则⽹格结构化数据:逻辑上仍被组织成3D数组,但在空间位置上⽆规律可循。
⾮结构化数据:空间数据由⼀系列的单元(四⾯体、六⾯体等,曲⾯,曲线等)构成的,但不能组织成3D数
组。
混合数据。
邵永高速
可视化技术可分为:⾯绘制(Surface rendering)和体绘制(Volume Rendering),点绘制(point rendering)
水过滤吸尘器
a) ⾯绘制的算法有⽴⽅块法(Cuberille)、移动⽴⽅体法(Marching Cubes)和分解⽴⽅体法(Diving Cubes)。
基本思想:将体数据分为多张平⾏的⼆维切⽚数据并分别处理。
⾯绘制将感兴趣的部分以等值⾯的⽅式抽取后,可以利⽤真实感技术⽣成⾼质量图像,使研究⼈员可以⽅便地进⾏观察和分析。该⽅法每次只能显⽰⼀个值的等值⾯,且需要借助于⼏何图元表⽰,不能反映整体数据场中各种因素的相互关系。⾯绘制不能保留原有体数据的⼀些物理属性,舍弃了物体内部的⼤量有⽤信息。
b) 体绘制不需要进⾏⼏何图元的提取过程来恢复体数据中的物体表⾯,⽽是直接由3D体数据产⽣屏幕上的2D图像。该算法能产⽣3D 体数据的整体图像,包括每⼀个细节,并具有质量⾼、便于并⾏处理的优点。
体绘制将3D空间的体数据场直接转换为2D图像⽽不⽣成中间⼏何图元。体数据场中离散的采样点原本是不具有⾊彩属性的,它的颜⾊值是在物质分类的基础上⼈为赋予的,因此是伪彩⾊的。
体绘制要实现的功能:在重采样的基础上,计算全部采样点对屏幕像素的贡献,也就是每⼀个像素的光强值I(intensity)。在彩⾊图像中,R、G、B三个分量的I值需要分别计算,为了实现这⼀功能,需要给出体数据的光学模型,⽤它来描述3D数据是如何产⽣、反射、阻挡以及散射光线,从⽽计算出全部采样点对屏幕像素的贡献
c) 体绘制的典型算法:
1. 直接体绘制算法:光线投射体绘制算法,纹理映射体绘制算法,抛雪球算法,错切-变形体绘制算法。
2. 变换域体绘制:傅⽴叶体绘制算法、压缩域体绘制,⼩波域体绘制,
直接体绘制算法都是在空间域对体数据直接采样,变换域⾸先将体数据从空域变换到另外的域,例如压缩域、频域或⼩波域,然后直接在这些变换后的域中进⾏采样混合。
点绘制:
点作为绘制的基本元素,通过适当测采样,场景对象被表⽰成⼀组密集的表⾯采样点,与这些点⼀起存储的还有点的颜⾊、深度和表⾯法向量等信息。根据这些点的信息经过表⾯重构,⽣成连续表⾯⽽⾮离散点云构成的真实感图形。
⼯作流程:
模型---点采样---采样点表⽰、存储-----不可见点剔除----可见点延拓----光照、纹理、阴影----表⾯重构----图形
主要算法:
² 图像空间的点绘制算法:surfel(⾯元),表⾯⾜迹法(surface splatting)
² 物理空间的点绘制算法:
Qsplat使⽤⼀个树状层次包围球数据结构存储数据,树中每个结点包含:球的位置和半径、每点处的法向量、法锥⾯的宽度、颜⾊值。