大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
Ray Tracing
文章目录
光线追踪


1.光沿直线传播
2.光线不会发生碰撞
3.光路可逆性
Whitted-Style Ray Tracing
递归算法,包括了光线的反射与折射


求交点


交点必定满足两个方程,则可以通过参数化解出来t(t > 0 射线),则可以求出交点。
光线与三角形求交点:

求解公式:

MT算法:用重心坐标表示三角形内的点,如果t>0,并且b1,b2,1-b1-b2 >=0,求出的解才有意义。
加速求交点

复杂图片,计算量会很大!
Bounding Volumes 包围盒

和包围盒的面求交:

只有当所有对面都进入,光线才真正进入;
光线离开任意一对对面,光线就离开;

满足求解条件:

BVH
主要思想:把物体分隔开,求取它的包围盒,保证物体不会重复出现在多个包围盒中,但是,它对空间的划分没有那么严格,有可能在空间上会重叠。
在这里插入图片描述
划分方法:
想法1:选择最长的维度进行划分
想法2:取最中间的物体,进行划分,保持树高度上的平衡(可采用快速选择算法)

BVH数据结构:

伪代码:

KDtree 与 BVH:

Basic radiometry(辐射度量学)

辐射通量、辐射强度、 辐照度、辐射亮度

Radiant flux

辐射能力、接收能量、传播中的能量

intensity




LED灯的60W并不是60W,而是相当于60W的白炽灯

Irradiance

面积是垂直法线的面积:

Radiance



BRDF 双向反射分布函数

反射方程:

困难:光线不止弹射一次,(递归)

渲染方程:

面光源采用积分;
对于其他物体发射出来的光,可以视为一个新的光源;




概率论回顾





蒙特卡洛路径追踪
蒙特卡洛积分


例子:均匀采样


1.样本越多,越接近
2.在x上采样,在x上积分

路径追踪





直接光照伪代码:

引出间接光照:


问题:

N=1为路径追踪

在像素内发射多条路径:


问题2:






从光源采样:









发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213951.html原文链接:https://javaforall.net
