【TA-霜狼_may-《百人计划》】图形5.2 光线追踪、路径追踪、光线投射、光线步进介绍

  • @[TOC](【TA-霜狼_may-《百人计划》】图形5.2 光线追踪、路径追踪、光线投射、光线步进介绍
  • 5.2.1 光线追踪
  • 5.2.2 路径追踪
  • 5.2.3 体积光线投射:(与前述不同)
  • 5.2.4 光线步进
  • 总结

5.2.1 光线追踪

Ray Tracing 光线追踪,一种框架与光栅化渲染并列

光栅化渲染:将一个场景的渲染任务按照以下层次拆解:物体=》三角面=》像素。这种拆解方式会导致全局信息丢失,因此全局效果的精确实现上存在瓶颈,比如软阴影、间接光照等。

光线追踪:从相机出发,对每个像素点,向场景投影光线,直到光线与场景中第一个物体相交,在交点处根据物体性质,光源属性和光照模型等计算这个交点的颜色。

光线追踪将一个场景的渲染任务按照光线拆解。这些光线之间也是并行的。光线追踪可以获取一个场景的全局信息。

Arthur Appel公认的最初模型:

Turner Whitted三种光线:反射光线、折射光线和阴影光线


可以看到上述方法都需要计算光线与物体的交点:

  1. 射线方程与曲面方程联立,解方程组;
  2. 计算射线与组成物体的三角面的交点:
  • 先计算射线与三角面所在平面的交点,再判断交点是否在三角面内
  • 或者用Moller Trumbore算法直接计算射线与三角形的交点
    快速光线求交:用一个包围盒(通常是长方体)把物体包围起来,保证物体完全在包围盒内。如果光线没有与包围盒相交,那么光线肯定不可能与物体相交。通常使用一种轴对奇包围盒(AABB),即包围盒的棱是和坐标轴是平行的。
    空间划分:八叉树、KD树、BSP树

5.2.2 路径追踪

Path Tracing 路径追踪
在光线遇到表面需要反射时,以表面法线为中心做一个半球,向半球上的若干方向引出一束射线,再递归计算这束光线中,每条光线对该表面点的光照贡献。
Kajiya渲染方程:



最终观察到的颜色由两个部分组成:自发光和反射光部分。
问题1:定积分的求解
解决方法:蒙特卡洛积分法

问题2:需要采样的光线太多,指数爆炸
解决方法:朝一个像素块发射多条光线,每条光线只反射一次。


问题3:光线迭代中止条件
解决方法:每次迭代产生随机数,根据随机数决定是否继续迭代

问题4:当光源面积较小时,从相机发射的光线到达光源的概率变小,很多光线无法到达光源被浪费,形成大量噪点。
解决方法:直接在光源上采样。

5.2.3 体积光线投射:(与前述不同)

Volume Ray Casting 体积光线投射,一种体绘制(Volume Rendering)技术。
从体纹理表面的像素开始,沿固定方向(通常是视线方向),发射一条光线,光线穿越整个体纹理(或图像序列),并在整个过程中,对体纹理进行CIA杨获取颜色信息,同时按照一定规则将颜色值进行混合累加,直至光线穿越整个体纹理,最后得到的颜色值就是渲染图像的颜色。

注意此处光线投射与Arthur Appel提出的光线投射不同:

  • Arthur Appel的光线投射方法中,光线止步于表面;体积光线投射方法中,当光线碰到体纹理表面后继续前进,在体纹理内部进行采样,知道光线穿出体纹理。
  • Arthur Appel光线投射方法需要计算光线与表面的交点;体积光线投射方法不需要计算交点,因为交点是已经确定的。

5.2.4 光线步进

Ray Marching光线步进
一种通用的方法,该方法描述的是这样一个过程:光线从起点出发,一步步前进,每到达一步,光线就停下来做一次计算,然后继续前进,直到逼近终点。
在不同的应用场景中光线步进的起点、终点和方向具体指代的内容不同。

总结

  1. 递归光线追踪方法中(Whitted),视点向每个像素投射一条光线,路径追踪方法中,视点向每个像素投射多条光线。他们的共同点都是把场景的渲染任务以光线形式拆解,并涉及到光线的递归。

  2. 递归光线追踪和路径追踪通常需要对视线和表面求交,得到交点后,光线继续产生反射光线或折射光线;体积光线不需要求交,一般情况已知。

  3. 光线追踪、路径追踪和光线步进都涉及到光线与表面求交。光线步进指代一种方法类型,在不同算法中有不同应用;光线追踪和路径追踪有多种求交点的方式,交点处的性质会用于后续的迭代计算,更关注求交点的结果。理论上也可以将光线步进运用于光线追踪和路径追踪。

  4. 体积光线投射中也包含光线步进的思想。

  5. 光线追踪和路径追踪的起点都是视点,终点都是视线与物体表面的交点;

  6. 体积光线投射真正的起点是体纹理表现的像素点,终点是光线穿出体纹理的交点。但是需要从视点方向引出射线。

【TA-霜狼_may-《百人计划》】图形5.2 光线追踪、路径追踪、光线投射、光线步进介绍相关推荐

  1. 百人计划 图形2.1 色彩空间

    色彩发送器 色彩认知:光源是出生点,光源发出光线,光线通过直射反射折射等路径最终进入人眼.在接收到光线后,人眼产生了一系列化学反应.由此把产生的信号传入大脑,大脑对颜色产生了认知感知. 光的要素: 光 ...

  2. 百人计划 图形1.4 PC手机图形API介绍

    前言 电脑工作原理:电脑是有各种不同的硬件组成,由驱动软件驱使硬件进行工作.所有的如软件工程师都会直接或间接使用到驱动. 定义:是一个针对GPU的图形库,用于渲染2D.3D矢量图形的跨语言.跨平台的应 ...

  3. 百人计划 图形 2.5 BUMP图改进

    基础感念 凹凸贴图技术是对物体表面贴图进行变化然后再进行光照计算的一种技术.例如给法线分量添加噪音,或者在一个保存扰动值的纹理图中进行查找,这是一种提升物体真实感的有效办法,但却不需要额外的提升物体的 ...

  4. 百人计划 图形2.2 模型与材质基础

    渲染流水线大致过程 1.顶点数据输入到顶点着色器中进行相关的顶点计算,然后进行图元装配,通过点与点之间的关系将点进行连接.2.再到几何着色器(可选着色器)进行图元的增加,再到光栅化通过遍历像素点将一个 ...

  5. 【TA-霜狼_may-《百人计划》】图形3.4 延迟渲染管线介绍

    [TA-霜狼_may-<百人计划>]图形3.4 延迟渲染管线介绍 @[TOC]([TA-霜狼_may-<百人计划>]图形3.4 延迟渲染管线介绍 3.4.1 渲染路径 3.4. ...

  6. 【TA-霜狼_may-《百人计划》】图形3.7.2 command buffer简

    [TA-霜狼_may-<百人计划>]图形3.72command buffer 及urp概述 @[TOC]([TA-霜狼_may-<百人计划>]图形3.72command buf ...

  7. 【TA-霜狼_may-《百人计划》】图形4.5 DoF景深基础

    [TA-霜狼_may-<百人计划>]图形4.5 Dof景深基础 @[TOC]([TA-霜狼_may-<百人计划>]图形4.5 Dof景深基础 4.5.1 景深 离散圈 4.5. ...

  8. 【TA-霜狼_may-《百人计划》】图形2.7.2 GPU硬件架构概述

    [TA-霜狼_may-<百人计划>]图形2.7.2 GPU硬件架构概述 @[TOC]([TA-霜狼_may-<百人计划>]图形2.7.2 GPU硬件架构概述 GPU是什么 GP ...

  9. 技美 百人计划 (图形)1.1渲染流程

    技美 百人计划 (图形) 图形 1.1 渲染流水管线2.1数学基础 很早之前就有关注百人计划这个系列的课程,也跟着看到了2.几的教学但是一直没有写笔记,最近看到百人计划已经快更新完毕了,决定从头看一遍 ...

最新文章

  1. R数据可视化 火山图
  2. GridView总结二:GridView自带编辑删除更新
  3. oracle 恢复dmp文件时,创建 tablespace user
  4. Android游戏开发指南lt;一gt;背景地图
  5. 关于linux kernel编译的几项关键点:
  6. 个人觉得好的文章链接推荐【转载,侵权立删】
  7. django前端到后端一次简单完整的请求实例
  8. 地推不同HTTP协议解决的问题
  9. springcloud gateway_Spring Cloud构建微服务架构(五)服务网关
  10. 不加好友实现QQ在线代码状态临时会话
  11. Navicat 恢复mysql psc 备份文件
  12. 鼠标点击右键,反应慢,解决方法!
  13. Domain Adaptive简介
  14. 企业宣传类PPT模板
  15. 初中信息技术面试计算机网络,2019下半年中学信息技术教师资格面试真题完整版...
  16. 如何关闭电脑的休眠功能
  17. ZYNQ-定时器中断使用
  18. Mesosphere DCOS安装
  19. Wince 困难中前行 晚饭的时候可以看下夕阳
  20. C语言三角分解非奇异矩阵为L、U矩阵

热门文章

  1. SSM项目:问卷调查1
  2. AutoCad2023 快速教程 2D 3D
  3. Vue全局监听滚动条事件
  4. 笔记本电脑数字键盘失灵
  5. 约瑟夫问题用循环链表解决
  6. python爬取付费隐藏内容_如何用python 爬取网页中隐藏的div内容?
  7. 开启 Apple Watch 静音模式
  8. QString将16进制字符串转换成10进制字符串(16进制IP地址的转换显示)
  9. c:out value= escapeXml=标签中的escapeXml的含义
  10. android小米推送,酸了!小米手机Android 10推送安排上了