《 NEXT 技术快报》:图形篇 (下)

《 NEXT 技术快报》:图形篇 (上)

【摘要】

模拟各向异性的布料或者长的毛发,在动画中始终是个热点难题,15、16连续年没有相关的SIGGRAPH论文或者大的进展。之前的方法多是基于粒子的拉格朗日方法,但是计算量巨大。本文试图用最新的Material Point Method来解算,基本思想是将模拟的元素视为流体或连续体,避免了显示的解算碰撞和摩擦,从而揭示出一种统一的物理模拟框架。

【问题】

  • 如何快速模拟真实的各向异性布料始终是个热点,因为存在元素间的碰撞和摩擦计算量很大;
  • 长发的模拟同样是个难题。

【解决方法】

本文是综合之前的三篇SIGGRAPH论文做出的改进,分别是迪斯尼在做冰雪奇缘时为雪的模拟开发的MPM算法、APIC算法,以及为模拟沙子开发的算法,第一篇解决将拉格朗日方法和欧几里得方法做了整合,提出了一个变形梯度投射的思想,将动力学解算放在网格空间处理,从而可以处理颗粒之间的压缩、弹性和断裂等效果;APIC算法则解决了MPM中从网格向粒子传递时的耗散问题(相当于低通滤波);沙子模拟算法则是利用Drucker-Prager Yield Criterion来简化建模连续体内的摩擦力,将应力张量分解为粘稠流体内的耗散和摩擦两种因素,并且考虑了网格内部元素的填充率。本文的贡献是提出了在垂直于表面或线的切线方向上的形变梯度,从而间接阻止元素之间的穿插,也解决了之前MPM方法存在的精度问题。以下是三篇相关文献。

1、A Semi-Implicit Material Point Method for the Continuum Simulation of Granular Materials

2、A material point method for snow simulation

3、The Affine Particle-In-Cell Method

【结果分析】

优势:可用于模拟毛衣、长的头发等的动画效果,部分解决了元素之间的自碰撞和摩擦和撕裂等问题。对于180万个面的布料模拟,每帧耗时2分钟(运行在CPU上,常规网格)。

不足:1)实现在CPU上,未来可能会迁移到GPU上实现更快的模拟速度;2)目前使用的不是自适应网格,随着模拟的物体尺寸增大,网格数会三次方增加;3)不能完全保证元素之间不会穿插,这是算法本身决定的,不过作者测试,在时间步长比较小的时候,能基本避免;4)网格的尺寸需要设定为与材质元素的尺寸一致,否则模拟中会出现瑕疵。

【应用落地】

毛衣、长头发等的动画效果,以及和其他元素之间的交互(这些元素也可以用MPM算法模拟)

渲染(Rendering)

渲染是从几何体和材质信息生成最终呈现在屏幕上的2D画面的过程,分为offline和online两种类型,后者包括游戏中常见的OpenGL和DirectX管线,因为场景复杂、光效复杂和对计算时间的要求,主要的研究方向可分为:

● 光线追踪中采样算法的研究,比如蒙特卡洛的优化、bi-direction等;

● 针对各种复杂光效的优化,比如景深、运动模糊、高光反射、sss效果等;

● 实时渲染算法的研究,比如实时的多边形光源的照明、实时的GI算法等;

● 渲染中去除噪点、减少采样的方法;

● 物体材质的参数模型和参数获取等。

Lighting Grid Hierarchy for Self-illuminating Explosions

原文链接:http://www.cemyuksel.com/research/lgh/lgh.pdf

演示视频:https://www.youtube.com/watch?v=nWEPCU2d0WI

【摘要】

模拟爆炸、烟雾或者位置动画很多盏点光源的光照和阴影效果是个难题,因为渲染时间往往随光源的数量成倍增加。本文的基本思想是,将烟雾或多盏点光源的位置作为输入,得到各级粗分网格中的点光源的亮度和位置,用这些点光源的融合来计算光照信息,减少了计算量。

【问题】

  • 游戏中爆炸后烟雾的动画中往往很难模拟烟雾对环境的光照效果,因为光源的增加会造成计算量激增;
  • 在多盏点光源情况下,动态阴影和半透明效果也是问题;
  • lightcut方法将众多点光源转换为层级树的方法,存在bias问题。

【解决方法】

本文将烟雾或多盏点光源的位置作为输入,然后逐步变成网格中格点的点光源,使用了传统的线性融合的方法来做不同层级的格点光源的光照融合,在每帧点光源变化时,更新所有层级格点的光照,使用cube-map来模拟阴影,对于层级较高的格点(就是粗略模拟的光照)使用体积光源模拟,对于烟雾中存在的multi-scattering间接光照效果,本文使用了增加虚拟光源的方法来模拟。

【结果分析】

优势:1)在渲染下图中的爆炸效果时,使用了1.4百万的点光源,计算网格耗时273秒,光照计算耗时320秒;在渲染下图中的多个点光源和半透明的SIGGRAPH字体时,使用了2.2万盏点光源,计算网格耗时20秒,光照计算耗时30秒。测试平台为dual Intel Xeon E5-2690 v2 CPUs (20 cores total) and 96GB内存。效果很好,速度也比较快。2)没有lightcut方法中存在的帧与帧之间的闪烁问题;并且速度快了几个量级,在爆炸烟雾渲染中,lightcut方法需要2个小时来渲染。3)使用的都是传统的算法和方法,比较可靠。

不足:1)仍然无法避免VPL算法本身存在的漏光问题;2)如何在gpu上或者实时渲染中利用该技术,本文没有提及,但是方法上并没有限制,估计阴影贴图(.5GB-1GB的贴图量)的生成会比较耗时和消耗带宽,不过在实时渲染中可能也不需要用这么多盏点光源来模拟,值得尝试。

【应用落地】

用于游戏动画中篝火、爆炸等动态体积光源的模拟,或者飞舞着很多萤火虫的洞里的光照效果。

Interactive Reconstruction of Monte Carlo Image Sequences using a Recurrent Denoising Autoencoder

原文链接:http://research.nvidia.com/sites/default/files/publications/dnn_denoise_author.pdf

演示视频:https://drive.google.com/file/d/0B6eg_ib7k4PoaVhWN3VYRHo0NDQ/view

【摘要】

渲染中如何在不增加采样的情况下降低噪点一直是研究的热点,本文采用机器学习的方法,使用CNN网络来编码信息,然后用RNN网络来降低连续帧之间的噪点,在间接光上取得了不错的效果

【问题】

  • 最简单的降噪方法是增加采样数,缺点是造成渲染时间成倍增加;
  • 传统机器学习(比如线性回归)方法来降噪,但是因为噪音来源比较多,比如有材质高频信号、复杂几何体(比如头发)、间接光照(全局光,multi-scattering),以及景深和运动模糊等,所以很难有一个统一的方法或者统一大小的filter宽度来对数据进行处理。

【解决方法】

NVIDIA在optix框架基础上尝试使用深度学习的方法实时的对图像去噪点,对于仅考虑单次间接反射/折射的渲染画面,保持了edge等高频信号,同时在连续的渲染画面中取得了较好的降噪效果。技术上使用CNN+Skip connection来做encoder,然后再decoder,中间使用rcnn结构抑制连续画面中的闪烁。

【结果分析】

优势:达到20fps左右的实时渲染速度,仅使用1spp的间接光照采样,在保持边和阴影等高频信号的同时,去除了噪点且没有引入叠影等,做到了较为不错的全局光照和阴影效果。

不足:1)为考虑复杂几何体,景深和运动模糊的情况,2)输入画面本身是每像素一个采样点的噪音较大的渲染画面,没有演示对于噪点较小的渲染画面的处理结果,3)训练中使用的是128128的画面,网络较小,decoder时是采用上采样来做到的,所以最后输出画面尺寸也是128128,后续也许扩展到了更大的网络;4)不能处理光线的多次反射/折射,场景中有镜子,杯子等时,会有问题。5)optix是nvidia开发的一套运行在gpu上的光线追踪渲染框架,所以本文使用的环境,并不是游戏中所用的opengl或dx管线。

【应用落地】

在将来也许可以用于提升游戏的画质,但是对于电影等要求较高的渲染可能还不行。

Modeling Surface Appearance from a Single Photograph using Self-augmented Convolutional Neural Networks

原文链接:http://msraig.info/~sanet/sanet.pdf

演示视频:暂时没有

【摘要】

Xin Tong在MSRA一直在做材质方面的工作,国内该领域做的最好的组,去年他做的SIGGRAPH工作仍然是使用传统的基于多张照片或视频的受约束的二次规划/优化方法,这是他们组第一次尝试使用CNN深度学习的方法来做。

【问题】

  • 为了获取真实物体的材质信息,往往需要使用的巨大的球形照相机群,不能广泛采用;
  • 用数据拟合的方法,需要从多个角度拍摄多张照片,或者拍摄一段物体旋转下视频信息,光照需要保持恒定,比较费时。

【解决方法】

本文试图从单张照片估计出物体的SVBRDF信息,作者使用了两个深度神经学习网络,分别用来估计统一的高光模型参数(Ward模型,也可以改做其他的,比如游戏中常用的ggx,左图)和随空间位置变化的漫反射模型参数和表面法线(右图)。

为了增加样本数量,作者使用了一种称为Self-augmentation的训练方法。对于输入的无标记照片,首先使用监督方法训练好的模型估计出SVBRDF参数,然后使用该参数,在CG软件中变换光照和视角,渲染出一张新的图片,然后再次利用深度网络估计出新的SVBRDF参数,以两个SVBRDF之间的偏差作为loss。

【结果分析】

优势:仅需要一张照片就可以获得物体的SVBRDF信息,算是目前最为简化的BRDF获取方式了。

不足:1)对于每一种材质,需要一个对应的神经网络,不同材质间无法通用,神经网络的泛化性比较低;2)对于照片有不少限制,比如物体需要是平面的,且光源需要离物体较远,认为类似于平行光源;3)如果高光变化较大,那么估计出的参数会不准确;4)在实际生产中,一般很少考虑BRDF随空间位置变化的情况,所以模型上应该可以进一步简化。

【应用落地】

他们组的一些论文,不限于这篇,可以用于使用手机等设备快速获取物体的BRDF信息,从而在游戏中创建出更加真实的基于物理的渲染效果。

虚拟现实/增强现实(VR/AR)

虚拟现实或增强现实领域是目前的产业和研究热点,包括以下细分领域:

● 周围环境的三维重建以及用户在环境中姿态的实时定位(SLAM)

● 减少VR眼镜造成的眩晕感

● 三维物体或角色本身的识别、扫描、重建和传输

● 针对全景图的渲染优化和传输优化

● 从环境照片中获取环境中的光照分布等

BundleFusion: Real-time Globally Consistent 3D Reconstruction using Online Surface Re-integration

原文链接:https://arxiv.org/pdf/1604.01093v1.pdf

演示视频:https://www.youtube.com/watch?v=keIirXrRb1k

【摘要】

作者使用常见的深度摄像头,采用层级结构进行SLAM构建,做到了环境模型的实时重建和修正,以及摄像机姿态的准确恢复和实时的闭环修正,基本思想是在连续的11帧内做跟踪,并筛选出稳定的特征,然后在以11帧为单位的整个序列帧上做闭环修正,降低了闭环修正发生的频率,并去除不稳定的特征信息。

【问题】

  • 之前的方法多采用bundle adjudgement来修正轨迹,确保摄像机能够回到原点,修正摄像机位置估计中的漂移误差,但是这种方法往往需要消耗较多的计算时间,无法用于实时的任务;
  • 因为摄像机动的太快,或者被遮挡,会造成跟丢的情况,摄像机恢复后的位置不易确定。

【解决方法】

作者使用常见的深度摄像头,采用层级结构进行SLAM构建:1)连续的11帧组成一个块,在这个块上,作者使用SIFT特征点来做摄像机姿态跟踪,并辅助以特征点的分布、缩略图中的点位置信息,完成该11帧时间范围内的姿态修正,并将新的深度信息及时更新到三维重建的模型中,将连续稳定的特征点整合在一起;2)在chunk之间(不是每帧都执行),再对一些关键帧进行全局优化,同时考虑稳定特征点、voxel的位置信息和法线信息在不同摄像机姿态下的对比,使用PCG方法做大规模稀疏矩阵(105k行,5k列)的方程求解,并根据全局优化前后的摄像机姿态差异,来决定是否将该帧数据从三维重建模型中去除,最后进行ICP修正更新三维模型。

【结果分析】

优势:使用单个普通的摄像机做到了实时(30FPS)、稳定、闭环的大场景三维重建和摄像机姿态位置定位,并且模型的准确率和之前offline的方法差别不大,而且不像之前的闭环处理方法,需要中断或者在做bundle adjustment时有延迟。

不足:1)使用了i7 cpu,一个nvidia gtx titan x来做场景重建,一个gtx titan black来特征点的匹配和全局优化等,计算资源要求比较高;2)在重建过程中,稳定特征点的差异会在全局优化过程中传播到多个帧,所以场景模型会存在细微的不断变化,同时作者在文中提到使用权重来更新三维场景模型,但是并没有详细叙述权重的算法,考虑到本文属于SLAM中dense的方法,而不是sparse的方法,所以没法获得每个voxel的位置信息的准确率或概率,所以更新的权重可能是人为设定的,这也导致新的数据(不太可能和之前数据完全一致,因为深度摄像机本身也存在噪点)会不断更新之前的场景模型,尽管比较细微;3)作者在闭环处理上,仍然沿用了传统的PCG优化方法,虽然算法上进行了改进,但是存在优化中矩阵规模随SLAM时间增加二次方增长的问题,虽然作者在limitation中没有提及,但是在文中提到在做了10分钟的SLAM后,优化矩阵有105k行,所以怀疑该方法在连续运行时间上存在限制。最新的基于sparse的方法isam2,使用树结构和概率做闭环处理,避免了这个问题,可以考虑和该方法的结合。4)因为使用结构光,所以不大可能在户外使用;5)已经有用于影视previs制作的摄像头位置姿态跟踪解决方案,比如ncam(http://www.ncam-tech.com/),使用sparse的方法,非常准确稳定,但是缺少本文对环境的三维重建。

【应用落地】

可以用于ar/vr领域,可以快速完成室内场景环境的扫描建模,且同时不受空间限制的获取当前位置和姿态信息(htc vive限制在4*4的范围内)

Real-time Geometry, Albedo and Motion Reconstruction Using a Single RGBD Camera

原文链接:http://www.guokaiwen.com/main.pdf

演示视频:https://vimeo.com/210761032

【摘要】

本文的基本思想是,运动物体的三维模型信息和材质信息可以互相辅助,轮流优化,从而在使用单一深度摄像头的情况下完成动态物体的三维重建和材质扫描。

【问题】

  • 有些方法依赖于一些预备工作或假设,比如人体的骨骼或身体的扫描;
  • 有些方法依赖于多个摄像头的融合处理,无法做到实时;
  • 多数方法没有做到同时恢复被跟踪物体的三维模型和颜色信息。

【解决方法】

作者使用voxel来表示非刚体,利用cvpr15论文dynamic fusion中的节点来控制物体的形变,先根据物体表面的颜色和光照信息(用SH来表示低频变化的光源)来估计voxel的运动,然后再根据前后几帧的运动信息来更新物体表面的颜色信息,在优化求解中使用了改进的PCG方法,并且对于发生碰撞的voxel(比如在衣服或袋子口合上的时候)不做更新,从而获得不错的跟踪效果,并能得到物体静态时的形状和颜色,FPS能到30帧左右。

【结果分析】

优势:不需要任何事先的准备工作,使用一个普通的深度摄像头,就可以做到非刚体的动态的捕捉和建模,并且包含了物体的颜色信息,比如穿裙子的人物,或者书包等任意形状的物体。速度在4-core Xeon E3-1230和GTX TITAN X上做到了30fps,精度在厘米级别(动态)。

不足:1)该方法假设物体表面是一致的漫反射,对于有高光反射的物体会存在问题;2)物体的重建精度受限于深度摄像头的精度;3)因为深度摄像头的帧率限制,所以对于快速运动的物体,因为帧与帧之间voxel变化大,以及存在动态模糊,会造成瑕疵;4)对于拓扑结构发生变化的物体,会存在建模上的问题;5)因为本文使用了voxel来表示物体,所以在网络传输时带宽要求比较高。

【应用落地】

可以用于vr/ar领域的交互,比如类似微软Holoportation(传送门)的效果,让远在千里之外的亲人和家人互动。

Accommodation and Comfort in Head-Mounted Displays

原文链接:http://www-sop.inria.fr/reves/Basilic/2017/KBBD17/SIG17_accommodation.pdf

演示视频:https://www.youtube.com/watch?v=0vMbiu2llQY

【摘要】

VR体验中会出现眩晕感,部分是由视觉辐辏调节冲突(vergence-accommodation)造成的。作者结合自动曲光计和可调节焦距的镜片,来测量人眼对不同远近的VR物体的刺激反应,得出目前解决VA冲突的三种方案哪种更为舒适。

【问题】

【解决方法】

下图分别为硬件原理图,使用自动曲光计测量人眼的对焦点,用可调节焦距的眼镜去匹配人眼对不同远近物体的刺激响应。

【结果分析】

优势:作者经过实际测量发现可调节镜片能比另外两种方法得到更为准确、也更舒适的VR呈现效果,为将来发展更好的VR显示设备提供了方向。值得进一步关注。

不足:目前假设眼球是不动的,如何配合眼球追踪技术,可以得到更好的效果。

【应用落地】

更为舒适,眩晕感更少的VR显示设备。

O-CNN: Octree-based Convolutional Neural Networks for 3D Shape Analysis

原文链接:http://wang-ps.github.io/O-CNN_files/CNN3D.pdf 演示视频:暂时没有

【摘要】

本文使用了类似openvdb的思路,对三维信息进行压缩,并且使用平均的法线来表示voxel中三维特征,在三维物体识别、segmentation、形状提取等方面有应用价值。

【问题】

  • 现在获得物体的三维立体扫描数据越来越方便,比如RGB-D摄像头、结构光扫描设备,三维模型数据越来越多,但是如何从数据中提取物体特征信息尚无定论;
  • 三维信息的内存占用和计算量随三维物体尺寸的三次方增加。

【解决方法】

使用了类似openvdb的思路,对三维信息进行压缩,仅存储非空的voxel信息。使用shuffle key来编码voxel的序号,使用Lable数组来存储当前层中哪些voxel是被物体表面占据的,然后采样物体表面的点的法线平均值作为当前voxel的特征,最后进行3d-cnn的计算。

【结果分析】

优势:1)在计算时间和内存占用上,相对不压缩的方法有近10倍的提升,且在物体识别和segmentation上和之前的方法准确度基本一致。2)对于将来如何利用cnn处理巨大的高精度的三维信息提供了更好的基础,比如去噪点、相似性比较或场景分析。

不足:1)如果针对物体的不同部分的几何特征,采用不同的voxel尺寸,可能会进一步提高效率;2)本文仅考察了3d-cnn网络,对于深度学习中的其他重要网络,比如rnn,resnet的结合应用还没有研究,可能会有新的突破。

【应用落地】

大场景或高精度模型的去噪点、识别或者segmentation。

NEXT技术快报:快速扫描学术/技术前沿进展,做出必要的分析归纳,寻找它们在产品中落地的可能性。希望能帮助大家了解前沿,拓宽视野,提高决策效率。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

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

编辑于

TomZheng的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FSociety

Python实现「碟中谍」5W条评论可视化

本篇文章会针对用户在猫眼上对于「碟中谍6」的评论进行一个可视化分析,我们总共采集了44872条用户评论,文章内容包括:

1183
来自专栏AI科技评论

开发 | 如何从零训练神经网络玩游戏?这里有一段详细的解读视频

AI科技评论消息,最近,Youtube 上的知名游戏博主 SethBling 训练了一个叫 MariFlow 的神经网络来玩 Mario Kart 游戏。在进行...

3697
来自专栏大数据挖掘DT机器学习

【案例】SPSS商业应用系列第2篇: 线性回归模型

商业保险公司希望通过分析以往的固定资产保险理赔案例,能够预测理赔金额,借以提高其服务中心处理保险理赔业务的速度和服务质量,并降低公司运营风险。业界领先...

3697
来自专栏量子位

哈佛用NBA比赛数据生成报道,评测各模型效果 | 数据集+论文+代码

安妮 编译整理 量子位出品 | 公众号 QbitAI 近日,哈佛大学的三名研究人员公开发表论文《Challenges of Data-to-Document G...

3498
来自专栏贾志刚-OpenCV学堂

我为什么要写《OpenCV Android 开发实战》这本书

2015年我出版了个人第一本关于图像处理方面的书籍《Java图像处理-编程技巧与应用实践》,这本书主要是从理论与编码上面详细阐述了图像处理基础算法以...

1223
来自专栏磐创AI技术团队的专栏

中文文本相似度计算工具集

作者 | fendouai 编辑 | 磐石 出品 | 磐创AI技术团队 ---- 【磐创AI导读】:前两篇文章中我们介绍了一些机器学习不错的项目合集和深度学习入...

5025
来自专栏MixLab科技+设计实验室

用word2vec解读延禧攻略人物关系

本文结合最近热播的电视剧《延禧攻略》,对其人物的关系在数据上进行解读。通过从网上收集相关的小说、剧本、人物介绍等,经过word2vec深度学习模型的训练,构建人...

1564
来自专栏张俊红

数据分析学习笔记——数据可视化

数据分析学习笔记系列——数据可视化 总第45篇 ▼ 写在前面: 本篇来源于书籍《数据之美—一本书学会可视化设计》的学习后整理所得。全篇主要围绕数据可视化的5个步...

3319
来自专栏PPV课数据科学社区

【学习】详解数据挖掘十大经典算法!

国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖...

3607
来自专栏AI科技大本营的专栏

超越ImageNet?李飞飞力赞高徒的视频描述研究入选计算机视觉最前沿的十大论文

论文作者:Ranjay Krishna, Kenji Hata,Frederic Ren, Li Fei-Fei, Juan Carlos Niebles S...

40011

扫码关注云+社区