GI
文章平均质量分 93
沉默的舞台剧
Keep running
展开
-
Global Illumination_LPV Deep Optimizations
LPV算法深度优化技术分析原创 2024-08-31 11:48:41 · 910 阅读 · 0 评论 -
Global Illumination_RSM/VPL Deep Optimizations
RSM算法优化技术分析原创 2024-08-24 11:55:38 · 588 阅读 · 0 评论 -
Global Illumination_SDF Generate & Visualize & Shadow
SDF生成与使用源码Demo原创 2023-01-08 18:08:14 · 1412 阅读 · 3 评论 -
Global Illumination_Real-Time Volumetric Cloud(实时体积云)
实时体积云渲染可以营造出很棒的天空效果,今天我们就来看一下如何高效的生成动态体积云,至于原理,可以直接看一下地平线中体积云的技术介绍THE REAL-TIME VOLUMETRIC CLOUDSCAPES OF HORIZON ZERO DAWN。首先说一下,云体实现一般有三种方式:Mesh云、公告板云、体积云三种。本文主要从技术角度来看一下体积云技术下天空整体与实时云的生成,至于理论知识,大家可以看看链接即可。也可以看一下之前的一篇简易体积云特效:Vulkan_基于分形布朗运动的体积云实现。我们首先来原创 2022-05-29 15:29:20 · 1510 阅读 · 3 评论 -
Global Illumination_Lens Flare(镜头光晕)
处理完定向体积光照明后,接下来继续来简单看一下光晕的生成:也是一个很简单的后处理pass,一句话来说就是在屏幕空间生成六张透明贴图叠加即可。一、Lens Flare(镜头光晕)Lens Flare 又称为”镜头光晕“。在游戏中镜头指的是经过视椎体做可视裁剪过后将可视物体渲染到RenderTarget中所呈现出来的画面。RenderTarget可以简单理解成当前游戏窗口的画面。光晕则指的是当镜头中存在光源时,光源会在镜头中会产生一种带有颜色的连续”光圈“特效。从以上描述可以看出来本效果的基本思路就是:原创 2022-03-19 13:15:00 · 1656 阅读 · 0 评论 -
Global Illumination_Directional Volumetric Light (定向体积光)
定向体积光最近PS5重玩大表哥2,发现他们的体积光有点棒,遂实现一下:附YYDS大表哥2里的体积光:一、原理1.1 体积光散射算法(GPU Gems 3)此算法属于上古大神的处理方式,全部在屏幕空间处理,具体参照本书13章节体积光散射算法,具体不再赘述,仅放出效果:1.2 Ray Matching处理本方法主要是 NVIDIA 2016年开发者大会 发布的Fast, Flexible, Physically-Based Volumetric Light Scattering算法。总结来原创 2022-03-13 13:42:08 · 1029 阅读 · 0 评论 -
Global Illumination_Linearly Transformed Cosines (LTC)
一、面光源为什么多边形光源着色很复杂?因为使用多边形灯光进行着色时需要在灯光覆盖的多边形域上集成 BRDF分布,如下图所示:尽管多边形光源理论上是简单的光照模型,但它们在实时渲染中却不容易实现,主要有两个原因:1:在球面多边形上积分参数球面分布通常很困难,即使是最简单的分布也是如此。2:基于物理的材料模型不是简单的分布;它们具有复杂的形状,如具有各向异性的材质及其拉伸和偏斜等特性,BRDF都需要需要对这些形状进行表示,以使材料更加真实。我们也可以来看一下面光源的计算方程:其中,S 为面原创 2022-01-22 10:50:57 · 590 阅读 · 0 评论 -
Temporal Anti-Aliasing(时域抗锯齿TAA)
首先说一下走样:一般分为时域走样(如旋转车轮)和空域走样(锯齿),但在 TAA 技术是采用时域相关叠加混合技术来解决空域走样的问题。简单看一下空域抗锯齿 (Spatial Anti-Aliasing, SAA)相关技术,最普及的莫过于 MSAA,被各大渲染引擎采用,但是 MSAA 并不适用于延迟渲染 (Deferred Rendering),随之出现了很多基于形态学的后处理抗锯齿技术,如 MLAA,FXAA,SMAA 等(具体看参见图形_反走样技术总结相关介绍),虽然他们表现良好且支持延迟渲染,但是都会面原创 2022-01-08 12:11:16 · 8197 阅读 · 1 评论 -
Global Illumination_Voxel Area Lighting (VXAL)
Voxel Area Lighting (VXAL)原创 2021-12-26 12:15:49 · 835 阅读 · 1 评论 -
Global Illumination_Voxel Ambient Occlusion (VXAO)
VXAO: Voxel Ambient Occlusion(体素环境光遮蔽)原创 2021-12-18 16:28:44 · 2211 阅读 · 0 评论 -
Global Illumination_Voxel Global Illumintaion (VXGI)
基于体素的锥形光线追踪原创 2021-12-11 21:13:10 · 3233 阅读 · 29 评论 -
Global Illumination_Spherical Harmonic Lighting(球谐光照)
一、球谐光照球谐光照(Spherical Harmonic Lighting)就是基于球面调和(SH, Spherical Harmonics)这个数学工具的一种光照/着色算法。球谐光照也是一种用让我们捕捉(capture)光照、随后进行重新光照(relight)、实时展现全局光照(Global Illumination)风格的区域光源(area light sources)与软阴影的一种技术。如果你可以理解一维函数的傅立叶变换(Fourier Transform),那么其实你也很容易理解在图形学领域里原创 2021-08-01 14:50:14 · 1652 阅读 · 1 评论 -
Global Illumination_Light Propagation Volumes (LPV)
本文的思想就是把场景分成很多的小格子,然后计算每一个小格子里面的光照(LPV)。如果直接计算每个格子里面的光照那代价也是不可接受的,因此本算法用了一种很巧妙的方式来处理:从RSM计算得出的虚拟点光源(VPL)开始,将VPL的光照“注射”给最近的格子,然后再”传播”到整个场景。因此该算法通过将直接光照渲染为反射阴影贴图,将其注入一个体积(使用球谐表示)并在该体积中传播光通量(因此得名算法)并尽可能考虑遮挡来近似全局照明。从上边的分析可以知道,本算法主要是分五步骤:网格建立光照存储光照注入网格光照原创 2021-12-05 11:25:06 · 1531 阅读 · 2 评论 -
Global Illumination_AMD FSR 算法
一、AMD FSR简介AMD FidelityFX Super Resolution,简称FSR,中文名称是“AMD超级分辨率锐画技术”。就是使用超分辨率技术实现高分辨率,高品质游戏画面,并显著提高游戏运行效率的一套实现方法和程序库。它免费开源,跨平台,针对硬件进行了优化,集成到程序也非常简单(实际上只有两个文件),最神奇的是,运行它并不需要特殊的硬件,甚至如前几代的Intel CPU内集成的核显,都可以使用该技术。如果现在你在开发一个新的次时代画面游戏,真是没有理由不使用它。如果要用一句话说明白FSR原创 2021-09-12 15:24:22 · 3182 阅读 · 2 评论 -
Global Illumination_Screen-Space Ray Tracing(SSR)
本次介绍一种把原本应该在三维空间的Ray Marching 转换到平面空间中采用DDA画线算法的方式来进行纹理采样的屏幕空间局部光追的算法,通过此种转换可以使得在屏幕空间的采样非常均匀,并且减少普通SSR重复采样的问题。一、DDA画线算法DDA算法是计算机图形学中最简单的绘制直线算法。其主要思想是由直线公式y = kx + b推导出来的。本文为了均匀采样,将三维空间的取点转换到屏幕空间用。具体算法原理可以参照DDA算法和Bresenham算法。DDA画线算法是在屏幕空间最简单的一种画线算法(首先原创 2021-08-28 19:05:59 · 854 阅读 · 0 评论 -
Global Illumination_Reflective Shadow Maps(RSM)、Virtual Point Light(VPL)
光照可以分为两类:一类为直接光照,这类光照是直接由光源或者发光物发出的光照;另一类为直接光照之后反射的光照称为间接光照。直接光照的计算十分简单,因为计算的范围和次数(没有反射)有限。而对于间接光照而言计算就十分复杂,因为间接光照可能不止反射了一次,一束光可能需要经历了很多次反射才能到达着色点。而间接光照又十分重要,因此间接光照的模拟是图形学中一个经久不衰的话题。一、反射阴影贴图/立即辐射度光照算法1.1 虚拟点光源算法RSM(Reflective Shadow Maps)的核心思想是把直接光源照亮.原创 2021-08-07 19:27:47 · 1835 阅读 · 2 评论 -
Global Illumination_Screen-Space Directional Occlusion(SSDO)
之前我们了解过AO、SSAO、HBAO(可参照之前文章Vulkan_SSAO—屏幕空间环境光遮蔽、DirectX11进阶9_AO、SSAO、Particle System(GPU)、Global Illumination_Horizon-Based Ambient Occlusion(HBAO))。我们本次来看一下一种基于屏幕空间的全局光照算法。SSAO因为与SSDO、HBAO极其相似,仅是在最后一步时充分利用了随机查询点处的信息来模拟间接光照。一、基于屏幕空间的间接光照算法从上图(左数前两个)看原创 2021-08-15 11:14:22 · 1078 阅读 · 6 评论 -
Global Illumination_Horizon-Based Ambient Occlusion(HBAO)
之前我们了解过AO与SSAO(可参照之前文章Vulkan_SSAO—屏幕空间环境光遮蔽和DirectX11进阶9_AO、SSAO、Particle System(GPU))。我们本次来看一下一种移动端友好的AO算法HBAO(Image-Space Horizon-Based Ambient Occlusion),相比SSAO对于每一个着色点需要进行64次(取决于随机点数量)采样,这对于移动端硬件来说采样率太高了(但可以用TSSAO来进行时空复用),因此目前手机主流的是采用HBAO来做环境遮蔽,而HBAO不原创 2021-08-14 11:41:05 · 2244 阅读 · 4 评论