前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Real time ray tracing for GIS

Real time ray tracing for GIS

作者头像
Peter Lu
发布2021-05-13 11:31:20
7230
发布2021-05-13 11:31:20
举报
文章被收录于专栏:LETLET

Ray tracing

ray tracing,光线追踪,简称光追,顾名思义,是以研究光线在不同环境下的运动为基础的渲染技术,其对应的理论是辐射转移,这里,光线本质是一种电磁波,而运动则产生了能量在不同介质之间的转移。辐射转移则以数学的形式来量化该运动。

Whitted-style ray tracing

80年代,光栅化代表了渲染的先进技术,对散射和镜面反射应用Phong,基于环境贴图的反射(Blinn)以及阴影体。基于这些技术和物理基础,Whitted提出了一种从相机到光源,以射线来模拟光路的渲染方式,称之为Whitted-style ray tracing,渲染效果如上。

Whitted-style ray tracing是一种点采样的算法,而现实中并不存在抽象的点。比如像素的反走样,实际中的面光源导致的软阴影,glossy反射对应的cone的分布,漫反射则对应一个半球的分布,都牵扯到面,自然需要引入积分。84年,Cook提出了一种stochastic ray tracing,核心思想就是用蒙特卡洛MC来求解渲染中的积分问题,下图分别为软阴影、glossy反射、以及运动(motion blur),通过采样来求解积分。

86年,Kajiya基于辐射转移重新定义了光路积分,给出了严密的数学定义,这就是rendering equation。光路的传输从灯到感应器,并保证物理正确,基于该公式的光路传输算法可以真实的模拟现实场景。Kajiya在论文中提出了path tracing算法。

90年代,Veach的论文中提出了双向路径追踪BDPT和基于Markov的MLT等光路传输算法。这篇论文为光路传输算法奠定了基石,可以说,后续的所有光路算法,都是对该篇论文的优化,因该论文巨大的贡献,Veach获得了奥斯卡技术贡献奖。

上面是针对离线渲染领域的一个简单介绍。个人理解,光线追踪最大的特点就是物理正确。不再是我觉得正确它就正确 ,而是在真实的场景下,它就是如此,真正的photo realistic,其数学解是无偏的或有偏一致的,如上图的caustic。这个时代,我们需要声明图片是渲染还是拍摄所得。其次,就是它的鲁棒性,大道至简,根据光路传输的算法来计算场景真实的渲染效果,光栅化往往把各种不同的tricks整合在一起来达到某些渲染效果,比如PCSS的软阴影。大神Wojciech Jarosz也说“渲染是物理,数学和计算机的完美结合,并能通过计算机来模拟这些物理现象,方便艺术家的使用。这这个交流中会产生很多有趣的事情。这是最让我兴奋的方面”。

下图是闫令琪大神对渲染的个人理解,将渲染类比成幻术,终极目标就是无限月读,所以,我们做渲染的,是地球上最强的一群人,属于宇智波一族。

Real time ray tracing

Ray tracing这么牛,相比rasterization,为何至今并没有广泛应用呢。问题就是性能。一个复杂积分没有解析解时,我们需要采样获取其期望值(大数定理),通过增加样本数来降低方差。我们对实时的定义是每秒30帧+,一旦一个技术涉及到采样,往往性能是瓶颈。

上图给出渲染性能优化的大概方面,红色五角星是我们的终极目标,也就是自然界的光速。图右则是借助硬件提升性能的策略,免费午餐。这些年,NV大力推广实时的光线追踪技术,OptiX,RTX等硬件加速能力,以及Ray Tracing Gems系列书籍的免费下载。Matt Pharr(PBR book作者之一,凭借这本书拿到了奥斯卡技术贡献奖)离开Disney而去NV research时,专门写了博文《On to the next thing》,分享了他为何决定加入实时渲染领域。

首先是ray tracing的可编程渲染管线。一条射线从创建到最终到达相机,在这个过程中,该射线在可编程阶段(蓝色部分)和固定管线阶段(绿色)切换,开发者负责优化算法的并行能力,比如Wavefront思想,而硬件厂商则可以不断优化固定管线,比如BVH遍历的硬件加速。两者尽可能的解耦,和Rasterization的渲染管线类似。

硬件加速技术降低了采样成本。另一个思路则是提高样本的利用率,以极低的样本数量达到一个好的效果。因此,实时降噪技术非常重要。一方面是时域和空域上做文章,比如SVGF,另一方面则是深度学习。

SVGF对比:左下角采样1spp效果,中间是在其基础上的采用svgf的效果,右上是采样2048的reference

通过相机状态的跟踪,我们可以获取像素在相邻帧之间的motion,将采样延伸到时间维度,对不同时间积累的样本进行filter。同时,根据某区域在时间上变化的强烈程度(方差)判断是否属于edge,调整空间filter的size,效果如上图。ReSTIR则是基于重采样的重要性采样Resampled Importance Sampling的降噪技术,很多人提到了这篇论文,added to my reading list。DLSS(Deep learning Super Sampling)则是基于深度学习的时域重采样技术,低分辨率的原图获取4倍的高分辨效果。

Real time ray tracing for GIS

图形学的两颗珍珠是游戏和电影,游戏中要求好的视觉效果,而电影里则只要肉眼难辨就足够了,并不一味强调物理正确。物理正确的渲染到底有多大意义或仅仅是一种信仰,这就好比黑客帝国中的牛排,ignorance is bliss。

GIS在这方面和游戏,甚至电影有不同的要求。GIS数据是真实采集的,我们也希望渲染能是物理准确的。现实应用中更强调准确表达而弱化艺术成分,而光追技术更适合这类需求。

更进一步,物理正确的渲染更有助于逆运算的准确度。目前基于遥感影像的GIS深度学习,无论是遥感影像,倾斜模型,和点云,都是基于固定视角和时间下的采样。而物理正确的渲染可以摆脱视角和时间限制,提供高效,低成本且photo realistic的对抗样本,更好的数据增强能力。

卡马克在十年前曾说过“Eventually ray tracing will win.”。目前,非常非常多的渲染大神都把重心投入在ray tracing相关领域,NV大力支持real time的能力,去年轰动一时的UE5宣传片,渲染基础也是光追。这个技术方向是没错的,如何把光追技术引入到3D GIS,也是值得思考的问题。

地图+高度图,由rayshader渲染

这里,我想到了两个问题,纹理采集和海量数据的调度。我们采集的纹理都是基于某个时段和光照环境下的结果,从这个角度,纹理不是属性,而是结果。我们需要获取该物体的材质属性而不是纹理;RTX显卡支持对三角形射线求交的硬件加速,前提是把场景中可能求交的三角形都预加载到显存中。光追中,因为光路反射,折射的不确定性,视锥体裁剪会有问题,需要一种合适的LOD将整个场景加载到GPU中。赛博朋克2077就是将整个场景模型(不包括纹理)加载到显卡,这在GIS大数据量的场景下是不可行的,Virtual Texture或许是一个思路。

个人希望能把光追应用到3D GIS领域,一是希望把自己的兴趣和工作结合起来,希望能够有现实价值,二来是因为我能

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 LET 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档