Ray Tracing
Ray Tracing
文章目录
- Ray Tracing
- 光线追踪
- Whitted-Style Ray Tracing
- 求交点
- 加速求交点
- Bounding Volumes 包围盒
- BVH
- Basic radiometry(辐射度量学)
- Radiant flux
- intensity
- Irradiance
- Radiance
- BRDF 双向反射分布函数
- 概率论回顾
- 蒙特卡洛路径追踪
- 蒙特卡洛积分
- 路径追踪
光线追踪
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:
从光源采样:
Ray Tracing相关推荐
- Ray Tracing,Ray Casting,Path Tracing,Ray Marching 的区别?
作者:洛城 链接:https://www.zhihu.com/question/29863225/answer/70728387 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- 《Ray Tracing in One Weekend》、《Ray Tracing from the Ground Up》读后感以及光线追踪学习推荐...
<Ray Tracing in One Weekend> 优点: 相对简单易懂 渲染效果相当好 代码简短,只看书上的代码就可以写出完整的程序,而且Github上的代码是将基类与之类写在一起 ...
- 【Ray Tracing The Next Week 超详解】 光线追踪2-6 Cornell box
Chapter 6:Rectangles and Lights 今天,我们来学习长方形区域光照 先看效果 light 首先我们需要设计一个发光的材质 /// light.hpp// -------- ...
- 【RAY TRACING THE REST OF YOUR LIFE 超详解】 光线追踪 3-5 random direction ONB
Preface 往后看了几章,对这本书有了新的理解 上一篇,我们第一次尝试把MC积分运用到了Lambertian材质中,当然,第一次尝试是失败的,作者发现它的渲染效果和现实有些出入,所以结尾处声明要 ...
- A Hands-on Look at Using Ray Tracing in Games with UE 4.22 GDC 2019
A Hands-on Look at Using Ray Tracing in Games with UE 4.22 GDC 2019 talker: Sjoerd De Jong (SR.ENGIN ...
- Codeforces 724 C. Ray Tracing
Codeforces 724 C. Ray Tracing 题目来源 codeforces 题意: 有一些传感器按输入坐标分布在图上,有一道光从(0,0)沿45°角出射,遇到边按反射法则反射,遇到角落 ...
- 【Ray Tracing The Next Week 超详解】 光线追踪2-4 Perlin noise
Preface 为了得到更好的纹理,很多人采用各种形式的柏林噪声(该命名来自于发明人 Ken Perlin) 柏林噪声是一种比较模糊的白噪声的东西:(引用书中一张图) 柏林噪声是用来生成一些看似杂乱 ...
- 《 Ray Tracing from the Ground Up》官方代码的潜在的纹理映射问题
最近,小编在< Ray Tracing from the Ground Up>的基础上尝试实现BART的动画.写过一篇博文来总结初期实现的结果: "在< Ray Traci ...
- 【长文】在《 Ray Tracing from the Ground Up》的基础上实现BART的动画
第一部分:前言 本文是介绍在<Ray Tracing from the Ground Up>的那套代码的基础上怎么做出和BART官网上提供的视频差不多的动画. 大概一年前,小编写过一篇汇总 ...
- 总结《Ray Tracing from the Ground Up》
之前已经学习过<Ray Tracing in One Weekend>和<An Introduction to Ray Tracing>的一些内容,相关总结文档链接如下: 总结 ...
最新文章
- php 为什么定义常量,php-将预定义常量定义为什么
- JS~对img标签进行优化,使用onerror进行默认图像显示
- JNI的native代码中打印日志到eclipse的logcat中
- 为什么 Redis 默认 16 个库?90% 以上程序员不知道!
- OpenCV cv::CascadeClassifier人脸检测的实例(附完整代码)
- gitbook安装与使用之windows下搭建gitbook平台
- Effective C++阅读笔记
- 3dContactPointAnnotationTool开发日志(八)
- 【JavsScript】webapp的优化整理
- python绘制多边形_在python-matplotlib中绘制3D多边形
- mac Desktop 在Terminal 无法访问,错误提示:ls: .: Operation not permitted
- 三星魔术师软件安装:检测到漏洞 此程序将被关闭
- JSP中退出登录销毁Session
- Android: 页面元素抓取工具Weditor
- 我的2011--衣带渐宽终不悔,为伊消得人憔悴
- 新冠疫情可视化(7月7日,7月8日)
- PWM变模拟信号(积分电路 )
- Android官方文档之DataBinding库
- 微信小程序3(WXSS模板样式和全局局部配置)
- 全球五大云巨头“排排坐”,微软令人称奇阿里云需加油