总结和提炼哪个在前_第1页
总结和提炼哪个在前_第2页
总结和提炼哪个在前_第3页
总结和提炼哪个在前_第4页
总结和提炼哪个在前_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

总结和提炼哪个在前第1篇总结和提炼哪个在前第1篇首先,把在顶点上的水深度作为一个输入参数,这样,在着色器碰到岸边这样的微妙区域时,便可以自动进行校正。

因为水的高度需要计算,所以顶点位置的z分量就没什么用了。虽然我们可以利用这点来压缩顶点的数据量,但是选择把水深度编码在z分量中,是一个更好的选择。

更确切地说,就是把水体底部的高度放在顶点的z分量中,作为常数带入水的高度表中,这样通过相减,即可得到水深度。而同样,这里假定了一个恒定高度的水位表(constant-heightwatertable)。

我们也使用水深度来控制水的不透明度、反射强度和几何波振幅。简单来说,即水浅的地方颜色浅,水深的地方颜色深。有了适当的水深度,也就可以去光的传播效果进行更完善的建模。

总结和提炼哪个在前第2篇使用变形目标(MorphTarget)是表现复杂网格变形的常用方法。NVIDIADemo团队使用此技术创建的Zoltar等Demo从每秒插值30个网格开始,然后基于累计误差方案(AccumulatedErrorScheme)去除关键帧。使得我们能够缩小文件并减少存储空间,最多可以将三分之二的原始关键帧,同时几乎不会出现可见的失真。在这种类型的网格插值中,任何给定时间中只有两个插值关键帧处于激活状态,而且他们是连续地执行的。另外,变形目标可以并行使用。

原文也中对变形目标(MorphTarget)的具体实现进行了论述。

而蒙皮(Skinning)是一种网格变形方法,对网格中的每个顶点指定一组带有权重的矩阵(权重最大可增加到)。权重指明矩阵应该如何约束顶点。

为一个网格蒙皮做准备,通常要为网格创建一个中间状态,叫做绑定姿势(BindPose),这个姿势保持胳膊和腿略微分开,并且尽可能避免弯曲。

总结和提炼哪个在前第3篇阴影渲染(ShadowRendering)

阴影贴图(ShadowMapping)

模板阴影(stencilshadows)/阴影体(Shadowvolume)

全方位阴影映射(OmnidirectionalShadowMapping)

TheEnd.

下次更新,《GPUGems1》全书核心内容提炼总结·下篇,再见。

Withbestwishes.

总结和提炼哪个在前第4篇首先,这篇文章也谈到了在实时计算机图形学中产生可见阴影的两个流行方法是:

模板阴影(StencilShadows,也被称ShadowVolume,阴影体)作在《Doom3》中有所应用,优点是得到大量的GPU支持、独立于光源的种类、产生的阴影质量很高。但缺点是严重依赖于CPU,只能产生清晰的影子,需要很高的填充率,而且不能与硬件(hardware-tessellated)的表面一起使用。

阴影贴图(ShadowMapping,也译作阴影映射)由LanceWilliams于1978年引入计算机图形学,文章发布当时多数好莱坞电影都在使用这个方法,包括计算机渲染和特效。为了计算阴影,阴影映射在场景几何体上投射特殊的动态创建的纹理。它可以渲染清晰和模糊的影子,以及由不同类型的光源产生的阴影,它还可以与硬件镶嵌的表面以及GPU动画的网格(例如蒙皮网格)一起使用。

该文章主要介绍了全方位阴影贴图(OmnidirectionalShadowMapping)方法,该方法有两个主要步骤:

在创建阶段,对所有把阴影投射到阴影贴图纹理上的物体,渲染它们到光源的距离的平方。而在投射结算,渲染所有接受阴影的物体,并比较所渲染的像素到光源的距离的平方。以下为全方位阴影映射算法的伪代码:

总结和提炼哪个在前第5篇为了让每篇文章的干货更足,内容更加详实,本文与后续文章的的写作风格与文章结构,将在系列文章开篇中的规划的写作风格的基础上,做一些微调。

具体是将每篇需要提炼的章节内容分为两大部分:

其中,主核心内容,将选取大家最感兴趣、最有提炼价值的渲染相关的内容,会用更加详细的篇幅进行提炼总结。每章主核心内容将包含五个部分:

而次核心内容,则会用更加精炼的篇幅进行总结。每部分将包含:

总结和提炼哪个在前第6篇DawnDemo中,毫无悬念地使用顶点着色器和像素着色器进行光照处理,顶点shader的主要功能是将坐标转换到投影空间,并执行那些不能在像素着色器中执行的数学运算。

采用单通道(one-pass)的光照解决方案,不需要另外其他的通道渲染,或alpha混合来创建皮肤表面。

文中提供了完整的顶点Shader和像素Shader的源代码,这里因为篇幅原因不再赘述,具体可以参考原文(PS:上文有贴出Web版的英文全书原文的链接)。

总结和提炼哪个在前第7篇因为我们的表面有定义明确的函数,所以可以直接计算任意给定点处的曲面方向,而不是依赖于有限差分技术。

副法线(Binormal)B和正切矢量T分别是x和y方向上的偏导数。对于2D水平面中的任意点(x,y),表面上的三维位置P为:

求副法线(Binormal)B方向,即对上式对x方向求偏导。而求正切矢量T方向,即对上式对y方向求偏导。

而法线N由副法线B和切线T的叉积给出:

总结和提炼哪个在前第8篇Example7-1.顶点着色器框架(FrameworkintheVertexShader)

Example7-2.对每草丛草体的动画的实现Shader代码(CodeforAnimationperClusterofGrassObjects)

Example7-3.每顶点动画实现Shader代码(CodeforAnimationperVertex)

Example7-4.每草体的动画实现Shader代码(CodeforAnimationperGrassObject)

总结和提炼哪个在前第9篇什么是衍射(Diffraction)?

小尺度的表面细节引起反射波彼此干扰,这个现象就是衍射。

首先,计算机绘图的大多数表面反射模型都忽略自然光的波动效果。当表面的细节比光的波长(约1um)大许多时,不存在问题。但对于小尺寸的细节,例如一个光盘的表面,波效应就不能忽略了。所以,对于小尺度的表面细节引起反射波彼此干扰的现象,即为衍射。

衍射使这些表面的反射光呈现五彩缤纷的图案,由光盘的精细反射可以看到这一现象。

衍射的实现,可以在Shader的顶点着色器上,也可以在片元着色器上,且实现可以在任何网格上进行,只需提供一个“切线向量”,和每顶点的法线及位置。而切线向量提供表面上窄条带的局部方向。对于一个光盘,其为轨道的方向,如下图。

对应给定衍射波长的颜色,可以使用简单近似的彩虹贴图。贴图从紫到红排列,而且提供彩虹的大部分颜色,用三个理想凹凸函数(峰值分别在蓝、绿和红的区域)简单混合而成。

而最终的衍射颜色是彩色的衍射图案和各项异性高光的简单相加的和。

总结和提炼哪个在前第10篇需要对下图所示的方向波或圆形波进行选择。

对于两种类型的波,视觉特性和复杂性都是由干涉条纹引起的。

方向波需要的顶点shader处理指令较少,但是究竟选择何种波需要取决于模拟的场景。对于大的水体,方向波往往更好,因为它们是风吹动产生的波较好的模型。对于较小的池塘的水,产生波的原因不是由于风,而是诸如例如瀑布,水中的鱼,圆形波则更好一些。对于方向波,波的方向是在风向的一定范围内任意绘制的;对于圆形波,波中心是在某些限定的范围内任意绘制的。

总结和提炼哪个在前第11篇阴影贴图(ShadowMap,又译作阴影映射)是渲染阴影的常见方法,也是渲染阴影领域的两大流派之一,但是它存在走样的问题。通常使用高分率的阴影贴图和增加阴影贴图的分辨率来反走样,也就是使用Stamminger和Drettakis2002年提出的“透视阴影贴图(perspectiveshadowmaps)”技术。但是,当光与表面接近于平行的时候,使用“透视阴影贴图”技术和增加阴影贴图分辨率就不起作用了,因为放大的倍数接近于无穷大。

高端渲染软件使用“临近的百分比过滤(Percentage-CloserFiltering,PCF)”技术解决走样问题。最初的PCF算法由Reeves等人1987年提出。其计算的是靠近光源表面的百分比,而不是在阴影中表面的百分比,具体是多次比较阴影贴图的每个像素,求其平均值。

且文中对传统的PCF算法做了改进,不再计算阴影贴图空间中被遮挡的区域,只是简单地在各处使用一个4x4个texel(纹素)的样本块。这个块应该大到能够有效地减少走样,但是不能达到要求大量样本和随机取样的程度。如下图。

可以看到3幅图中的显示效果区别很明显,图(c)中每像素取16个样本,效果最为出色,达到了反走样的预期。

总结和提炼哪个在前第12篇关于草地的动画,基本思想是以三角函数(尤其是正弦和余弦)为基础进行计算,且计算应该考虑到移动的位置和当前时间、风向和强度。

以基本思想为基础,实现起来有几种方法:

1)每草丛草体的动画(AnimationperClusterofGrassObjects)

2)每顶点的动画(AnimationperVertex)

3)每草体的动画(AnimationperGrassObject)

三种方法各有优缺点,而文中都给出了具体算法步骤和实现的Shader源码,这里因为篇幅原因,便不展开分析了,具体可以参阅原文。

最终可以实现的渲染效果。

总结和提炼哪个在前第13篇皮肤不像大多数在计算机渲染中建模的表面,因为它是由半透明的表皮、真皮和皮下组织等数层构成的。这可以用次表面散射来模拟。这种现象很普遍,当在太阳面前向上举起手,就能看到穿过皮肤的桔红色的光。

皮肤下的散射在所有的角度上显现皮肤形态,使它具有了柔软的、与众不同的特征。

在这之前有一些小组尝试使用多层纹理贴图来模仿皮肤的复杂性,但一般而言,这个方法比较难管理,美术同学很难通过预想,混合出最终符合预期的效果。

相反,文中使用单张彩色贴图,通过着色程序来增加色彩的变化。

另外,皮肤具有一些极细微的变化,会影响其反射特性。这对皮肤外观有微妙的影响,特别是当光线直接与相机位置相反时,皮肤的表现则是存在边缘(Edge)与轮廓光照(RimLighting),这时,需要皮肤轮廓边缘的光照,或给皮肤边缘加上光晕。

真正的皮肤具有一些细微的特征,比如汗毛和毛孔能捕捉光线。尽管这些细节用于显式地建模是太不明显了,但我们还是希望得到一个合适、整体更逼真的皮肤渲染外观。在特写时,可以增加凹凸贴图,提供一些额外的细节,特别是一些小的皱纹。但需要注意,我们想要的是柔软的皮肤外观,而不是光闪闪的油腻的塑料。另外,凹凸贴图通常只需静距离特写时才可见。

我们可以通过建模来近似这两个着色属性,建模可以是基于表面法线的简单公式,或者是基于光线或视线矢量的简单公式。

通过认识,我们可以将上述两种渲染特性(次表面散射和边缘光照),建模为基于表面法线和照明或观察向量的简单公式,从而近似出两种着色属性。尤其是沿着Dawn的轮廓边缘,对她身后的光线取样,按照观察向量的索引,让“穿过”Dawn的光与她的基础皮肤色调混合,从而创建次表面散射和边缘光照的着色效果。尤其是背景图中更加明亮的区域。如下图。

总结和提炼哪个在前第14篇首先,噪声函数的目的,是在三维空间中提供一种可以有效率地实现、可重复,伪随机的信号。其信号的能带有限(band-limited),大部分能量集中在一个空间频率附近,而视觉上是各向同性(isotropic)的,统计上不随旋转变化。

一般的想法是创建某种信号,类似于一个完全的随机信号(即白噪声),通过低通滤波后,滤除了所有的空间高频率而变得模糊。有如沙丘你缓慢上升的山包和下落的低谷。

最初的噪声在1983年实现,1985(Perlin1985)发表,思想是使用埃尔米特-样条(Hermitespline)插值法等方法实现,原文中对此方法的步骤进行了描述。

这篇文章从两个方面对最初的噪声方法的不足进行了改进:

插值的特性以及伪随机斜率场(fieldofpseudo-randomgradients)的特性。

而另外一个关于噪声的思路是,用体积噪声制造程序式纹理(Proceduraltexturingusingvolumetricnoise),这样可以不创建显式的纹理图像,来得到自然的材质。这种方法在当年的大片《指环王》中,已经有了广泛应用。

总结和提炼哪个在前第15篇当时idsoftware的《Doom3》就是采用阴影体(ShadowVolumes)技术来对阴影进行的渲染。具体思想是在模板(stencil)缓冲标记阴影的像素,把像素分为阴影或照明两种类型,接着调节负责光照的像素程序,使阴影像素的照明贡献度为0。

阴影体技术可以为点光源、聚光灯和方向光源创建清晰的、逐像素进度的阴影。单个物体可以被多个光源照亮,而且光有任意颜色和衰减度。阴影从三角形网格投射到深度缓冲区上。这意味着被遮挡的物体,可以是带有深度缓冲区的网格、公告板、粒子系统或预先渲染的场景。

较其他运算相比,阴影体可以更好地处理许多制作困难的阴影场景,如一个插在万圣节南瓜灯内部的光源。

阴影体的缺点是对那些没能正确表达自身形状的网格的阴影表达效果并不理想。如一些带透明区域的公告板,粒子系统,或带alpha粗糙度的纹理网格(如一片树叶)。这些投影体基于他们的真实网格产生阴影,阴影与物体的真实形状并不匹配。而阴影体的另一个缺点是对带裂缝的网格支持不太好。文中也表示,当时阴影体运行的理想场景是顶部俯视。

总之,这篇文章对McGuire等人2003年提出的方法进行了很好的描述、分析与实践。而在这篇文章发出之后的若干年,阴影体技术得到了各种进一步地优化与改进。

总结和提炼哪个在前第16篇首先文章尝试了两个方案:

完全程序化的火焰(fullyproceduralflames)和屏幕空间基于变形的二维火焰(screen-space2Ddistortion-basedflames.),经过试验都未达预期。

于是改采用视频纹理精灵(video-texturedsprites),最终达到预期,并实现出了逼真的火焰,且占用很少的GPU资源。

其中,烟的生成使用粒子系统创建一个烟雾生成器。而所需的光照可以采用不同的技术达到,如光线投射。

而火焰和烟的混合,比较常规地使用相加混合(additiveblending)。

关于使火焰增加多样性,文中使用了水平和垂直翻转(沿着u和v轴)。而使用任意旋转可以更加具表现力。

总结和提炼哪个在前第17篇Example3-1.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论