clip map
https://zhuanlan.zhihu.com/p/372696893
unreal area light的实现方案
chrome-extension://cdonnmffkdaoajfknoeeecmchibpmkmg/assets/pdf/web/viewer.html?file=https%3A%2F%2Fcdn2.unrealengine.com%2FResources%2Ffiles%2F2013SiggraphPresentationsNotes-26915738.pdf
games202 lesson 10
有一个颠覆我之前认知的事情,之前一直以为microfacet的渲染方程包含diffuse和specular两项,但是却被告知是错的,要用另外一种方式来弥补一次弹射的能量不守恒。那我们现在引擎里实现的不都是错的咩
linear space color 和 SRGB
https://developer.nvidia.com/gpugems/gpugems3/part-iv-image-effects/chapter-24-importance-being-linear
https://zhuanlan.zhihu.com/p/35894054
通常color texture都是sRGB,需要先转到线性空间,再进行光照计算,mipmap等等操作,最后再进过gamma矫正输出到显示设备上。
- gamma矫正的逻辑
传到显示设备的颜色值,比如(0.5, 0.5, 0.5), 表示一个像素值在 50% 位置时,其电压发出的亮度其实不到 100% 亮度的 1/4。为了使得显示在屏幕上的颜色是线性空间的,需要在把颜色做一次gamma矫正(显示器的反变化)才可以。
记住一条规则,如果仅仅是调整光照的亮度,但会引起渲染对象的色调变化,那么很大可能性就是因为非线性光照计算,而且需要 Gamma 校正。
对于高端使用者,简单的 Gamma 校正还不够,他们会用一份更成熟稳定的 3D 颜色校准表来做校正。 - 开发忠言
- ours
我们的引擎对于贴图颜色的反gamma都做在了各个pass的shader里,而没有统一在一个地方转换,导致不同的开发者可能遗漏,导致错误。现在再想兼容之前的逻辑,考虑到一些历史数据,可能会有点问题。
thoughts
- freedom is never free
- age is never a bad thing
- future is the most fascinating thing
- enjoy every day