大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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:
从光源采样:
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/213951.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...