继上一篇:次世代基于物理渲染的反射模型,本篇是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里也多次提到),细节还是请看下面链接。
 
有Aliasing(左边)和没有(右边)
 
基于这个方法,就是Dan Baker等人在2010提出的Linear Efficient Antialiased Normal(简称LEAN),并在GDC2011上进一步提出Cheap Linear Efficient Antialiased Normal(简称CLEAN,LEAN的廉价版)的方法。  
 
然后在Siggraph2012上,Dan Baker又发表了Rock-Solid Shading,将这个方法扩展到gloss map(Roughness),Environmental Lighting(IBL)等上面。
 
左边原始        中间按他们的方法把将法线方差加入到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篇的进度会继续下去,任重道远。

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

  1. Unity Shader NPR 卡通渲染

    卡通渲染的主要原理包含两个方面: 1.轮廓线的描边效果 2.模型漫反射离散和纯色高光区域的模拟 描边: 描边的实现方法采用将模型的轮廓线顶点向法线(或顶点)的方向扩展一定的像素得到.也可通过边缘检测( ...

  2. WM_ERASEBKGND官方解释(翻译),以及Delphi里所有的使用情况(就是绘制窗口控件背景色,并阻止进一步传递消息)

    #define WM_ERASEBKGND                   0x0014 Parameters wParam A handle to the device context. //  ...

  3. UE4里的渲染线程

    记的上次看过UniRx里的源代码,说是参考微软的响应式编程框架,响应式编程里的一些理论不细说,只单说UniRx里的事件流里的事件压入与执行,与UE4的渲染线程设计有很多相同之处,如果有了解响应式编程相 ...

  4. 翻译 | 关键CSS和Webpack: 减少阻塞渲染的CSS的自动化解决方案

    原文地址: Critical CSS and Webpack: Automatically Minimize Render-Blocking CSS 原文作者: Anthony Gore 译者: 蜗牛 ...

  5. vue里的渲染以及computed的好处

    如果vue里的某个methods函数执行,导致页面重新渲染,那么所有页面渲染相关的methods函数会重新执行以及时的渲染页面 但是大量函数的重新没有必要的执行会导致性能的下降, 此时如果把没有必要再 ...

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

    在Shader中会使用各种不同图参与渲染,所以简单地总结下各种图的渲染原理.制作方法,最后面几种是程序生成图. 1. Albedo 2. Diffuse(Photographic) 从上图可以看出来, ...

  7. Unity 通用透明物体漫反射Shader(双面渲染&多光源&光照衰减&法线贴图&凹凸透明度控制)

    Shader "MyUnlit/AlphaBlendDiffuse" { Properties { _Color("Color Tint(贴图染色)",Colo ...

  8. shader forge卡通渲染!

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

  9. 《社交网络》里的评分公式——ELO排名系统

    <社交网络>里的Mark Zackburg被女朋友甩后,在舍友的启发下,充分发挥了技术宅男自娱自乐的恶搞天分,做出了Facemash网站,对学校女生的相貌进行排名打分,结果网站访问流量过大 ...

随机推荐

  1. date +%s 能打印出自1970-01-01 00:00:00到当前时间的秒数

    [root@bass Desktop]# date +%s 1466561580 [root@bass Desktop]# python Python 2.6.6 (r266:84292, Jul 2 ...

  2. 深入浅出TCP协议的三次握手过程

    TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 每一次TCP连接都需要三个阶段:连接建立.数据传送和连接释放.“三次握手”就发生在连接建立阶段. 1.三次握手( ...

  3. 深入剖析PHP输入流 php://input(与POST/GET的区别)

    PHP输入流php://input 转:http://www.nowamagic.net/academy/detail/12220520 在使用xml-rpc的时候,server端获取client数据 ...

  4. 如何在 Laravel 中使用 SMTP 发送邮件(适用于 163、QQ、Gmail 等)

    Laravel  和 Laravel  的邮件发送使用方式完全一致.Laravel  的邮件发送中文文档在:http: 邮箱为例,展示如何用 Laravel 内置的邮件发送类来发送邮件. 配置 修改邮 ...

  5. SQLServer2008 绑定默认值

    默认值或绑定:(newid())值:2E014A19-7AF5-471E-866C-DC5D6DFE59A5 (dateadd(day,(1),getdate()))值: 2014-07-31 20: ...

  6. 那些年不错的Android开源项目

    那些年不错的Android开源项目 转载自 eoe 那些年不错的Android开源项目-个性化控件篇 第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包括ListView.Acti ...

  7. Codeforces Round #359 (Div. 2) D. Kay and Snowflake 树DP

    D. Kay and Snowflake     After the piece of a devilish mirror hit the Kay's eye, he is no longer int ...

  8. <select>在chrome浏览器下背景透明问题

    在上篇文章<只用CSS美化选择框>运用了背景透明的技巧来美化选择框,但在chrome浏览器下遇到了跟ie.ff不一样的透明效果,下面重现一下: 在一个大的div(背景红色)内放置一个sel ...

  9. img 默认是行内元素,它旁边的空格是会保留的

    img 默认是行内元素,它旁边的空格是会保留的.因此图片宽度设置百分百后下面会有点找不出原因的间隙. 解决办法:img{display:block}

  10. Activity使用Serializable传递对象实例

    public class SerializableBook implements Serializable { private static final long serialVersionUID = ...