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相关推荐

  1. Ray Tracing,Ray Casting,Path Tracing,Ray Marching 的区别?

    作者:洛城 链接:https://www.zhihu.com/question/29863225/answer/70728387 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  2. 《Ray Tracing in One Weekend》、《Ray Tracing from the Ground Up》读后感以及光线追踪学习推荐...

    <Ray Tracing in One Weekend> 优点: 相对简单易懂 渲染效果相当好 代码简短,只看书上的代码就可以写出完整的程序,而且Github上的代码是将基类与之类写在一起 ...

  3. 【Ray Tracing The Next Week 超详解】 光线追踪2-6 Cornell box

    Chapter 6:Rectangles and Lights 今天,我们来学习长方形区域光照  先看效果 light 首先我们需要设计一个发光的材质 /// light.hpp// -------- ...

  4. 【RAY TRACING THE REST OF YOUR LIFE 超详解】 光线追踪 3-5 random direction ONB

     Preface 往后看了几章,对这本书有了新的理解 上一篇,我们第一次尝试把MC积分运用到了Lambertian材质中,当然,第一次尝试是失败的,作者发现它的渲染效果和现实有些出入,所以结尾处声明要 ...

  5. 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 ...

  6. Codeforces 724 C. Ray Tracing

    Codeforces 724 C. Ray Tracing 题目来源 codeforces 题意: 有一些传感器按输入坐标分布在图上,有一道光从(0,0)沿45°角出射,遇到边按反射法则反射,遇到角落 ...

  7. 【Ray Tracing The Next Week 超详解】 光线追踪2-4 Perlin noise

     Preface 为了得到更好的纹理,很多人采用各种形式的柏林噪声(该命名来自于发明人 Ken Perlin) 柏林噪声是一种比较模糊的白噪声的东西:(引用书中一张图) 柏林噪声是用来生成一些看似杂乱 ...

  8. 《 Ray Tracing from the Ground Up》官方代码的潜在的纹理映射问题

    最近,小编在< Ray Tracing from the Ground Up>的基础上尝试实现BART的动画.写过一篇博文来总结初期实现的结果: "在< Ray Traci ...

  9. 【长文】在《 Ray Tracing from the Ground Up》的基础上实现BART的动画

    第一部分:前言 本文是介绍在<Ray Tracing from the Ground Up>的那套代码的基础上怎么做出和BART官网上提供的视频差不多的动画. 大概一年前,小编写过一篇汇总 ...

  10. 总结《Ray Tracing from the Ground Up》

    之前已经学习过<Ray Tracing in One Weekend>和<An Introduction to Ray Tracing>的一些内容,相关总结文档链接如下: 总结 ...

最新文章

  1. php 为什么定义常量,php-将预定义常量定义为什么
  2. JS~对img标签进行优化,使用onerror进行默认图像显示
  3. JNI的native代码中打印日志到eclipse的logcat中
  4. 为什么 Redis 默认 16 个库?90% 以上程序员不知道!
  5. OpenCV cv::CascadeClassifier人脸检测的实例(附完整代码)
  6. gitbook安装与使用之windows下搭建gitbook平台
  7. Effective C++阅读笔记
  8. 3dContactPointAnnotationTool开发日志(八)
  9. 【JavsScript】webapp的优化整理
  10. python绘制多边形_在python-matplotlib中绘制3D多边形
  11. mac Desktop 在Terminal 无法访问,错误提示:ls: .: Operation not permitted
  12. 三星魔术师软件安装:检测到漏洞 此程序将被关闭
  13. JSP中退出登录销毁Session
  14. Android: 页面元素抓取工具Weditor
  15. 我的2011--衣带渐宽终不悔,为伊消得人憔悴
  16. 新冠疫情可视化(7月7日,7月8日)
  17. PWM变模拟信号(积分电路 )
  18. Android官方文档之DataBinding库
  19. 微信小程序3(WXSS模板样式和全局局部配置)
  20. 全球五大云巨头“排排坐”,微软令人称奇阿里云需加油

热门文章

  1. 谈谈对Android音视频开发的探究
  2. uClinux移植与分析(3)
  3. 获取新浪开放平台的Access token
  4. VC++6.0安装、编译NTL类库
  5. 华为HCIA认证考试简介
  6. 关于百度网盘离线下载链接无效的问题
  7. 手把手教你用frp内网穿透
  8. 微机期末速通---不挂科版
  9. 建设一个网站需要多少钱?
  10. oracle11g dataguard安装实施