技术美术知识学习5200:光追相关概念介绍

学习教程来自:【技术美术百人计划】图形 5.2 光线追踪、路径追踪、光线投射、光线步进介绍

笔记

1. 光线追踪 Ray Tracing

光栅化渲染:并行的按照物体->三角面->像素拆解每个对象,缺少全局信息,无法精确实现一些效果
光线追踪:一种渲染框架
采用路径追踪的光线追踪方法步骤为:从相机出发,对每个像素点,向场景投射光线,直到光线与场景中第一个物体相交,在交点处根据物体性质、光源属性和光照模型等计算这个交点的颜色。然后,在交点处,该光线发生反射或折射,继续遍历追踪反射光线和折射光线,直到光线与下一个表面相交,计算该交点的颜色。直到光线到达光源或逸出场景。

图片来自PPT

I = I a + k d ∑ j = 1 j = l s ( N ⋅ L j ) + k s S + k t T I = I_a + k_d\sum_{j=1}^{j=ls}(N \cdot L_j)+k_sS+k_tT I=Ia+kdj=1j=ls(NLj)+ksS+ktT

计算交点的方法:

  1. 曲面方程和射线方程方程组求解
  2. 计算射线与物体三角形面的交点
  3. 优化:包围盒,空隙使用空间划分优化(八叉树、KD树、BSP树)

2. 光线投射 Ray Casting

图片来自PPT
只考虑投射,不追踪后续

3. 路径追踪 Path Tracing

一种光线追踪方法

图片来自PPT

L o ( p , ω o ) = L e ( p , ω o ) + ∫ S + f r ( p , ω i → ω o ) L i ( p , ω i ) cos ⁡ θ i d ω i L_o(p,\omega_o)=L_e(p,\omega_o)+\int_{S+}^{}f_r(p,\omega_i \to \omega_o)L_i(p,\omega_i)\cos \theta_i d \omega_i Lo(p,ωo)=Le(p,ωo)+S+fr(p,ωiωo)Li(p,ωi)cosθidωi

出射光 = 自发光 + 半球上贡献的积分

一些常见问题的处理办法:
积分的求解:蒙特卡洛积分
光线数量:一个像素块多条光线,反射时只产生一条光线,最终混合这些结果

图片来自PPT

迭代终止:随机数法,每次迭代生成一个随机数决定是否继续
光源面积小:不在半球上采样,通过变化直接在光源上采样

完整步骤:从相机出发,对每个像素点,向场景投射光线,直到光线与场景中第一个物体相交,在交点处根据物体性质、光源属性和光照模型等计算这个交点的颜色。然后,在交点处,该光线发生反射或折射,继续遍历追踪反射光线和折射光线,直到光线与下一个表面相交,计算该交点的颜色。直到光线到达光源或逸出场景。

4. 体积光线投射 Volume Ray Casting

体绘式技术(Volume Rendering)

采样三维纹理并混合

5. 光线步进 Ray Marching

光线从起点步步前进,一步一计算直到终点

应用场景起点终点方向
屏幕空间反射(SSR)反射面上的被计算的点反射光线与被反射对象表面的交点根据反射面法线和视线方向计算的反射方向
时差贴图视线和模型表面的交点视线和偏移表面的交点视线方向
体绘制视点视线和模型表面的交点视线方向

6. 一些区别

递归式光线追踪(Whitted Style Ray Tracing):每个像素一条光线
路径追踪:每个像素多条光线

作业

分析光线追踪、路径追踪、光线投射、光线步进在游戏中有哪些技术应用,paper

游戏中的应用 以下截屏来自来自Xbox Series X和3060显卡(Mincraft)

1. 地平线5 Forza 5

2. 灵媒 The Medium

3. 我的世界 Minecraft

GTX off
RTX on

4. 黑客帝国觉醒 The Matrix Awakens

5. 食人鲨 Maneater

RTX off
RTX on
RTX off
RTX on
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值