多米诺平铺:一种用于可变高度场渲染的实时构建整体网格的新方法
Domino Tiling: A New Method of Real-Time Conforming Mesh Construction for Rendering Changeable Height Fields
-
摘要: 1.该文创新点本文提出了一种面向GPU的规则高度场的新绘制方法,该方法采用区块平铺的绘制方式生成一个自然连续的三角网格。本算法与其他的网格平铺算法有很大的不同——本算法对非规整结构采用数据独立的半规则网格进行平铺。本算法通过一个离线过程创造了一个高效存储的完全的网格模板集合,在运行时该模板集合被存储在图形适配器的存储器中。在绘制时,对于每一片区块,从预先计算好的网格模板中选中一种,然后使用这种模板绘制。选中的网格模板合适于所要求的区块细节层次,就象在多米诺游戏中那样,确保和相邻的网格模板无缝连接。通过将区块按照四叉树层次分组的方法可以实现本方法的可扩展性。高度场地形表示的实验结果证明本方法高效——本方法达到了高帧率,并且在允许子像素级误差的高分辨率的视口中支持三角形吞吐量。本文测量了实时变换高度场的帧率敏感度,结果显示本方法足以胜任并且非常适用于处理迅速变换的高度场的应用项目。2.实现方法2.1 预处理过程本算法通过一个离线过程创造了一个存储器使用高效的完全的网格模板集合,在运行时该模板集合被存储在图形适配器的存储器中。2.2 网格模板选择过程在绘制时,对于每一片区块,从预先计算好的网格模板中选中一种,然后使用这种模板绘制。选中的网格模板合适于所要求的区块细节层次,就象在多米诺游戏中那样,确保和相邻的网格模板无缝连接。2.3 网格渲染过程模板查询矩阵中的每一条记录与一个可见的高度场曲面片匹配,并且每一条记录是单独渲染的。高度场曲面片的渲染过程以模型空间变换和相应的纹理空间变换开始,在模型空间变换中把坐标系原点放在相应区块的左下角。对于给定的区块,这些变换是固定不变的。模板的索引值用于获得模板的长度和相对PMT的偏移量。最后,渲染此给定的三角形条带。顶点着色模块根据纹理样例计算每个顶点距离三角条带的高度。2.4 区块分组本文通过层次分组减少渲染的区块数量。前面使用的区块被称为基本区块,经过区块分组后形成的区块被称为合并区块。区块分组过程是基于完全四叉树的过程。树叶是基本区块,与基本的树结构的数字分级相反,第0级是树叶,一直向树根级数逐渐变大。2.5 动态高度场变化增加一个简单的步骤,多米诺区块方法对于动态变化的高度场也是有效的。本步骤是可选的,并且独立于前面的步骤。(参见论文5.4节)3.结论及未来待解决的问题本文提出了一种构造整体三角形网格的新方法,该方法用来把高度场片段表示成方形区块。整个表面网格由复杂程度不同的数据独立的区块网格模板连接组装而成。沿着相邻网格模板边的顶点布局的匹配方法和多米诺游戏中多米诺骨牌的铺设方法完全一样。所有的网格模板由一个离线过程产生,并且在预处理阶段储存在GPU储存器中。当摄像机移动时,本算法为每一个区块选取合适的网格模板,并计算允许的屏幕空间误差和网格模板连接方式,用来形成一个无缝的整体网格。网格模板数据独立性使得本方法合适于实时可变化高度场的交互展示。本文提出的区块分组算法体现了本方法蕴含的可扩展性。在相对较大的数据集上的实验结果验证了本方法的效率。当渲染一块动态的中等变化程度的高度场时,在可接受的帧率下,本方法达到了所需求的视觉精确度。实验结果显示最佳的区块大小依赖于数据集。对于分析过的数据集和相应的最佳区块大小,与相应的渲染时间相比,选择合适的网格模板的时间开销(CUDA实现)是微不足道的。后续研究工作可以面向一种创造一个更加局部化的自适应的整体网格的方法,这个网格可能允许更好的区块分组。研究对于动态的大规模的高度场变化的最佳区块尺寸的自适应的判断方法能够提升总体的效果。同时,作为支持动态大规模变化的海量( out-of-core)高度场渲染系统的一部分,该系统将使本方法充分的可扩展性得以展现,并且将使本方法能够得到进一步的评价和实现。4.实用价值或应用前景本文提出了一种实时整体网格的构造方法,该方法适用于渲染变化的高度场。高度场通常用来表示描述了点的高度或深度的表面。高度值存储在2维网格(矩阵)中,每一个节点是一个高度(深度)值。最常见的高度场例子是地形或液体表面的表示。不过,高度场表面也可以由物理现象产生,如地震波的传播;或由生物现象产生,比如一个观查区域中某种迅速繁殖的微观物种的分布;或由技术现象产生,比如在大城市中的能量消耗;或由社会现象产生,比如一个村庄中的人口变化。虽然地理数据通常变化得很慢,但是也有例外,比如大规模的灾难事件仿真,像小行星碰撞、火山爆发、雪崩、地裂形成等。而且,对于用高度场表示的一些地理或其他现象,尽管不是实时变化的,但是可以用可视化的方法来实时模拟。我们可以预先收集或仿真这些变化,可以用实际的一秒对应任意长的时间——从一小时到百万年,这样的例子有沙丘运动、冰川运动、土壤侵蚀等。Abstract: In this paper we present a novel GPU-oriented method of creating an inherently continuous triangular mesh for tile-based rendering of regular height fields. The method is based on tiling data-independent semi-regular meshes of non-uniform structure, a technique that is quite different from other mesh tiling approaches. A complete, memory efficient set of mesh patterns is created by an off-line procedure and stored into the graphics adapter's memory at runtime. At rendering time, for each tile, one of the precomputed mesh patterns is selected for rendering. The selected mesh pattern fits the required level of details of the tile and ensures seamless connection with other adjacent mesh patterns, like in a game of dominoes. The scalability potential of the proposed method is demonstrated through quadtree hierarchical grouping of tiles. The efficiency is verified by experimental results on height fields for terrain representation, where the method achieves high frame rates and sustained triangle throughput on high resolution viewports with sub-pixel error tolerance. Frame rate sensitivity to real-time modifications of the height field is measured, and it is shown that the method is very tolerant and consequently well tailored for applications dealing with rapidly changeable phenomena represented by height fields.