Chinagraph2020笔记:真实感渲染科研入门

Lecture by Lingqi Yan

2022/07/07

Introduction

渲染的过程:计算光线传播的过程

渲染的科研,主要集中于真实感Realism和速度Speed。

渲染在科研上尚未解决的问题:

Prepared Knowledge

  1. Real-time/Offline graphics pipeline

  2. Texture Mapping 定义和记录逐点属性

  3. Bidirectional Reflectance Distribution Function, BRDF

  4. 采样理论(PDF采样)与蒙特卡洛积分

    实际基于大数定律,实验结果很多的时候将会接近期望值。可以使用置信区间进行评估,也可以使用期望验证无偏性(期望值与实际相符合)。

    1. 采样过程的优化:多重重要性采样

    2. 如何进行取样?引入Discrepancy:

      how uniformly distributed a sequence of point is $D_n^=D_n^(x_1,…,x_n)$

      用于描述实际和理论的差异,则引出Low Discrepancy Sequences 低差异化序列。

      • Pros:Infinite, …
      • Cons: Patterns, degeneration in high dimentions
  5. 直接光照和全局光照

    全局光照的获得:路径追踪 Path Tracing

    • Matter: 对于定义在半球的积分进行采样
    • 一般的求解思路是递归的求解,如今则更多使用更高维的概念来描述Path(光线每弹射一次则增高两个维度,所有Path的弹射区间被称为“Path Space”)
  6. 材质 Materials

    • Microfacet Material

      • Normal Distribution Function, NDF 描述物体表面的复杂特征
    • Rendering Materials

      1. Evaluation 估计,BRDF的值是多少
      2. Sampling 采样 如何对其做重要性采样
      3. PDF of Samping 假设知道入射光,需要用其他方法进行采样,我们需要首先知道其PDF
    • Appearance Modeling and Synthesis

State of the art rendering research

Basic Ideas:

Offline Rendering

Real-time Rendering

Interdisciplinary

Tools chain

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。

Other tools

Resources

Scenes:

同时可以尽量学习使用游戏引擎并使用其shaders。为了使用场景,尽量学习3D软件如Blender,Maya等,并且购买模型并将其导成自己渲染器的格式。同时我们也能使用一些免费的渲染库:

经典算法实现:

工业界不允许共享代码,渲染科研人员往往不倾向于共享代码。非常经典的算法包含在不同的渲染器当中。

Main Rendering Venus

常见会议:Siggraph, Siggraph Asia, EG, EGSR, PG,HPG,I3D

期刊:ToG, CGF, TVCG(only in China)

Training

代码训练方案:

Future Thoughts

Topic:

[HARD] Never the best, but the first

Future:

Geometry&Appearance

Procedural Rendering 实时生成&渲染细节

VR/AR需要差分渲染Differentiable Rendering