Raytracing 2 Raycastingraycasting 仅会投射两种光线: 从eye出发到场景的光线,得到最近交点,作为着色点 从着色点到光源投射光线,即shadow ray 3 Recursive Whitted Raytrace引入了反射、折射、阴影光路,虽然加入了间接光,但只支持完美镜面反射、折射的递归追踪,其过程如下: 从eye出发到场景的光线,得到最近交点 当交点为镜面时,继续trace镜面 2025-04-05 Rendering Blogs > Raytracing
3.1 Ray-Triangle and Ray-bounding box Intersection 1 蒙特卡洛基础假设要求解积分 $\int f(x) \space dx$,往往没有解析解,直接求解困难。蒙特卡洛引入随机化,进而对积分进行估计。选择一个自变量 $X \sim P(x)$,概率密度为 $p(x)$,只要随机变量定义域能够覆盖被积函数定义域,就可以有如下恒等变换:$$\int f(x) \space dx = \int \frac{f(x)}{p(x)}\cdot p(x 2025-04-05 Render Engine > PBRT
3.1 Ray-Triangle and Ray-bounding box Intersection 1 Preliminary1.1 定义光线光线起点(position) $O$, 方向 $\textbf{d}$ (eye到所着色像素的方向)。由此可得到下面光线方程(Ray equation),该式定义的是光线上的任一点。$$r(t)=O+t\textbf{d}, \quad 0\leq t\leq \infty \label{ray-equation} \tag{1}$$ 1.2 叉 2025-04-05 Render Engine > PBRT
移动端 TBDR 1 移动端限制移动端相比于PC,具有很小的 cache、带宽很有限,带宽带来显著的功耗与发热问题。下图是PC采用的立即渲染 (IR) 架构下的图形管线,可以看到管线的多个阶段直接访问显存,这样的带宽开销对于移动端是不现实的。 Fig-1: 立即渲染架构下的图形管线 2 TBR移动端 GPU 架构倾向于最少化直接访问显存,将 framebuffer 划分为很多小块,使得每个小块可以被 SRAM 2025-04-01 Rendering Blogs > Graphics GPU
Mesh Shader 1 传统的 Geometry Stage1.1 Geometry Pipeline在图元送入rasterizer之前,会经过下图所示几何管线,其中包括4种着色器: vertex shader:变换vertex buffer中的输入数据为适合光栅化的形式,每个 vertex shader 仅能处理单个顶点 hull shader:作用于高阶控制面片 (control patch) 的控制顶点 do 2025-03-27 Rendering Blogs > Graphics GPU
1. Nanite - Introduction 1 Summarycluster:提高顶点重用 gpu-driven:CPU只需要提交场景变化,而GPU完成遮挡剔除,组织绘制指令,减少CPU提交绘制指令开销以及同步开销 LOD:传统的LOD是根据物体到相机距离切换,容易出现跳变。基于有向无环图的LOD的生成过程以 cluster group 为单位,即模型的一小部分。切换LOD也是以 cluster group 为单位。 先预处理场景几何,切 2025-03-27 Render Engine > UE5 > Nanite
ReSTIR GI- Path Resampling for Real-Time Path Tracing 1 Summary本文在 path tracing 框架下,应用 ReSTIR 理论来提高 multi-bounce 全局光照质量。 NEE(next event estimation) Next Event Estimation(NEE):在path tracing计算全局光照时,对交点进行着色拆分为两部分,直接光照与间接光照。直接光照通过显式采样光源直接计算得到,即 light samplin 2025-03-16 Paper Notes > Ray Tracing
3. Lumen - Radiance Cache 1 概述Lumen 中的 radiance cache 是基于 world probe 实现的,与 DDGI 不同,radiance cache probe 仅用于补充世界空间的 radiance 信息,例如 screen probe、reflection 的光线样本都有可能采样到 radiance cache。 LumenRadianceCache::UpdateRadianceCaches为r 2025-03-04 Render Engine > UE5 > Lumen
2. Lumen - Surface Cache 1 概述直接光照只需要关注相机看到的部分,而间接光照需要处理次级光线及之后的光照信息,也就是不依赖于相机的全局信息。每帧来计算光线交点信息对于大场景是不现实的,而 surface cache 的作用就是缓存次级表面信息,供光追采样。 surface cache 可以粗略理解为定义在 texture space 上的cache,而texture space描述的是物体表面空间,不随相机而改变。整个场 2025-03-04 Render Engine > UE5 > Lumen
1. Lumen - Introduction 1 Summary本系列是作者基于对 UE5 Lumen 源码以及网上资料的学习,而形成对 Lumen 实现原理的介绍。Lumen 是UE5的实时全局光照解决方案,其中包含了众多技术的工程化,本文先总体介绍 UE5 Lumen 的组成部分,之后再对各组成部分详细描述。 2 Global Illumination老生常谈,全局光照在实时渲染性能的限制下,最多只能达到 1/2 spp的光线开 2025-03-04 Render Engine > UE5 > Lumen