Interviews3D: APlatform for Interactive Handing of Massive Data Sets 读后感

横向比较:

Inadequacy of current system design( 现代系统和一些软件的不足)

 软件特点:

Output sensitivity

Out-of core data handing

Incremental updates

Scalabity

Visibility-guided rendering

作者对所有节点赋予了可见性权值,该权值影响节点在 (外存-内存-显存)交换中的优先度。

整体架构:

Queuing occlusion queries

GPU向CPU发送命令时具有一定的延迟,所以如果利用深度优先搜索整个队列会造成CPU在等待GPU的命令时,不再向GPU发送命令,GPU无命令

执行而轮空的现象。所以可以利用一个查询队列,改为广度优先搜索。

广度优先遮挡查询:

                                          (1)向GPU发送所有相互需要查询的节点,并把该节点加入到查询队列中。

                                          (2)当要查询的节点发送完毕后,利用API查询该队列首项是否收获查询结果

                                                    (2-1)如果有结果:

                                                               (2-1-1)可见:则把其子节点继续发送到查询队列

                                                               (2-1-2)不可见:无操作

                                                   (2-2)没有结果:则按照上一帧可见性进行处理,重复2-1-X,

                                           (3)继续查看队列下一个节点

Frame to frame coherence

利用帧与帧的连续性维护kdTree和进一步优化遮挡查询的对象(只有最后渲染的对象,才能获得真正是否可见的信息)。

                                           假定上一帧可见对象仍然均可见,则不再对其进行遮挡查询,并且优先渲染,每次仅从其不确定的父节点进行重新查询,

                                           查询不可见节点。那么什么时候更新这些假定可见节点的可见信息呢?

 LOD

Two-level cache mechanism

 两级缓存,此外还有一些系统应该具有的基本设定如内存管理,资源管理。

VRAM management

作者提到优先对显存也进行划分。这是我之前想偷懒而没去思考的地方,看来我的显存管理器还是要改进的。。

终于到最后的Performance了!

 

   16G Data 700,000 objects 350 M polygons 20+FPS(07 Video)

 

 

原文地址:https://www.cnblogs.com/lydyy/p/3521781.html