零基础实现光子映射器
这是我们在创建DezemingFamily网站之前就开始写的第一本小书。虽然各方面都不太完善,但它是我们有意去构造DezemingFamily知识体系的开端——为此特别留下纪念。
Appearance
零基础实现光子映射器
这是我们在创建DezemingFamily网站之前就开始写的第一本小书。虽然各方面都不太完善,但它是我们有意去构造DezemingFamily知识体系的开端——为此特别留下纪念。
基于 OpenGL 的光线追踪器——在着色器 GLSL 中实现——从零开始构建的全教程
渲染后处理技术
模拟光传输的鲁棒的蒙特卡洛方法(Eric Veach)全文解读
PBRT 更高版本-原理与代码描述
我个人认为,从学习渲染算法和渲染原理的角度而言,PBRT v1/PBRT v2和PBRT v3应该都是很不错的版本。个人推荐具有一定渲染基础的人目前最好把PBRT v3作为最开始的学习版本。不过v1和v2也有很多有趣的功能,比如比较原始的光子映射/球谐光照等内容。
PBRT v4中增加了不少更复杂的的技术,使得PBRT系统变得既达不到工业渲染器的复杂和效率,又难以作为初学者用于学习渲染的工具。但它最好的一点在于对GPU渲染的支持以及GBuffer的获取,使得渲染更快,且我们可以比较容易地使用v4来生成一些深度学习数据集。
Optix虽然现在普及程度并没有特别高,但作为RTX重点支持的平台,尤其是Optix 7版本的发布,使得Optix具有很不错的应用前景。因此,PBRT v4也将是我们重点讲解和分析的内容。其讲解内容详细程度不会低于PBRT v3系列。但值得注意的是,我们不会在PBRT v4中介绍太多专一的渲染理论,例如特定的某种材质。而是重点关注PBRT v4的架构和流程。
最后,本系列文章不是零基础的,需要读者能够掌握PBRT v3的内容。PBRT v3系列中我们教大家怎么从零开始搭建一个渲染器,但v4这种做法就不可取了,尤其是需要对GPU兼容,那么渲染器必须一开始就得严格设计好,而不能一点一点集成和改造。
Mitsuba v1-理论与代码实践
Mitsuba v1是一个功能很全、代码规范的面向科研的渲染引擎,基于PBRT构建。Mitsuba v1的优点是有各种高级渲染器的实现,而Mitsuba v2虽然升级为了可微渲染器,但是失去了对一些渲染方法(比如双向方法)的支持,所以Mitsuba v1并不会过时。
经过个人反复斟酌,一开始我认为本系列没有必要像PBRT系列那样从头到尾移植一个系统,但后来鉴于Mitsuba v1的编译和使用并不是很友好(这是我首次花了一周才编译成功的代码,期间搜索了各种论坛和博客),因此本系列仍然以从代码移植来学习为主。
基础要求:假设读者有一定的渲染基础,至少已经掌握《PBRT V3-基础理论与代码实践》系列的内容,熟知构建一个渲染器所必须的功能类和函数。
bgfx-应用与代码构建
Optix v6-v7-应用与代码构建
希望读者在阅读前能提前掌握光线追踪三部曲的内容作为基础,否则难以掌握Optix。
LearnOptix系列2 - Optix的基本功能与代码结构
互联网开源的渲染器集
渲染类书籍与Course收藏
常用的渲染算法
渲染理论与渲染模型、材质
Max N. Optical models for direct volume rendering[J]. IEEE Transactions on Visualization and Computer Graphics, 1995, 1(2): 99-108.
Pérez F, Pueyo X, Sillion F X. Global illumination techniques for the simulation of participating media [C]//Eurographics Workshop on Rendering Techniques. Springer, Vienna, 1997: 309-320.
Cerezo E, Pérez F, Pueyo X, et al. A survey on participating media rendering techniques[J]. The Visual Computer, 2005, 21(5): 303-328.
Jönsson D, Sundén E, Ynnerman A, et al. A survey of volumetric illumination techniques for interactive volume rendering[C]//Computer Graphics Forum. 2014, 33(1): 27-51.
Novák J, Georgiev I, Hanika J, et al. Monte Carlo methods for volumetric light transport simulation [C]//Computer Graphics Forum. 2018, 37(2): 551-576.
Optical Models for Direct Volume Rendering
Global Illumination Techniques for the Simulation of Participating Media
概率采样技术与渲染优化/近似技术
渲染加速技术/加速结构
[Paper阅读-FAVR – Accelerating Direct Volume Rendering for Virtual Reality Systems](/pdfs/计算机图形学/Paper阅读-FAVR – Accelerating Direct Volume Rendering for Virtual Reality Systems.pdf)
抗锯齿、自适应采样与蒙特卡洛渲染去噪
神经网络渲染与逆渲染
神经网络渲染通常是指代使用神经网络作为和取代渲染器的一部分来实现对渲染速度和质量的优化、或拟合复杂材质外观等。
常见的神经网络渲染类型有: 【1】输入渲染中的使用蒙特卡洛估计得到的有噪结果,网络输出无噪结果。 【2】输入渲染中获得的中间信息(直接光照等),网络拟合这些中间信息来输出渲染结果。常见的思路有使用直接光照拟合多重散射照明。其实本质上与去噪是同一回事。 【3】使用神经网络作为数据结构来加速或者压缩信息。 【4】使用神经网络估计渲染结果,并实时使用新采样的结果去更新神经网络参数(类似于以前使用线性模型对渲染结果去噪,并通过回归来更新线性模型参数)。其实本质上与去噪是同一回事。 【5】使用神经网络去拟合简单的光照信息,例如拟合环境光遮蔽的信息。 【6】使用神经网络拟合一些复杂的材质反射函数。
逆渲染是通过一张/多张图像来恢复图像中的三维场景信息,例如物体三维结构的各种表示(点云、mesh或者体素等)、光照信息、材质信息、深度等。逆渲染是一个非常宽泛的概念,其中很多研究本质上都是图像处理或计算机视觉的任务,例如很多光照估计和深度估计的研究。 多视角三维重建、单目深度估计、数字三维资产、人工三维模型生成等概念最近也非常火。
2003年: A Survey on Image-Based Rendering - Representation, Sampling and Compression
2020年:Tewari A, Fried O, Thies J, et al. State of the art on neural rendering[C]//Computer Graphics Forum. 2020, 39(2): 701-727.
2020年:Kato H, Beker D, Morariu M, et al. Differentiable rendering: A survey[J]. arXiv preprint arXiv:2006.12057, 2020.
2022年:Tewari A, Thies J, Mildenhall B, et al. Advances in neural rendering[C]//Computer Graphics Forum. 2022, 41(2): 703-735.
2022年:Neural Fields in Visual Computing and Beyond
2023年:NeRF Neural Radiance Field in 3D Vision, A Comprehensive Review
2023年:NeRFs The Search for the Best 3D Representation
2023年:Neural Radiance Fields (NeRFs) A Review and Some Recent Developments
2024年:A Survey on 3D Gaussian Splatting
2024年:Recent Advances in 3D Gaussian Splatting
Survey-NeuralRender-Tewari-2020
步骤1:去B站看几个NeRF入门的视频。然后对照原论文【NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis】学习,把大致流程掌握。
步骤2:下载pytorch版的源码,对照本人整理和撰写的两篇全面解读的文档来学习源码:
可视化技术-基础原理与代码实现
科学数据可视化(Scientific Data Visualization)
VDB: Volumetric, Dynamic grid, B+Tree
几何与建模基础概念
计算几何