前言这些文章是我在学习games101的过程中的一些心得和笔记,有些是课程的,有一些则是我在其他博客等处总结的相关点和扩展资料。 对应的作业是HW 5-7,下面是我做的作业详解,仅供参考。 阴影映射(shadow mapping)点光源的阴影 -> 只能生成硬阴影![]() shadow mapping
注1:这里所有物体包括摄像机都在世界空间内,光源和眼睛的“看”意味着做投影,类似于v矩阵。例子:对于eye“看”到的一个(,)点,这个点实际上是在eye的投影平面上,对这个点做eye投影的逆变换,就可以得到原本世界坐标上的点(x,y,z),再对它做光源投影,就能得到光源投影平面上的对应的点坐标(,),从而获得存储在这个点上的深度值。 为什么需要光线追踪?
光线追踪与光栅化的对比![]() 光线追踪与光栅化的对比 Whitted-Style原理从眼睛发射一条光线穿过显示屏投射到物体上,得到交点shader point,既发生折射又发生反射,从折/反射点发射一条指向光源的shadow ray,判断它是否被物体遮挡,没有遮挡就对这个shader point着色(比如使用phong模型着色,当然,得利用物体的法线),最后把这些着色点的着色结果加权到得到一个颜色,把颜色设置进显示屏对应的像素上。 ![]() Whitted-Style 技术细节光线定义 -> 一个向量,有起点,有方向 ![]() 光线定义 求光线和物体表面的交点 a)显式表面 -> 场景中多是这种难以用方程描述的显式表面 从光源直接投射一个光线,求它与三角形所在平面的交点,再用叉乘判断交点是否在三角形内 ![]() 显式表面求交 或者一步到位,使用Mller Trumbore Algorithm:将交点用重心坐标表示,得到一个有三个变量 t , b_1 , b_2 的3阶线性方程组,解方程。 ![]() b)隐式表面 -> 令曲面上的点P等于光线上的点r即可求解。 ![]() 隐式表面求交 c)加速求交 -> 三角形太多,不可能一个一个去求交 1)AABB包围盒 将物体用包围盒包围,如果光线没与包围盒相交,就不可能与物体相交。将包围盒作为三个“对面”的交集,如下 ![]() AABB包围盒 如何判定是否相交:将光线延长为直线,分别求出与三个“对面”的交点 t_{min} 和 t_{max} , 并且t_{enter} = max\left\{ t_{min} \right\} , t_{exit} = ma\left\{ t_{max} \right\} ,当 t_{enter} < t_{exit} && t_{exit} > 0 时,光线与包围盒相交 ![]() 判定是否相交 2)场景预处理 -> 画格子 ![]() 场景预处理 首先,场景栅格化,把物体表面涉及的格子标记,之后发射光线,沿着光线取格子,取到有标记的格子就判断是否与物体相交,否则继续取格子。 注1:这里默认一个事实 -> 判断光线与格子相交比判断与物体相交简单 3)空间划分(预处理)-> 为了解决“Teapot in the stadium”问题 ![]() 空间划分
分完以后记录一个盒子里包含哪些物体。 查找过程:类似于二分查找。以KD树为例,投射一条光线,当光线碰到父节点的盒子时,需要递归的判断是否碰到子节点的盒子,直到判断进行到叶子节点时(叶子节点就是分的最小的盒子),意味着需要对叶子节点的这个盒子中包含的物体判断是否相交。 ![]() KD树 4)物体划分(预处理)-> 为了解决KD树一个物体存储在多个盒子里、难以判断物体是否被包围盒完整包围的问题 查找的过程与KD树类似,递归就行 ![]() 物体划分 辐射度量学符号定义
重点理解下面这个图就可以了,首先,irradiance是单位面积dA接收的总辐射能量,记作E,这个E是多个方向的能量叠加的,dE单指一个方向来的打到dA上的能量,即w方向来的能量。 ![]() irradiance与radiance的关系 Bidirectional Reflectance Distribution Function(BRDF)BRDF做了什么? -> 假设已知入射光和受光点,BRDF函数可以求出反射光分布,反之亦然,所以叫双向分布函数 为什么需要BRDF? -> 已知入射光能量和角度,射到物体表面物体先吸收能量,然后再向各个方向辐射(即反射),BRDF能求出给定方向的辐射的能量是多少,比如辐射到摄像机那里会有多少能量 BRDF怎么做的? 反射方程![]() 反射方程 dL(w_r)指沿着 w_r 方向上传播的一部分能量,dE(w_i )指w_i方向来的打到dA上的能量。那么一个w_i 方向的光对这个反射方向w_r的贡献比例是f_r,对所有光方向积分,就能得到沿着w_r方向的总的反射光能量。如下面的积分公式,L_r代表沿着出射方向w_r上的由dA反射的总能量,L_i是沿着入射方向w_i 射入dA的能量,f_r是换算比例,沿着方向积分即可将所有方向的“贡献”加和。 ![]() 总的反射光能量 渲染方程物体表面发出的光由L_e->自发光和L_r->反射光组成 ![]() 渲染方程 简化方程得下图,可以看到直接光照和间接光照的关系,直接光照就是光线只弹射一次,间接光照是光线弹射两次以上,因此光栅化只能完成直接光照部分,光线追踪可以完成间接光照的部分。 ![]() 简化方程 怎么渲染 -> 怎么解方程?Whitted-Style方法做了一个假设,光线遇到反射\折射材质就继续追踪,遇到漫反射材质就停下来做着色。这个假设并不符合物理,漫反射也会反射。因此引入路径追踪就是为了解决这个问题。 注意:路径追踪不太好处理点光源,因此假设的光源都是面光源
![]() 蒙特卡洛积分
![]() 直接光照 假设物体不发光并且只考虑直接光照,渲染方程只剩下反射项,同时均匀采样,因此半球的总立体角为2π,概率密度函数=1/2π,得到下面的反射方程 ![]() 反射方程 其中,p是着色点,wi是入射方向,wo是出射方向,这种情况就要遍历所有入射方向
![]() 间接光照
![]() N=1
![]() 发射多次光线 对于一个屏幕上的像素,从相机处发射多次穿过这个像素的光线,一次一条,对这条光线做只采样一个方向的路径追踪,得到多次光线的平均颜色。
对于一次追踪就可以到达光源的情况(直接光照),利用换元积分法,将在着色点上的积分以及对入射角的采样,转换到对光源(面光源)采样以及在光源上积分。这样可以在光源面积较小时,避免射出“浪费”的光线。 ![]() 采样方式优化 以dw为半球原点,对dA求一次立体角,立体角等于面积/距离平方。这样即可获得dw和dA的关系。 注:对光源采样只能处理直接光照,间接光照是没办法简化的,还是会“浪费”很多光线,(例子:wi取了100个方向,但是只有2个方向的光线可以打到光源附近的,因此其他光线就“浪费”了。)解决这种问题可以使用BDFT。 ![]() BDFT
![]() 处理遮挡 BRDF的一些性质
材质与渲染方程 -> 材质 = BRDF颜色的准确定义![]() 颜色 不同的材质,不同的方程
处理漫反射就是用之前学过的Path Tracing去采样间接光照的光线方向
![]() 镜面反射
菲涅尔折射定律 -> Microfacet Material 微表面材质 -> 一种基于物理的材质(state-of-Art)定义物体的表面是凹凸不平的,宏观的表面由许多微小的平面构成,光线在每个微平面上发生理想镜面反射或折射。 作用通过改变微表面的法线分布,可以改变其对光的反射和折射效果。 ![]() 法线分布 应用参考链接 -> 高级光线追踪简介 -> 学术界前沿这一部分就不详细介绍了,感兴趣可以根据我我给出的参考链接学习 无偏光线追踪
有偏光线追踪
实时辐射度算法(Instant Radiosity) ->高级材质表面参与介质 ->毛发材质 ->次表面散射 ->布料材质 ->颗粒状材质 -> 用的不多 |
相关文章
OAuth2.0与前端无感知token刷新实现
示意图 OAuth OAuth的关键是,在使用百度网盘的在线服务时,用户无需再次输入qq的密码。为了实现这一机制,认证过程中会通过qq提供的Web页面,让用户确认是否允许访问向百度网盘的在线服务提供qq账户信息。如果尚未登录qq,则需要用户输入密码,这一过程也是只在qq里完成登录,并不...
品牌词该投 SEM(百度推广)么?
写在前面搜索引擎,Search Engine Marketing,简称 SEM,是常见的营销手段之一。百度在国内搜索引擎中的占比最高,因此百度(又称百度SEM、百度竞价),也是市场运营人员常用的工具之一。最近一个小伙伴发现很多竞品在投放他的词,于是提出问题:品牌词是否应该投...
网站降权不要慌。
现如今很多的企业做网络推广,网站降权想必是所有SEO优化师的噩梦,在面对网站降权的时候,我们应该如何面对并分析问题呢? 1、是否有作弊行为 当然,作弊行为包括常见的买链、黑链、大众垃圾链。这些行为都是搜索引擎禁止的作弊行为。比如在你购买的链接中,其链中的大部分网站都减少了权利,那么很有...
邯郸SEO顾问:网站被K的原因有哪些。
邯郸SEO顾问今日与您分享网站被K的原因有哪些。大家可能都是到网站K站和网站降权这两个词,一旦网站被K或者被降权,那就是网站被惩罚了。常见的原因有内在的垃圾信息太多,百度算法更新而导致被K站,也有其他因素,如网站漏洞过多,被其他黑客入侵而长时间没有清理,这些因素都会导致网站被惩罚。...
3大Instagram营销技巧,玩转站外流量
是做好独立站的关键所在!而Instagram正在成为绝佳选择。独立站不像平台店铺自带初始流量,引不进来流量的独立站就是一个空壳,而在众多引流中,社交媒体是高性价比的、较快的一种方式。Instagram作为全球热门的社交媒体平台,拥有高注册量和用户的高活跃度,是独立站卖家引流...
SEO优化的重要途径就是合理有规划的给网站发布外链。
外链对百度SEO优化尽管没有曾经比重那么高,可是网站的外链需求渐渐的去堆集,并且这个堆集在于长期的坚持,重视的是文章内容的质测量,只需满意了搜索引擎和消费者,高质量外链关于网站的优化对错常有价值的,如果是废物外链,不光无法协助网站更好的优化反而对网站开展晦气,因而科学的给网站发布外链仍然是一门必修课...



































