随笔分类 - 高级渲染技术
摘要:分形函数 1.1 分形噪波函数 fbm、Multi-fractal、Hetero Terrain、Hybrid Multi-fractal和Ridged Multi-fractal是五种基于分形噪声的算法类型,每种通过不同的方式叠加噪声的“八度”(octaves)来生成不同特性的纹理。他们有
阅读全文
摘要:一、伪随机函数 随机函数用于生成随机值,通常希望给定同样的随机种子得到相同的随机值,称为伪随机函数。 1.1 1D噪声 输入1D参数生成1D的伪随机值 #define rot(x, k) (((x) << (k)) | ((x) >> (32 - (k)))) #define mix
阅读全文
摘要:高质量bloom效果 1、普通泛光(bloom) 参考LearnOpenGL上解释,泛光效果用于表达光源非常亮,以至于发出了光晕。旨在重现被称为Airy disc的光学效应,在现实世界里,当光线穿过人眼时会发生衍射,导致非常明亮的光源渗透进较暗的物体中。泛光效果通常使用屏幕后处理实现
阅读全文
摘要:快速近似抗锯齿技术 FXAA(Fast Approximate Anti-aliasing) 一、背景 FXAA抗锯齿技术也是基于形态学屏幕后处理抗锯齿方案的一种,它由NVIDIA的Timothy Lottes提出。相较于MLAA,FXAA只需要一个Pass就可以完成抗锯齿,牺牲了质量提
阅读全文
摘要:形态抗锯齿技术 SMAA(Enhanced subpixel morphological antialiasing) 一、背景 SMAA是后处理抗锯齿技术的一种,基于MLAA形态抗锯齿技术发展而来。MLAA抗锯齿流程分为三个pass:边缘检测、混合权重因子计算、混合,如下图所示。
阅读全文
摘要:实时软阴影PCSS 一、PCF(percentage-closer filtering) 1.1 原理 PCF通过多次采样阴影贴图,计算得到更加平均的深度采样值,这样生成的阴影边缘过渡更加柔和,缺点是耗费GPU资源。不同采样分布函数和采样次数决定了边缘光滑程度,下面是常用的泊松圆盘分布采样(
阅读全文
摘要:1 背景 2010年提出的PBR光照模型存在包含大量复杂而晦涩的物理参数,不利于美术人员理解、使用和快速产出等问题,2012年disney发表《Physically-based shading at Disney》,提出了Disney 原则的BRDF,在行业内制造了一场基于物理的渲染革命。之后
阅读全文
摘要:一、快速高斯模糊 1.1 背景 高斯模糊在wiki上定义为一种图像模糊滤波器,使用正态分布计算每个像素输出颜色。正态分布函数和图像如下所示: \[G(u,v)=\frac{1}{2\pi\delta^2}e^{(-u^2+v^2)/(2\delta^2)} \] 由图可以发现,当
阅读全文
摘要:一、三维空间多段线几何 1 应用背景 opengl常用glLineWidth命令设置线宽,此线宽在透视投影中不会随着相机远近变化而缩放。项目中高版本glLineWidth命令失效,需要考虑如何快速、方便、宽度不变的多段线几何。方案a:纯shader绘制曲线,绘制到一个二维平面上,然后将平面旋转
阅读全文
摘要:实用的空间几何方法 设点表示为 P (x,y,z),直线表示为过点P (x,y,z) 和方向direction (x,y,z),平面表示为过点P (x,y,z) 和法线方向norm (x,y,z)。 代数符号 * 表示向量点积, \(\cdot\) 表示向量叉积,||表示向量模长,norma
阅读全文
摘要:1.1 单光源直接光照 void main() { //创建小球几何 osg::ref_ptr<osg::ShapeDrawable> sphere =new osg::ShapeDrawable; sphere->setShape(new osg::Sphere(osg::Vec3(0,0,0),
阅读全文
摘要:基于物理的渲染(2):渲染方程 \[L_o(p,ω_o)=∫_Ωf_r(p,ω_i,ω_o)L_i(p,ω_i)n⋅ω_idω_i \] 其中\(L_o\)为P点的出射辐射率,\(f_r\)是P点入射方向到出射方向光的反射比,也叫双向反射分布函数(BRDF),\(L_i\)是P点入射光辐射率。渲染方
阅读全文
摘要:基于物理的渲染(1):基本概念 1 背景 基于物理的渲染即Physically Based Rendering (PBR) ,也被称为PBS,指一定程度上满足物理规律的渲染工作流,比Phong模型相比渲染的效果更加真实。它在由Disney在SIGGRAPH 2012 会议上提出的一种BRDF模型之后
阅读全文

浙公网安备 33010602011771号