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

时间:2023-02-15 15:24:37

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

主要内容如名称所示,解释了他们在实现基于物理渲染时,对shader的渲染公式所做的近似工作。
 
翻译 Tri-Ace:在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里也多次提到),细节还是请看下面链接。
 
翻译 Tri-Ace:在Shader里近似渲染公式
有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)等上面。
 
翻译 Tri-Ace:在Shader里近似渲染公式
左边原始        中间按他们的方法把将法线方差加入到Roughness map
 
 因为一部分是要做预处理的,在我之前翻译的Tri-Ace的基于物理渲染的美术资源设计流程的PPT里,他们也介绍了他们运用把些技术加入到美术制作流程的方法。
 
当然还有很多其他的相关文档的,因为大多是基于这些就不过多阐述了。
 
 那么接下来说这篇PPT里用的Roughness Map mipmap技术,也就是高斯分布方法运用到了Roughness Map上,并给出了他们的处理流程和公式,和Rock-Solid Shading的方法类似,也是把normal map和Roughness一起保存到Roughness map上。但方法和公式更物理一些。这种类似的方法也在Crytek的罗马之子里(Specular Aliasing Gbuffer filtering)。
 
翻译 Tri-Ace:在Shader里近似渲染公式
关闭
 
翻译 Tri-Ace:在Shader里近似渲染公式
打开
 
除此之外还有一些和光圈积分有关的东东,这个就没搞过了,最后还是重复下,如果文章和翻译有问题还是请留言或联系讨论。
下载链接: 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. JVM 垃圾回收器工作原理及使用实例介绍

    IBM介绍文档:https://www.ibm.com/developerworks/cn/java/j-lo-JVMGarbageCollection/ Java 的新生代串行垃圾回收器中使用了复制 ...

  2. 报错:LINQ to Entities 不识别方法

    大致是: var products = db.Products.Select(new ProductVm{Name=SomeMethod() }); 针对IQueryable集合的查询操作会被LINQ ...

  3. URAL 1775 B - Space Bowling 计算几何

    B - Space BowlingTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/ ...

  4. Google搜索解析

    Google搜索解析 是一款相似于Google趋势的SEO 在 线keyword工具,其官方提出的口号是“看看全世界的人们都在搜索些什么”.利用Google搜索解析,能够比較特定区域.类别.时间范围以 ...

  5. &lpar;step5&period;1&period;2&rpar;hdu 2473&lpar;Junk-Mail Filter——并查集&rpar;

    题目大意:输入两个整数n,m(n表示点的个数,m表示操作数).在接下来的m行中,对点的操作有两种 1)M a b . 表示将a.b并到一个集合中 2)S a .表示将a从原来的集合中去除,而成为一个单 ...

  6. Spring4 事务管理

    Spring4 事务管理 本章是Spring4 教程中的最后一章,也是非常重要的一章.如果说学习IOC是知识的入门,那学习事务管理就是知识的提升.本章篇幅可能有一丢丢长,也有一丢丢难,需要读者细细品味 ...

  7. ASP&period;NET Core 新核心对象WebHost(一)

    以本系列文章向Fish 前辈的那篇我心中的ASP.NET 核心对象致敬.(虽然不知道前辈现在在干什么).一晃就6年过去了,那首 郝云 的<回到那一天>怎么唱来着? 时光一晃,你就三十了. ...

  8. 输入时间参数获取rds备份集信息

    1.脚本 [root@localhost tmp]# more geturl_test.py #!/usr/bin/env python #coding=utf- import os, json, u ...

  9. LaF&colon; Fast Access to Large ASCII Files

    貌似可以随机读取dataframe格式的文本文件.

  10. 转:ORACLE 中ROWNUM用法总结&excl;

    oracle 分页查询语句:select * from (select u.*,rownum r from (select * from userifno) u where rownum<大值) ...