Skip to content

Archive

Tag: Rendering
[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项,有没有能比[math]G_{implicit}[/math]提供更好的视觉效果,同时开销很小的函数?候选之一是Kelemen et. al提出的,是对Cook-Torrance的geometry项的近似,但计算 ...
[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] [math]L_0(\mathbf{v})=\pi \rho(\mathbf{l_c}, \mathbf{v}) \otimes \mathbf{c}_{light} (\mathbf{n} \cdot \mathbf{l_c})[/math] [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,这些局部光源都可以抽象成“精确光源”的概念,表示一个方向确定、大小为无穷小的光源。由于要计算的是到达表面点时的光照,所以不考虑从光源到表面之间的衰减。因此,精确光源都可以用颜 ...
[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] 刚制作了一段KlayGE海洋渲染的视频,包含GPU FFT、HDR skybox、Lens flare等技术。 EDIT: 换成传到土豆的视频了,更清晰一些。 [/zh] [en] I just composed a video of KlayGE ocean rendering, including techniques such as GPU FFT, HDR skybox, lens flare, etc. EDIT: switch to the video on tudou.com. [/en]
多年前NVIDIA就发布了3D Vision技术,能提供多种立体渲染的效果。随着2009年的电影阿凡达所带来的世界性3D狂潮,你是否也想在自己的程序中加入立体渲染呢? 3D Vision的原理 根据http://developer.nvidia.com/object/3d_stereo_dev.html,3D Vision的原理如下: 在驱动内部,所有3D场景都渲染两次——一次用左眼,一次用右眼。驱动会自动“在线”修改典型的3D游戏vertex shader,所以在执行期可以产生正确的图像。 注意加粗的几个词所透露出来的信息。首先,你的每一个Draw call都被驱动变成了两个Draw call;其次,立体化的过程是自动的,无法自由控制;第三,它只能处理典型的vertex shader,而不是任意的vertex shader,比如sky box的vert ...