翻译 Tri-Ace:在Shader里近似渲染公式

继上一篇:次世代基于物理渲染的反射模型,本篇是Tri-Ace 在cedec2014上最近发布的,

主要内容如名称所示,解释了他们在实现基于物理渲染时,对shader的渲染公式所做的近似工作。

因为本身就是会议上的PPT,还是必须配合演讲看效果才好,所以如果有错误或不理解的地方,还希望留言或联系我

另外3A在官网上说会提供英文版,那家公司或个人希望可以分享下吧。

大致做下简介,如果有兴趣的可以下载看看

在本篇ppt中,3A先是花了一些篇幅介绍了渲染公式积分所引发的问题,随后是介绍本文中主要运用的正态(高斯)分布函数和它的再生性,以及使用对渲染公式做近似拟合的推导,如GGX的拟合。

接下来感觉比较重点的还是在几个应用案例上,其中之一就是关于如何正确的计算Roughness和Roughness Mipmap的生成上,在基于物理渲染上,更是强调要解决着色走样的问题,也就是需要 shading/shader anti-aliasing,其中一个问题就是运动状态时的Specular Aliasing问题的解决。

为了解决类似问题,Michael Toksvig 2004发表的Mipmapping Normal Maps 的方法,用正态分布方法处理Normal map,依靠mipmap和硬件的texture filtering,来解决远距离downsampling normal map会产生的aliasing问题,也就是简称Toksvig的方法(3A ppt里也多次提到),细节还是请看下面链接。

https://developer.nvidia.com/system/files/akamai/gamedev/docs/Mipmapping_Normal_Maps.pdf?download=1

有Aliasing(左边)和没有(右边)

基于这个方法,就是Dan Baker等人在2010提出的Linear Efficient Antialiased Normal(简称LEAN),并在GDC2011上进一步提出Cheap Linear Efficient Antialiased Normal(简称CLEAN,LEAN的廉价版)的方法。

http://www.csee.umbc.edu/~olano/papers/lean/lean.pdf

http://twvideo01.ubm-us.net/o1/vault/gdc2011/slides/Dan_Baker_SpectacularSpecular.ppt

然后在Siggraph2012上,Dan Baker又发表了Rock-Solid Shading,将这个方法扩展到gloss map(Roughness),Environmental Lighting(IBL)等上面。

http://advances.realtimerendering.com/s2012/Ubisoft/Rock-Solid%20Shading.pptx

左边原始        中间按他们的方法把将法线方差加入到Roughness map

因为一部分是要做预处理的,在我之前翻译的Tri-Ace的基于物理渲染的美术资源设计流程的PPT里,他们也介绍了他们运用把些技术加入到美术制作流程的方法。

当然还有很多其他的相关文档的,因为大多是基于这些就不过多阐述了。

那么接下来说这篇PPT里用的Roughness Map mipmap技术,也就是高斯分布方法运用到了Roughness Map上,并给出了他们的处理流程和公式,和Rock-Solid Shading的方法类似,也是把normal map和Roughness一起保存到Roughness map上。但方法和公式更物理一些。这种类似的方法也在Crytek的罗马之子里(Specular Aliasing Gbuffer filtering)。

关闭

打开

除此之外还有一些和光圈积分有关的东东,这个就没搞过了,最后还是重复下,如果文章和翻译有问题还是请留言或联系讨论。

下载链接: http://pan.baidu.com/s/1mgwY6ko 密码: vtp3

Tri-Ace PBR相关的几篇ppt文章的翻译工作也算告一段落,下个月也就是明天开始,会开始一个更庞大的翻译计划,如果没有什么意外,每周至少1篇的进度会继续下去,任重道远。

时间: 2024-07-30 12:17:21

翻译 Tri-Ace:在Shader里近似渲染公式的相关文章

vue里的渲染以及computed的好处

如果vue里的某个methods函数执行,导致页面重新渲染,那么所有的methods函数会重新执行以及时的渲染页面 但是大量函数的重新没有必要的执行会导致性能的下降, 此时如果把没有必要再次执行的方法定义到computed里,那么这些没有必要执行的方法就不会被渲染页面时候执行. 只有在computed函数所依赖的数据变化时候才会被执行 1 <div id="app"> 2 <div></div> 3 <p>{{num}}</p>

(转)简述47种Shader Map的渲染原理与制作方法

在Shader中会使用各种不同图参与渲染,所以简单地总结下各种图的渲染原理.制作方法,最后面几种是程序生成图. 1. Albedo 2. Diffuse(Photographic) 从上图可以看出来,Albedo是去掉Diffuse的光照和阴影生成的,而在pbr工作流下必须要用Albedo. 转换方法:How to Make an Albedo Texture from a Diffuse Texture 3. Alpha Map 注意:jpg没有alpha通道,png也没有alpha通道,显示

WM_ERASEBKGND官方解释(翻译),以及Delphi里所有的使用情况

#define WM_ERASEBKGND                   0x0014 Parameters wParam A handle to the device context. // 设备上下文的句柄 lParam This parameter is not used. Return value Type: LRESULT An application should return nonzero if it erases the background; otherwise, it

shader forge卡通渲染!

自从用了shader forge,妈妈我再也不写shader了...... 写了3种,分别用的顶点法线.法线贴图.顶点法线+法线贴图,然后还有自发光和受光两种模式,那就是6种了吧... 最后来一张shader forge的node graph:

Unity3D之高级渲染-Shader Forge增强版

笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解>电子工业出版社等. CSDN视频网址:http://edu.csdn.net/lecturer/144 大家了解了Shader Forge的制作原理,也会使用Shader Forge制作渲染材质了,在实际项目开发中,我们会遇到各种各样的问题,有时候我们需要使用Shader Forge渲

Android Shader渲染以及实现水波纹霓虹文字雷达等效果

"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> Android Shader渲染以及实现水波纹霓虹文字雷达等效果 - lzy的博客 - 博客频道 - CSDN.NET lzy的博客 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选 &nbsp [5月书讯]流畅的Python,终于等到你!    &a

使用替换shader渲染

相关函数: Camera.RenderWithShader(shader: Shader, replacementTag: string) 使用指定shader渲染,只影响一帧 Camera.SetReplacementShader(shader: Shader, replacementTag: string) 使用指定shader替换,直接替换掉物体的渲染shader Camera.ResetReplacementShader() 重置替换shader,也就是将物体的渲染shader还原为物体

Android中自定义视图View之---渲染器Shader对象

下面再来看下一个知识点:颜色渲染Shader对象 为什么我要把Shader对象单独拿出来说一下呢?因为这个对象在对于我们处理图形特效的时候是非常有用的 下面来看一下Android中Shader对象 在Android Api中关于颜色渲染的几个重要的类:Shader,BitmapShader,ComposeShader,LinearGradient,RadialGradient,SweepGradient它们之间的关系是: Shader是后面几个类的父类 该类作为基类主要是返回绘制时颜色的横向跨度

一个实用的实时毛发渲染及着色方法

一个实用的实时毛发渲染及着色方法 Thorsten scheuermann ATI Resarch,Inc. 翻译:潘曦 (译文里的(pancy:XXX)为译者注) 介绍: 我们提出了一个使用多边形模型的实时毛发渲染算法,并且将其应用于今年SIGGRAPH动画节上的一个实时动画<ruby:The Double Cross>上面.该毛发渲染算法是基于Kajiya-Kay 毛发渲染模型的算法,但是在其之上添加了一个实时的接近现实高光的镜面反射效果(pancy:原始算法可能没有考虑到头发的高光只计算