Skip to content

Archive

Tag: PBR
上一篇完成了specular的环境光渲染。当然,在实际效果中,diffuse也是不可缺少的。在这套基于物理的环境光渲染中,也必须要有diffuse才完整。 Irradiance map GPU Gems 2第10章详细描述了如何通过卷积cube map,得到irradiance map,并用于diffuse的环境光渲染。其基本原理就是,可以把cube map当作一个拥有无数方向光源的物体。场景中的任何一个点,都会受到cube map里所有方向光源的照射,累积起来得到最终结果。 从最基本的光照原理可以得出,对于一个点,只有normal方向的那个半球面会对这个点有影响。而且影响程度按照n dot l的大小来分布。各向同性的纯diffuse情况下,shading和视点方向无关。所以,这里可以用Spherical Harmonic(SH ...
上一篇把BRDF换成了更为常见的blinn-phong,推出了在上面进行importance sampling的公式,以及如何把结果存到一张查找表LUT上。更进一步的做法是把这张LUT拟合成一个曲面,这样就可以在shader中直接计算,省去一次纹理采样。Black Ops II也做了拟合,但它的方法是把F=0和F=1的曲线用F=0.04来表达,最终用一个很粗糙的插值来得到整个曲面。这里我打算用暴力的方法直接拟合整个曲面。 曲线拟合 LUT有两个通道,x表达scale,y表达bias。对于这两个通道,可以表达为f(n_dot_v, roughness)这样的一个函数。原始的LUT大小为128x128,实验中发现LUT本身很平滑,即使缩小到16x16,也不容易从最终渲染结果上看区别。所以这里我们选择16x16的大小作为拟 ...
上一篇重现了UE4的环境BRDF渲染框架。本篇会把GGX换成更常见的Blinn-Phong BRDF。在这个过程中,整个框架仍然保持不变,从importance sampling得到的ground truth开始,逐步推出用prefiltered环境光和预计算的LUT完成基于物理的环境光渲染。只是把BRDF换掉。 采样的细节 上一篇我只是简略地说了ground truth来自于采样1024次,但并没有给出如何计算采样点。这里会有具体的做法。 生成2D空间的随机点$\xi_{\theta}$和$\xi_{\phi}$ 根据BRDF的概率密度函数pdf,从$\xi_{\theta}$和$\xi_{\phi}$计算importance sampling需要的球面坐标系$s_{\theta}$和$s_{\phi}$ 把球面坐标系的$s_{\theta}$和$s_{\phi}$转换成直角坐标系的halfway -re ...
本系列源自于对Real Shading in Unreal Engine 4和Getting More Physical in Call of Duty: Black Ops II的理解。打算按照以前游戏中基于物理的渲染的思路,介绍一下如何在游戏这样的实时应用中使用基于物理的环境光。 回顾 在游戏中基于物理的渲染中列出了渲染方程的简化版,这是整个基于物理的体系的源头。 $L_0(\mathbf{v})=\int_{\Omega} \rho(\mathbf{l},\mathbf{v}) \otimes {L}_{i}(\mathbf{l}) (\mathbf{n} \cdot \mathbf{l}) d \omega_{i}$ 其中,根据microfacet理论,BRDF可以表达成: $\rho(\mathbf{l}, \mathbf{v})=\frac{F(\mathbf{l},\mathbf{h})G(\mathbf{l},\mathbf{v},\mathbf{h})D(\mathbf{h})}{4(\mathbf{n} \cdot \mathb ...
[zh]前一阵子连载的“游戏中基于物理的渲染”系列文章经过整理,现在有一个完整的版本放在wiki网站:http://www.klayge.org/wiki/index.php?title=%E5%9F%BA%E4%BA%8E%E7%89%A9%E7%90%86%E7%9A%84BRDF。这个版本把字里行间的公式替换成了文本,而不是图片的表达方式,载入速度和连贯性有所提高。[/zh] [en]The "Physically-based Rendering in Game" serial have a cleaned version now at KlayGE's wiki website: http://www.klayge.org/wiki/index.php?title=Physically-based_BRDF.[/en]
[zh] 上文推出了本系列最重要的方程,本片篇作为这个系列的完结篇,我会提一些未来的工作,并展示一些基于物理的渲染结果。 未来的工作 一个没有解决的问题是specular的power很高,而且非常光滑的表面。这样的材料对于渲染湿的表面这样的东西很重要。但是,精确光源的近似在这种情况下会挂掉,结果就是产生subpixel大小的极端强烈的高光,很不自然。实际上这种情况需要的是反射出光源的形状,这需要快到适合在游戏中使用的面光源近似。 另一个问题是有很多中geometry项,有没有能比$G_{implicit}$提供更好的视觉效果,同时开销很小的函数?候选之一是Kelemen et. al提出的,是对Cook-Torrance的geometry项的近似,但计算开销很小: [/zh] ...
[zh] 上一篇“游戏中基于物理的渲染(三)”中详细讲解了microfacet BRDF,本篇将解释目前大部分游戏中所用的BRDF和基于物理的BRDF之间的区别。 这里先回顾一下第二篇中推导出来的公式: [/zh] [en] In my last article "Physically-based Rendering in Game, Part 3", I explained microfacet BRDF. Here I will talk about the difference between BRDF in most current game and physically-based BRDF. Firstly we review the equation from my second article: [/en] $L_0(\mathbf{v})=\pi \rho(\mathbf{l_c}, \mathbf{v}) \otimes \mathbf{c}_{light} (\mathbf{n} \cdot \mathbf{l_c})$ [zh] 对比 游戏中常用的的反射方程是这样的 ...
[zh] 上一篇“游戏中基于物理的渲染(二)”中介绍了光照的推导,本篇将讲解基于物理的BRDF。 [/zh] [en] In last article "Physically-based Rendering in Game, Part 2", I introduce lighting equations. In this one, I will explain you physically-based BRDF. [/en] Microfacet BRDF [zh] 大多数基于物理的specular BRDF的基础是microfacet理论。这个理论是用来描述来自于一般表面(不是光学平滑的)的反射。Microfacet理论的基本假设是,表面是由很多微平面(microfacet)组成,这些微平面都太小了,没有办法一个一个地看到;并假设每个microfacet都是光学平滑的。 每个microfacet把一个入射方向的光反射到单独的一个出射方向, ...
[zh] 上一篇“游戏中基于物理的渲染(一)”中介绍了反射方程和Lambert,本篇将介绍基于物理的光源部分。 [/zh] [en] In my last article, "Physically-Based Rendering in Game, Part 1",  I introduce reflectance equation and Lambert. In this article, we mainly focus on physically-based lighting. [/en] [zh] 精确光源 [/zh] [en] Punctual Light Sources [/en] [zh] 游戏中经典的光源有point, directional和spot,这些局部光源都可以抽象成“精确光源”的概念,表示一个方向确定、大小为无穷小的光源。由于要计算的是到达表面点时的光照,所以不考虑从光源到表面之间的衰减。因此,精确光源都可以用颜色$\mathbf{c}_{light}$ ...
[zh] “游戏中基于物理的渲染”系列由4-5篇文章组成,介绍了如何在实时渲染中使用基于物理的方法。内容主要来自于SIGGRAPH 2010的course:Physically-Based Shading Models in Film and Game Production。本系列文章讲述的渲染技术用在了KlayGE中。 [/zh] [en] "Physically-Based Rendering in Game" serial, which contains 4-5 articals, introduces how to use physically based method in realtime rendering. The main idea comes from a course of SIGGRAPH 2010: Physically-Based Shading Models in Film and Game Production. The rendering technique in this serial is used in KlayGE 3.11. [/en] [zh] 引言 [/zh] [en] Int ...