目录

门特德的无偏和有偏计算

双路径追踪

光子映射MLT

外观建模

非表面模型

Phase函数

KKM模型

Marschner Model改善头发渲染

颗粒模型-非表面模型

半透明材质-次表面散射

布料

法线贴图


门特德的无偏和有偏计算

  • 无偏是无论采用多个样本量,门特德值都是指向正数。采用无数的样本量。否侧,就是有偏,无数的样本量会收敛到正值。

  • 双路径追踪

  • 双路径追踪:入射光线和摄像机观察向量入射和反射,最后把它们连接起来,形成完整的路径。

  • BDPT双线路径追踪(右图)效果明显好过单项路径追踪(左图),在这个情况之下,单向的路径追踪很多是多次的间接光照。如果是BDPT双线路径,从站立灯发出光线和摄像机发出观察向量,最后把它们连接起来,形成的完整的路径,相对计算量会小一些,效果也比较好。不过,有个问题,BDPT运行会慢,因为比较难找到它们的连线。

  • 光子映射MLT

  • 解决上面的计算量多的问题,马尔可夫列MLT基本思想是通过一个样本产生更多的样本。通过一个光线来推出附近的光线,直到找到局部范围光线。这幅图展示一个光线路径的变化之后,出现新的路径,但它们开始和结束位置一样。

  • MLT适合用在复杂的路径传播上。

  • MLT缺点也是比较明显,局部的光线推测出来时间不同,形成的图形有些已经渲染好,一些还没有渲染出来,如图下金属的白色点。这个用在动画上,可能出现上一帧和下一帧画面某个点差别巨大。

  • 这个图片展示Caustics光线通过折射形成的强光投射在地面上,这个路径符合Specular-Differ-Specular(SSS),复杂的传播路径。可以用光子映射Photon Mapping来演示。

  • 有偏差渲染
  • 光子映射先从光源出发,折射或是反射到diffuse上绘制出来之后,光子就停在那里,这个可以直到光子在哪里。

    • 其次,从摄像机出发,打出各个方向观察路径,这个观察路径也是遇到diffuse停下。再把光子和观察路径连接起来。
  • 这个是在上面的基础上,做局部的光子密度估计=光子的数量/光子所占的面积。

  • 光子数量无限多的时候,它在局部的面积形成更多的光子,这些就是dA。而如果数量有限,图片显得模糊一些。

  • 总结:有偏是因为照片有模糊,这个算是有偏。图片没有模糊是无偏。一致性是增加样本量,渲染出来图片不模糊。

  • 双路径跟踪是光线和观察路径连接起来形成。光子映射是处理局部的光子。

  • IR以一个主要的光源投射出不同的虚拟子光源,这些虚拟子光源对某个点进行照亮,反射到摄像机里面。可以模拟多次的反射的效果。 

  • IR可以快速的得到一个画面的效果,但它是基于多个的虚拟光源的照射某个点,像局部光子照射一样,由于两个点非常的接近,就出现下面的右边的图片的极亮的情况。

    • 局限是IR不能做镜面反射的物体。
  • 外观建模

    • 非表面模型(粒子)、曲面模型(衣服)、程序模型
  • 非表面模型

  • 就像云、雾等这样的物体。它不是在物体的表面上。

    • 解释上面的效果是因为光线发生的反射和折射。

    • Phase函数

    • Phase函数决定光线是如何散射的。

    • 以不同的反弹的方向,和光源相连,路径进行计算。

    • 这类型的材质着色不是作用在物体的表面上。

  • KKM模型

  • 头发模型的路径着色,被头发散射在各个角度上。

  • 按照上面的反射路径来,得到下面的效果,这类的效果像phong,不太真实。

  • Marschner Model改善头发渲染

  • Marschner Model 模型是光线在头发丝折射出来TT路径,以及在头发丝里面折射之后,再反射出微表面TRT,R是直接反射。这个可以理解为在玻璃柱传播。

  • MM效果展示比较好,头发颜色和头发的折射数值比较合理。

  • 动物毛发和人类的毛发是不太一样的。这个从生物学的角度来研究,动物的中间水质相对比较大,而人毛发水柱相对少,水柱越大,它越容易反射。

  • 不同毛发水柱渲染的效果图。

  • 毛发丝有了水柱之前和之后的效果展示。

  • 光线在头发丝的传播的路径。

  • 双圆柱模型发丝渲染的电影

  • 颗粒模型-非表面模型

  • 半透明材质-次表面散射

  • 这类材质在材质内部发生多次散射,再反射出去。

  • 在BRDF基础上,计算反射出去的点在哪里f(A)和有哪些反射光线经过这个点F(H2)。

  • 次表面散射结果是物体里面有一个光源,物体表面还有一个光源。

  • BRDF和BSSRDF散射效果。

  • 布料

  • 布料由不同的纤维缠绕一起的。

    • 不同的缠绕形成不同效果表现。

    • 布料渲染通过划分空间的格子,可以直到这些纤维朝向和分布,再转为吸收光线和反射光线。

  • 物体微表面的法线和菲尼尔能量、自遮挡自投影G(i,o,h)等,这部分在17节课展示。

  • 渲染的时间比较久。

  • 有些光的路径不在摄像机上面,第二幅图以像素来包含局部微表面反射的出来光线。

  • 一像素覆盖图形的范围如果比较大,显示图形模糊的。如果像素覆盖相对较小,得到不规则的形状,这个图形有特点。

    • 法线贴图展示出来不同图形。
  • 法线贴图

  • 海水的效果

  • 波动光学

  • 程序化生成-定义一个函数,生成一系列的纹理贴图。

  • 这个车生锈也是通过噪声随机做成的,如有某个点位置(xyz)是噪声,那展示出来,不然就显示车的颜色。

现代图形学入门-18课 高级光线传播相关推荐

  1. 一篇学完:GAMES101:现代计算机图形学入门 学习笔记

    文章首发于lengyueling.cn 欢迎访问交流! PDF版本已经附在lengyueling.cn文章末尾,需要自取. 导论 图形学应用场景 电子游戏: PBR:之狼 卡通渲染:无主之地 电影:黑 ...

  2. 计算机图形学入门总结!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Albert,东南大学,Datawhale成员 Computer ...

  3. GAMES101-现代计算机图形学入门09(光线追踪)

    基本光线跟踪算法 光线定义 首先先要对光线定义 ●光沿直线传播: ●不发生碰撞: ●是从光源到人眼的--对于第三个性质,我们在根据光路可逆性,会采取从人眼到光源的方法 光线追踪是从人的眼睛(摄像机)出 ...

  4. Games101计算机图形学入门基础之一:向量变换、矩阵变换、视图变换、欧拉角与四元数

    Games101计算机图形学入门基础之一:向量变换.矩阵变换.齐次坐标.欧拉角与四元数 目录 Games101计算机图形学入门基础之一:向量变换.矩阵变换.齐次坐标.欧拉角与四元数 前言 向量 向量加 ...

  5. 现代图形学入门需要掌握的全部数学知识总结

    现代图形学入门需要掌握的全部数学知识总结 1 向量 1. 向量的加法 2. 向量的点乘Dot product 3. 向量的叉乘 1 叉乘在图形学中的用法: 2. 叉乘的属性 3 叉乘的坐标系计算方式 ...

  6. 计算机图形学入门(一)-线性代数部分知识1

    本部分主要介绍了向量的点乘与叉乘在图形学中的基本应用,介绍了图形学中常用的2D矩阵变换,例如缩放.对称.切变换.旋转.平移.逆变换.组合变换和分解变换.还有在图形学中为了简化操作而采取的添加维度的方法 ...

  7. 5.TypeScript入门之TS高级类型(class类)

    上一章节:4.TypeScript入门之TS常用类型(3) Ⅳ.TypeScript高级类型 概述 TS中的高级类型有很多,重点学习以下高级类型: class类 类型兼容性 交叉类型 泛型和 keyo ...

  8. Linux运维工程师入门第一课-赵永刚-专题视频课程

    Linux运维工程师入门第一课-75人已学习 课程介绍         本课程包含许多工作中会遇到的问题及解决方案,解决大家工作当中遇到的问题.非常适合刚刚入门的同学来学习linux基础入门. 本课程 ...

  9. 清华大学python基础_清华大学出版社-图书详情-《Python基础入门-微课视频版》

    前言 Python语言自从20世纪90年代初诞生至今,逐渐被广泛应用于处理系统管理任务和科学计算,是最受欢迎的程序设计语言之一. 学习编程是工程专业学生学习的重要部分.除了直接的应用外,学习编程还是了 ...

最新文章

  1. 链表问题13——删除无序单链表中值重复出现的节点(方法二)
  2. 知识图谱与深度学习(新时代·技术新未来)
  3. 在M1芯片上跑原生Linux:编译速度比macOS还快40%,真香警告
  4. 推荐系统的实践与思考(上篇)【转】
  5. 对图片对比度和亮度的理解
  6. ASP.NET中GridView数据导出EXCEL小结
  7. linux中shell curl命令获取http状态码--------强大的网络传输工具
  8. (原創) 用OOP实作矩阵相乘 (C/C++)
  9. 【HDOJ】1667 The Rotation Game
  10. matlab朦胧的去雾、加雾算法
  11. Java链表——插入和删除
  12. 外汇会计-概念-升水(Premium)
  13. 生成PDF文件的几种方法
  14. Win10提示“为了对电脑进行保护,已经阻止此应用”如何解决
  15. python 摄氏度和华氏度温度转换案例
  16. 【FND】EBS中Java并发程序开发
  17. 基于pixhawk2.4.6硬件和ChibiOS系统的ardupilot启动流程:从上电到ArduCopter应用层代码
  18. 职场潜规则之——言及莫论领导是非
  19. GC日志可视化分析工具GCeasy和GCViewer
  20. 高级工程师面试 - MySQL

热门文章

  1. Linux yum卸载提示 Error: Trying to remove “yum”, which is protected
  2. 钢材和不锈钢切削液-市场现状及未来发展趋势
  3. Vitu全新社区来了
  4. 图片格式在线转换怎么弄?这些软件你值得拥有
  5. 我国首个环保大数据研究中心在西安交大成立
  6. 数据库建立索引为什么会加快查询速度
  7. AUTOCAD——圆心标注
  8. APP安全测试工具_QARK初探
  9. AVRCP@[1] AvrcpTargetService启动
  10. 基于Gradle的插件开发之【buildSrc】的使用教程【封装build.gradle.kts】