图形学 -- Ray Tracing 光线追踪

参考视频:Lecture 13 Ray Tracing 1_哔哩哔哩_bilibili

Ray tracing

原因

Rasterization 格栅话不能处理好global effects,如↓

简介反射:光线在到达人眼前不止弹射一次

基本假设

1)光是沿着直线传播

2)光线交叉的时候不会发生碰撞

3)reciprocity 可逆性- 光线从光源发出并进入人眼

 Ray Casting- Generating Eye Rays

Pinghole Camera Model

眼睛发出的光线只能看到最近的!

有入射方向,出射方向就可以算法线,然后算着色

shadow mapping

实现步骤

 步骤1:从光源出发看场景,记录看到场景的深度

步骤2:从相机角度观察,再投影回光源

 

实际操作

1)光源记录深度

step2:实际到光源看到的集合形状

问题

硬vs软阴影

本影/半影原理

Whitted-Style Ray Tracing

1)光滑表面,光线折射

2)漫反射物体,光线停止

Recursive Ray Tracing

每一个弹射的点都去算它着色的值

Ray-Surface Intersection 交点

Ray Euation

Ray Intersection with sphere

 Ray Intersection with Implicit Surface 隐式表面

 Ray Intersection with Triangle Mesh 显式表面

!随便在一个封闭图形内取一个点,从中间作一条射线,和这个图形的交点一定是奇数个!

解决三角形和光线的交点问题

定义平面(好熟悉的内容啊,好像高数学过...?)

 光和平面交点

再判定点是否在三角形内

Moller Trumbore Algorithm

克拉默法则有点忘了

Accelerating Ray-Surface Intersection 

Bounding Box 包围盒,包围体积(AABB)

光线如果盒都碰不到,哪里碰得到物体呢↓

此处理解:长方体是三个对面形成的交集

看光线和包围盒有没有交点

2D

取交集!↓

3D

三个对面都满足光线已经进去了,才能说光线在盒子内;只要光线离开任意一个对面就已经离开盒子了

第三种情况就是光源在盒子里!

Uniform partitions (Grids)

一般划分的个数

Spatial Partitions

 解决场景中格子分布不均匀的问题

Oct-Tree效果不好,BSP-Tree不好计算

KD-Tree(对空间划分)

*实际物体不存放在中间节点上,只存放在叶子节点上

 光线和格子没交点,不用判定;有交点则和盒子里所有的物体求交点

缺点:

1)同一个物体

2)kt tree 建立并不简单,需要考虑三角形和盒子的相交

解决方法↓

Object Partitions & Bounding Volumen Hierarchy(BVH) (对物体的划分)

划分的不是空间,是把物体划分成两个部分

步骤

划分小技巧

尽量沿着最长轴,并且保证里面三角形数目差不多

伪代码

Spacial vs Object Partitions

Basic radiometry(辐射度量学)

在物理上准确定义光照

Radiant Energy and Flux(Power)

能量和功率

 几个重要概念,后面详细介绍

Radiant Intensity 

每个角度分到的能量

Solid Angles 立体角 

Differential Solid Angles 单位立体角

Isotropic Point Source

如果一个点光源均匀往各个方向上辐射出光,任何方向上的能量都是power/4Π

Irradiance

一个物体表面接受到多少光的能量 

随着距离增加intensity没变,irradiance衰减

Radiance

光线在传播中的度量

能量在单位立体角并且在单位的面积上

和Irradiance的区别是是否有方向性

da从每一个可能的方向获取的能量求和

Bidirectional Reflectance Distribution Function (BRDF) 双向反射分布函数

单位 面积中吸收多少入射能量再原样发射回去,不同方向的能量分布

Recursive Equation

递归:任何一个出射光线都有可能是其他平面的入射光线,其中这个H^2指的是半球

Rendering Equation

物体自己会发光怎么办:把自己发的光加上去就ok

Reflection Equation

点光源

面光源

简写

物体所辐射出来的所有能量=所有光源辐射出来的能量+辐射出来的能量被反射之后的

黄色部分是光栅化能实现的范围,而后面的多次反射则是光追范围

Probability Review 概率论回顾

Random Variable 随机变量

Probability 概率

Expected Value 期望

概率密度函数

Monte Carlo Integration 蒙特卡罗积分

算任何一个函数的定积分

在pdf上以一定的蒙特卡洛积分进行采样,每个样本算f(x)/p(x)然后进行平均

Path Tracing 路径追踪

witted style解决不了这个glossy的问题

能比较好的处理漫反射效果

已经可以算出任意一个着色点的出射!

间接光照 Global llumination

但是!以↑方式解决全局光光线数量会爆炸!

所以N=1的时候不会指数级增长!路径追踪就是N=1!

Ray Generation

Russian Roulette(RR)

解决光线弹射多少次的问题

一定的概率停下追踪

效率

在物体上采样效率低?

不如直接在光源上采样

所以要对光源面积进行积分

已经开始头疼了...........

所以光线来自:光源,以及其他所有非光源

如果中间有遮挡物:

直接算光源与被观测物连线

总算看完了,感觉一刷有点一知半解的(摊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值