Introduction
渲染的过程:计算光线传播的过程
渲染的科研,主要集中于真实感Realism和速度Speed。
渲染在科研上尚未解决的问题:
- Tradeoff is costly
- Simplification is far from easy(可参考卡通渲染等)
Prepared Knowledge
- Real-time/Offline graphics pipeline
- Texture Mapping 定义和记录逐点属性
- Bidirectional Reflectance Distribution Function, BRDF
- 采样理论(PDF采样)与蒙特卡洛积分
实际基于大数定律,实验结果很多的时候将会接近期望值。可以使用置信区间进行评估,也可以使用期望验证无偏性(期望值与实际相符合)。- 采样过程的优化:多重重要性采样
- 如何进行取样?引入Discrepancy:
how uniformly distributed a sequence of point is#card=math&code=D_n%5E%2A%3DD_n%5E%2A%28x_1%2C…%2Cx_n%29&id=AcJiz)
用于描述实际和理论的差异,则引出Low Discrepancy Sequences 低差异化序列。- Pros:Infinite, …
- Cons: Patterns, degeneration in high dimentions
- 直接光照和全局光照
全局光照的获得:路径追踪 Path Tracing- Matter: 对于定义在半球的积分进行采样
- 一般的求解思路是递归的求解,如今则更多使用更高维的概念来描述Path(光线每弹射一次则增高两个维度,所有Path的弹射区间被称为“Path Space”)
- 材质 Materials
- Microfacet Material
- Normal Distribution Function, NDF 描述物体表面的复杂特征
- Rendering Materials
- Evaluation 估计,BRDF的值是多少
- Sampling 采样 如何对其做重要性采样
- PDF of Samping 假设知道入射光,需要用其他方法进行采样,我们需要首先知道其PDF
- Appearance Modeling and Synthesis
- Microfacet Material
State of the art rendering research
Basic Ideas:
- Appearence Modeling
- Light Transport
- Representation(e.g. describe ambient light better)
- Approximation
Offline Rendering
- Light transport
Light Transport Simulation with Vertex Connection and Merging
Path Guiding in Production - Material modeling
e.g. Glossary可以由无数微小表面的反射进行呈现,我们可以做到很细致的效果
A Efficient and Practical Near and Far Field Fur Reflection Model - Sampling
- Denoising
KPCN: Kernel-Predicting Convolutional Networks for Denoising Monte Carlo Renderings
Real-time Rendering
- PRT: 预计算
- RTX:实时光线追踪
- Light Transport
Spatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lighting
https://www.cnblogs.com/Liuwq/p/15974079.html - Denoising
代表性的两种方法:传统方法和深度学习方法
(传统方法,更快)SVGF: Spatiotemporal Variance-Guided Filtering: Real-Time Reconstruction for Path-Traced Global Illumination
(深度学习方法,需要跑一遍神经网络)Interactive Reconstruction of Monte Carlo Image Sequences using a Recurrent Denoising Autoencoder
- Light Transport
Interdisciplinary
- Differentiable Rendering 可微渲染
- Measurement&Construction
- Neural Rendering (actually not rendering)
Toolchain, Resources and Training
Renderer:
An integration of Light transport algorithms, Materials, Scene handler
Mitsuba 0.5.0/0.6.0 is in general a good choice; PBRT is also good.
Ray Tracer:
(CPU, Intel’s) Embree,尽量在CPU中完成
(GPU) OptiX(cross platform), DXR(DirectX Raytracing, Windows Only)
Falcor is a good framework
对于光栅化的实时渲染研究,可以自己写一套(使用OpenGL/DirectX/Vulkan),其中如果使用OpenGL,可以尝试imGUI或NanoGUI,提供了基本的GUI。
Scenes:
同时可以尽量学习使用游戏引擎并使用其shaders。为了使用场景,尽量学习3D软件如Blender,Maya等,并且购买模型并将其导成自己渲染器的格式。同时我们也能使用一些免费的渲染库:
- The Stanford 3D Scanning Repository
- Benedikt Bitterli’s rendering resources
- NVIDIA’s ORCA
经典算法实现:
工业界不允许共享代码,渲染科研人员往往不倾向于共享代码。非常经典的算法包含在不同的渲染器当中。
Other tools
- To view HDR文件(.exr) : Tev
- To do fastest GPU inference:NVIDIA’s TensorRT
Main Rendering Venus:
常见会议:Siggraph, Siggraph Asia, EG, EGSR, PG,HPG,I3D
期刊:ToG, CGF, TVCG(only in China)
代码训练方案:
- Offline
- Write a path tracer from scratch using Intel’s Embree
- 引入多重重要性采样
- 支持微表面材质
- 实现正确的BDPT(Bidirectional Path Tracing)
- Real-Time
- Write C++ OpenGL wrapper
- 支持arcball support,对其添加软阴影VSSM(Shader)
- 在OpenGL程序中支持Optix
- 写一个实时光线追踪,用OpenGL做Primary,后续用Optix
- 添加降噪(按SVGF)
Future Thoughts
Topic:
- “Frankenstein” type 缝合怪
e.g. Vertex Connection and Merging (A+B) - “Nature porter” type 跨领域的方法迁移
- “Dig the grave” type 解决过去方法/条件不能解决的理论
- “Deep replacement” type
e.g. Neural Importance Sampling - “Add prefix” type
e.g. Anisotropic Spherical Gaussains
[HARD] Never the best, but the first
Future:
Geometry&Appearance
Procedural Rendering 实时生成&渲染细节
VR/AR需要差分渲染Differentiable Rendering
