前一节所描述的光线追踪技术已经很接近现实工业中所使用的技术了。你可能认为直接模拟这个过程是个制作图像的好办法,你基本上是对的。但,直接模拟有个问题,那就是他绘制图像所需要的时间,考虑每个光源每秒可能产生数以兆计(Millions)个光子的情况,其中,每个光子都以略微不同的震动频率朝着略微不同的方向前进。其中的许多光子撞击对象你甚至都无法间接看到。其他的正好跑出场景的,比如冲出窗户的。如果我们想要尝试去以参照真实追踪从光源出来的光子的方式来绘制一个图像,那将会花费数年的时间来得到那个蠢图。

  本质问题不是前向光线追踪不好,而是从光源来的大部分光子对想要绘制的图像都没有帮助。从占用计算资源的角度来说,跟随无用的光子的代价太过于昂贵了。

  对于计算效率的关键理解是反转问题,通过用逆向光线追踪来代替前向光线追踪。这开始于我们的反问"哪些光子对绘图是有贡献的?",符合条件的光子是那些撞击了图像平面并反射进眼睛的那些光子.所有的这些光子在撞击屏幕前都行进了一段路程;也许有一些直接来自于光源,但是更多的也许在进入眼睛前在周围反弹。

  让我们考虑一个图像平面上的特殊点。我们可以轻易地跟着依次撞击屏幕和眼睛的光子找到路径:那是一条从屏幕到眼睛的线,如图6所示。

  

  因此,如果一下光子确实对视距内的图片上的某点有贡献,那么它就代表一条进入眼睛和胶卷的光线。但是等等,这个光子来自哪里呢?如果我们把光线延伸入世界,我们可以沿着光线的路径寻找寻找最近的物体,光线必定来自这个物体。

  思考图7,一个光线射入眼睛撞击球体,穿过图像平面。那就是光子可能的路径;即使任何光子穿过了那个路径,我们也无从得知。但是如果任何光线撞击了屏幕中的那部分射入眼睛,那么它必须沿着从球到眼睛的这条线行进。因此,我们的新计划着重讨论是否有任何光子通过了那条路。

  

  以这个途径,我们以从对象到光源的逆向光线追踪手段来进行光线追踪。这是种重要规定,它可以允许我们去限制我们对于光线的注意,从而让我们知道真正对图片有用的,进入了眼睛的那些光线。

  现在,我们找到了吸引我们眼球的光子了。我们必须找出来那些真的通过了那条路径的光子,及其颜色,我们将会在下面的话题中解决这些问题。

  因为正向光线追踪是如此的昂贵,现今的图形学中的光线追踪大部分都只逆向光线追踪。很不幸的是一些逆向追踪的符号产生了一些令人困惑的符号。回想我们逆向追踪来找出光子的起点,虽然我们经常在逆向追踪中完成这些研究。想象我们乘坐在光子在路径上行进,寻找我们路径上的第一个对象;这是光线的起点,因此我们经常说的"光线第一个撞击的对象"或者"路径上的第一个对象"。即我们通常指的对象就是这样一个穿过这个光线的光子,这样一个逆向点在光线追踪文章和算法中很流行。因此他是用来思考现在的问题再好不过,而且之后也不会迷惑。总结起来就是"光线撞击的第一个对象"意味着"某个发射了这个光线的对象"

转载于:https://www.cnblogs.com/TooYoungTsukasa/p/9136628.html

2 追踪光线=》2.2 前向光线追踪和逆向光线追踪相关推荐

  1. 2 追踪光线=》2.6 反射光线

    如果我们看一张完美平坦,闪亮的桌子,我们会看到桌面上的其他物体的反射.我们会看到这些反射,那是因为光线从其他物体到达桌面,从桌面反射回来,然后到达我们的眼睛 .对于一个固定的眼点,桌子上的每个位置都有 ...

  2. smallpt: Global Illumination in 99 lines of C++讲解

    smallpt: Global Illumination in 99 lines of C++ 光线追踪 正向光线追踪 逆向光线追踪介绍 蒙特卡罗光线追踪算法 非透明材质 漫反射材质 镜面反射材质 透 ...

  3. 【GPU Gems 学习笔记】Rendering Water Caustics

    一. 水的焦散 焦散(Caustic),是一种光学现象,是由于光线在曲面经过反射或折射后形成的聚光效果,类似于凸透镜效果. 对于不透明物体来说,当光线照射到具有强反射属性的曲面对象时,会形成反射焦散现 ...

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

    [TA-霜狼_may-<百人计划>]图形5.2 光线追踪.路径追踪.光线投射.光线步进介绍 @[TOC]([TA-霜狼_may-<百人计划>]图形5.2 光线追踪.路径追踪.光 ...

  5. 采用光线跟踪绘制场景 c++_光线追踪的相干性聚集:硬件光线追踪的优势

    尽管在理论上实现现代GPU的方法是无限的,但真正有效的方法是切实地了解问题并着手将方案变为现实.制造现代高性能半导体器件以及试图加速当前可编程光栅化技术所面临的问题揭示了GPU硬件行业发展的未来趋势. ...

  6. 【自翻】光线追踪的简介:创作3D图片的简单方法

    源网址链接 工作原理 课程初始,我们会解释怎样把一个三维场景只作为可视化的二维图片.一旦我们理解了这个过程和过程的参与制,就能运用电脑来简单的模拟一个"人造"图片.这部分更像是一个 ...

  7. 计算机图形学——光线追踪(RayTracing)算法

    转自:https://blog.csdn.net/hmbxsy/article/details/80509876?depth_1-utm_source=distribute.pc_relevant.n ...

  8. GAMES101蒙特卡洛光线追踪及Assignment7

    文章目录 前言 蒙特卡洛路径追踪 蒙特卡洛积分 路径追踪 Whitted-Style光线追踪的局限性 渲染方程 直接光照 间接光照 两个问题 优化 总结 Assignment 7 准备工作 实现过程 ...

  9. 通俗傻瓜式理清光栅化渲染和光线追踪渲染的原理

    本文适合完全不了解渲染又想略窥一二的兴趣朋友,我也非大牛,仅写下自己粗略的理解,内容上难免会有错漏,如果你发现有误的地方,欢迎交流修改.文中部分图片来源网络,如侵权请联系,我马上修改. 1.让你做渲染 ...

最新文章

  1. Unity5.6+ 导出Android 应用程序apk的环境配置及导出过程
  2. (2) ebj学习:hello world入门案例
  3. android 热修复 需要重启应用嘛?_Android热修复方案盘点
  4. 某级数的前两项A1=1,A2=1,以后各项具有如下关系:An=An-2+2An-1。使用非递归的算法求解满足要求的n值的程序。
  5. matlab size11,matlab学习笔记11_3高维数组操作 filp, shiftdim, size, permute, ipermute
  6. 图解Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN
  7. tcp/ip源代码(17)——ip_fragment
  8. 计算机思维论文1万字,计算机思维学论文选题 计算机思维论文题目怎么取
  9. 罗斯蒙特流量计指示故障的原因
  10. 电子工业的发展也带动了电子设计自动化技术
  11. 电视root工具_TapTap | 无需Root,成功移植 IOS14,拿下!!!
  12. 自顶向下的GAMMA显著性——学习搜索复杂场景中的对象
  13. @Value 读取yml 文件
  14. 深夜有感而发的第一个文章
  15. TLS协议分析 (九) 现代加密通信协议设计
  16. JavaScript知识要点 - Web前端开发必备
  17. 网络设备配置与管理————10、命令行接口
  18. vba中MsgBox的参数及用法
  19. Cuteftp连接虚拟机Centos7
  20. 家庭双路由器桥接实现方式(主TPLink + 副Fast)

热门文章

  1. pytorch1.0 用torch script导出模型
  2. [BZOJ] 1025 [SCOI2009]游戏
  3. Android进程间通信(复习笔记)
  4. golang常用手册:数据类型、变量和常量
  5. 黑客成功破解 PlayStation 4 支持运行 Linux
  6. AgileEAS.NET敏捷开发平台案例-药店系统-项目说明
  7. eigrp hello报文格式
  8. 应试教育下的三大群体
  9. 计算机硬件检测维修资料,计算机硬件检测维修实训台 Computer hardware detection and maintenance training bench...
  10. ORA-01830:日期格式图片在转换整个输入字符之前结束