学习和使用VEX有一年多的时间了,近日翻到了2015年的一部VEX教程《VEX in Houdini》。曾经因为刚入门Houdini,还不适合学习这部教比较进阶甚至高级的教程。而现在又翻到它简直如获珍宝。它将很多paper中的算法在Houdini中用VEX来实现。这是读paper、学习算法以及落地实现的极佳机会。所以决定记录一下完整的学习笔记和心得。
编写URP着色器
本篇文章转自CYAN编写的《Writing Shader Code for the Universal RP》,文中以一个完整的PBR Shader为案例讲解了URP管线的一些机制以及编写Shader时的注意事项。可以帮助我们少踩一些坑。
Unity Built-in转URP速查表
本篇文章转自Teofilo Dutra编写的《From Built-in to URP》,其中有很多在写URP管线Shader时需要用到的函数,作为备忘速查表非常实用,所以记录于此。本文经过精简和翻译,不一定适用于大家,可以点击上方链接跳转至作者原文。本文是基于7.3版本的URP编写的,有些暂时还不支持的内容可能在后续版本更新迭代。
微积分公式速查表
本篇文章汇总了由John Vince编写的《Calculus for Computer Graphics》中推导和总结的绝大部分微积分公式。这本书是基于图形学常用的微积分进行讲解的,所以公式也基本是图形学中常见常用的公式。
UE4中用球面高斯函数实现移动端SSS效果
目前一些移动端的皮肤材质采用的是2011年Eric分享的Pre-integrated Skin Shading的精简版,主要是利用$N\cdot L$与模型表面的曲率去采样预计算的LUT图,并将结果作为新的NoL来计算漫反射的颜色。但现在很多3D手游的带宽比较吃紧,而ALU占用率不是很高,而且不少手机GPU芯片还在不断增加ALU,那么将采样LUT图的方式转换为纯算术的方式岂不美哉。
球面高斯函数05——用球面高斯函数近似辐射率和辐射度
这是本系列最后一篇笔记。前两篇讨论了如何在使用球面高斯光源时近似出漫反射和镜面反射。但依然没有说明为什么要使用球面高斯光源照亮场景。回顾本系列第一篇的内容,讨论的是如何将预计算的辐射率和辐射度存储在光照贴图或探针网格中。这也是最后一篇要讨论的主题。
球面高斯函数04——球面高斯光源的镜面高光
上篇文章中,讨论了使用漫反射BRDF时如何计算球面高斯光源的分布。下面可以讨论如何计算与视角有关的更复杂的BRDF,这样就可以得到高光的分布。本文会介绍如何逼近基于微表面的镜面反射BRDF对球面高斯光源的反应情况,并且会介绍各向异性球面高斯的概念。
球面高斯函数03——球面高斯光源的漫射照明
本篇是球面高斯函数与预计算光照系列的第三部分,上篇文章提到了球面高斯函数的一些属性,本文会讨论如何在渲染场景中使用这些属性并发挥它们的优势。
球面高斯函数02——球面高斯函数101
本篇是球面高斯函数与预计算光照系列的第二部分,会介绍球面高斯的基础知识——球形径向基函数(spherical radial basis function, SRBF)。本文会介绍一些核心概念,后续的几篇文章会使用这些概念来计算光照贴图或探针中存储的入射光辐射率近似值。
球面高斯函数01——光照贴图简史
球面高斯函数(Spherical Gaussian, SG)是比较冷门的话题,但Ready At Dawn工作室却对其情有独钟,并使用在自研的游戏引擎中。其效果也经《教团:1886》得到验证。本系列是由Ready At Dawn工作室的首席图形和引擎工程师Matt Pettineo编写在自己的博客。我将该系列的学习笔记记录于此,与大家分享。