CN101488235A - 针叶类植物冠层的层次细节模型构造方法 - Google Patents
针叶类植物冠层的层次细节模型构造方法 Download PDFInfo
- Publication number
- CN101488235A CN101488235A CNA2008100562554A CN200810056255A CN101488235A CN 101488235 A CN101488235 A CN 101488235A CN A2008100562554 A CNA2008100562554 A CN A2008100562554A CN 200810056255 A CN200810056255 A CN 200810056255A CN 101488235 A CN101488235 A CN 101488235A
- Authority
- CN
- China
- Prior art keywords
- model
- needle
- line
- error
- cylinder
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 241000218631 Coniferophyta Species 0.000 claims abstract description 29
- 238000010276 construction Methods 0.000 claims abstract description 12
- 238000009877 rendering Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 241000196324 Embryophyta Species 0.000 abstract description 17
- 230000000694 effects Effects 0.000 abstract description 6
- 230000006835 compression Effects 0.000 abstract 1
- 238000007906 compression Methods 0.000 abstract 1
- 238000004422 calculation algorithm Methods 0.000 description 13
- 230000000007 visual effect Effects 0.000 description 8
- 238000005070 sampling Methods 0.000 description 7
- 239000013598 vector Substances 0.000 description 6
- 235000018783 Dacrycarpus dacrydioides Nutrition 0.000 description 5
- 244000288671 Dacrycarpus dacrydioides Species 0.000 description 5
- 235000008331 Pinus X rigitaeda Nutrition 0.000 description 5
- 235000011613 Pinus brutia Nutrition 0.000 description 5
- 241000018646 Pinus brutia Species 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 241000218691 Cupressaceae Species 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 241000351396 Picea asperata Species 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 241001061225 Arcos Species 0.000 description 1
- 244000050510 Cunninghamia lanceolata Species 0.000 description 1
- 235000003332 Ilex aquifolium Nutrition 0.000 description 1
- 235000002296 Ilex sandwicensis Nutrition 0.000 description 1
- 235000002294 Ilex volkensiana Nutrition 0.000 description 1
- 235000005456 Pinus sylvestris var mongolica Nutrition 0.000 description 1
- 241000114025 Pinus sylvestris var. mongolica Species 0.000 description 1
- 241000168036 Populus alba Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000035772 mutation Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本方法是一种针叶类植物冠层的层次细节模型构造方法。当针叶在图像空间的投影宽度大于一个象素值时,采用圆柱模型描述针叶,并且根据距离的远近,圆柱模型被自动地进行多边形化而表示成棱边数目不同的棱柱。如果距离继续增大,使得针叶在图像空间的投影宽度小于一个象素值,此时圆柱模型退化成线模型,从而极大程度地降低模型的几何复杂度。此外,线和线之间还能进行合并操作,可以用少量的线表示整个树冠,实现针叶几何模型的进一步压缩。为了正确描述子象素空间的信息,增强绘制的真实效果,本方法中采用的线模型为半透明类型,每根线的透明度值取决于植物体与视点的距离,及其对应的简化误差。
Description
技术领域
本发明属于计算机图形学与数字农林学相结合的交叉学科研究成果。适用于针叶类这一特殊而常见的植物物种的快速绘制。可用于城市可视化,园林设计,飞行模拟,虚拟现实和电脑游戏等应用中,以及辅助农林学家可视化其研究对象。
背景技术
植物场景的绘制是计算机图形学中一个重要的课题。许多涉及到户外场景的应用,如城市规划,园林设计等,都需要在已有场景中增加植物模型,并对它们进行渲染,以增强绘制结果的真实感。但植物通常具有繁多的几何细节,它们的加入将导致绘制速度下降而达不到实时的要求。因此在保证真实感的前提下如何提高绘制速度是一个关键问题。如果场景中包含了针叶类植物,该问题会更加突出。这是因为相对于其他同龄的或同体积大小的植物物种,针叶类植物包含更多的树叶和树枝。此外,细小的针叶在绘制时会带来严重的走样现象,而反走样处理会增加绘制的负担,进一步降低绘制效率。
为了提高植物场景的绘制速度,人们陆续提出了各种算法。大部分算法采用纹理图像代替原复杂几何模型来加速绘制。典型代表为Rohlf和Helman 1994年采用的广告牌方法(Billboard)。该方法通常在预处理中确定一系列采样视点,在每一个视点方向,对植物体进行绘制,并把绘制结果作为纹理图像保存下来。而在实时绘制时,根据当前视点信息,找到与其最邻近的采样视点,然后对这些采样视点相对应的纹理图像进行插值,插值得到的图像即作为当前视点的渲染结果图像。在所有植物绘制的加速算法中,基于图像的算法绘制速度最快,且绘制时间与植物场景的几何复杂度无关。但是这种方法需要消耗很大的内存来存储纹理图像,并且因为缺少植物的几何信息,绘制近距离植物时真实感和视差效果都较差。图2(a)和图2(b)显示了用此方法绘制森林时的结果图,其中图2(a)为绘制近距离树木的结果,图2(b)为绘制远处树木的结果。另外有人采用点代替三角形来描述在图像空间的投影面积小于一个象素的树叶。这种方法具有很高的绘制效率。但它只适用于远距离植物的绘制;并且它会平滑掉植物的一些尖锐特征,降低绘制结果的真实度;此外离散的点还会破坏植物的拓扑结构。图3(a)和图3(b)分别为Deussen在2002年采用的基于点的方法绘制草地和森林时结果图。最近几年,针对植物,提出了基于多边形的方法。多边形,特别是三角形模型一直是计算机图形学的主流模型,因此人们在面片简化方面研究很深入,提出了很多成熟的层次细节算法,如vertex decimation,edge collapse,vertex clustering等。但由于树木特殊的属性,这些算法通常可以用于树干的简化,对于树叶部分,则会产生错误的结果。为弥补这一缺陷,针对树叶,从2002年起,Remolar等人陆续提出了几种简化算法。其关键步骤称之为leafcollapse,即用一个新的叶子代替原来的两片叶子(如图4所示)。通过迭代地进行leaf collapse操作,就能不断减少用于表示树叶的多边形的数目,同时保持树冠外形(如图5(a)和图5(b)所示,其中图5(a)为原始模型,图5(b)为使用leaf collapse简化后的模型)。但这类方法绘制效率很低,而且只适合阔叶类树叶的简化,在简化针叶类植物时,不能忠实地保持它们的物种特征(如图11(a)、图11(b)和图11(c)所示)。
以上介绍的是一般性的方法,适用于所有的植物物种。此外也有人针对针叶类植物,专门提出了一些绘制算法。这些算法通常采用圆柱模型(Disney等,2006年)或者椭圆体模型(Smolander等,2003年)来描述针叶,如图6(a)、图6(b)、图6(c)和图6(d)所示。其中图6(a)和图6(b)分别为采用椭圆体模型表示针叶后在45度视角和俯视情况下的结果图;图6(c)和图6(d)分别为采用圆柱模型表示针叶后在45度视角和俯视情况下的结果图。这两种表示方法在绘制近距离的针叶时能取得很真实的结果。但由于它们是静态模型,因此存在绘制代价高,效率低下的问题。而且无论是采用圆柱模型还是椭圆体模型,当针叶距离视点很远时,都会产生严重的走样现象,导致漫游时图片不停闪烁。为了改善这一问题,Meyer等人在2000年根据树的拓扑结构,在预处理阶段对针叶建立了三级离散的层次细节模型。第一级模型采用圆柱表示每一根针叶;第二级模型用圆锥表示一束针叶;最后一级模型采用圆柱表示一根树枝上的所有针叶(如图7所示)。在绘制阶段,则根据树木与视点之间的距离,自动采用三级模型中的某一级来表示针叶。该方法能够提高绘制速度,且能克服走样现象。但由于采用的是离散的层次细节模型,这导致在从一级层次过渡到另一级时,会出现明显的跳跃现象。
发明内容
本发明欲解决的技术问题是如何简化针叶类植物的树叶部分,建立树叶的多分辨率表示,以及绘制时如何选择合适的分辨率表示代替树叶复杂的完整表示,最终达到实时的目的,并保证绘制结果的真实感。本发明由预处理和实时绘制这两个部分组成。在预处理阶段中,需要建立针叶的圆柱表示和线表示,其中圆柱被表示成一系列的棱柱模型。另外还需迭代地进行线合并操作。在预处理结束之时,需要把所有简化过程的数据,包括几何数据、简化关系、简化误差等,存入硬盘。在实时绘制阶段,则首先读入存放在硬盘中的简化数据,然后根据当前视点与针叶树木的距离,选取合适的细节层次对针叶进行绘制。最终实现当针叶距离视点很近时,即针叶在图像空间的投影的宽度大于一个象素时,针叶采用圆柱表示;当针叶距离视点足够远,即针叶在图像空间的投影的宽度小于或等于一个象素时,针叶采用线模型表示;而当针叶与视点之间的距离继续增大时,针叶仍采用线模型表示,但描述树冠的线的数目随着距离的增大而逐渐减少。
具体的,本发明提出一种针叶类植物冠层的层次细节模型构造方法,其特征在于,包括以下步骤:
1)输入针叶树模型,提取树叶部分信息;
2)建立针叶的圆柱模型表示,即把圆柱多边形化,表示成一系列边数连续变化的棱柱;
3)建立针叶的线模型表示,即用圆柱的中心线表示针叶;
4)迭代地执行线合并操作,直到整个树冠用一根线表示;
5)采用统一表示法表示简化误差,并将其保存到硬盘中;
6)把简化误差从硬盘读入内存,开始实时绘制;
7)根据当前视点信息和简化误差,确定针叶合适的细节层次模型;
8)把相应细节层次模型的几何数据送往GPU进行绘制。
进一步,所述圆柱模型表示包括首先定义一个值,Lmax,该值确定了圆柱被多边形化时最精细的棱柱的边的数目;然后圆柱被多边形化为一系列的棱柱,这些棱柱的边数由Lmax连续变到3。
进一步,所述线模型表示是指采用线模型代替多边形模型来表示远距离的针叶。
进一步,在所述线模型表示中为每根线定义了透明度,其由相机与针叶之间的距离,以及简化误差决定。
进一步,所述线合并操作包括:首先用一个代价函数在所有线对中选取出一对,然后用一根线代替这两根线,并且使新产生的线保持被其取代的两根线的空间位置,法向属性。
进一步,所述简化误差的统一表示法包括:采用了同一个树状数据结构存储,所述树结构的上半部分为二叉树形式,它记录了线合并操作的信息,而下半部分记录了圆柱多边形化过程的数据。
进一步,所述树状数据中的每一个节点都保存简化误差以及对应的几何数据的存储位置。
进一步,所述确定针叶合适的细节层次模型是指根据相机的信息以及相机与待绘制的针叶树之间的距离,把用户定义的象素误差转换成空间误差;接着根据空间误差对保存了简化关系数据的树结构进行遍历,直到遇到简化误差小于空间误差的节点,这些节点即组成针叶树合适的细节层次模型。
本发明利用混合模型—多分辨率圆柱模型和半透明线模型,来表示远近距离不同的针叶,并提出了线合并操作来减少线模型的数目。此外,对于每一级转变,都定义了误差,使得各级层次细节模型之间能根据距离视点的远近程度实现自动且平滑的过渡。多个树种的测试说明本发明能够有效地简化常见的针叶,建立连续的层次细节描述,并能在各种视点及观察方向下保持树冠的形状,有效克服走样现象,提高绘制速度,并保证绘制结果的高真实感。
附图说明
图1是本发明的流程图;
图2(a)是传统的基于图像的算法绘制近距离树木的结果图;
图2(b)是传统的基于图像的算法绘制远处树木的结果图;
图3(a)是传统的基于点的算法绘制草地时的结果图;
图3(b)是传统的基于点的算法绘制森林时的结果图;
图4是树叶合并操作示意图;
图5(a)是一棵树的原始模型;
图5(b)是采用传统的基于多边形的方法简化后的结果;
图6(a)是采用传统的椭圆体模型表示针叶在45度视角的结果图;
图6(b)是采用传统的椭圆体模型表示针叶在俯视情况下的结果图;
图6(c)是采用传统的圆柱模型表示针叶在45度视角的结果图;
图6(d)是采用传统的圆柱模型表示针叶在俯视情况下的结果图;
图7是传统的针叶的三级离散层次细节模型;
图8是本发明用于存储简化数据的树状数据结构;
图9(a)是本发明采用8-棱柱表示针叶的结果图;
图9(b)是本发明采用3-棱柱表示针叶的结果图;
图9(c)是本发明采用3-棱柱和线模型表示针叶的结果图;
图9(d)是本发明采用线模型表示针叶的结果图;
图9(e)是本发明采用少量线表示针叶的结果图;
图10(a)是采用传统的三角形表示针叶的绘制结果;
图10(b)是采用本发明的圆柱模型表示针叶的绘制结果;
图11(a)是松树、柏树和云杉的原始模型;
图11(b)是采用传统的基于多边形的方法的简化结果图;
图11(c)是采用本发明的简化结果图;
图12是采用本发明绘制处于不同位置的四棵松树的结果图;
图13是本发明绘制针叶、阔叶混合林的结果图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本方法的核心在于针叶的圆柱模型表示与线模型表示方法,以及线合并操作。方法具体包括8个步骤,其中前5个步骤在预处理阶段完成,后3个步骤在实时绘制阶段完成。
1、首先输入针叶树模型,提取树叶部分信息。
2、建立针叶的圆柱模型表示,即把圆柱多边形化,表示成一系列边数连续变化的棱柱。
3、建立针叶的线模型表示,即用圆柱的中心线表示针叶。
4、迭代地执行线合并操作,直到整个树冠用一根线表示。
5、保存树叶简化过程中的所有信息到硬盘中。
6、实时绘制时开始时,把简化数据从硬盘读入内存。
7、根据当前视点信息和简化记录,确定针叶合适的细节层次模型。
8、把相应细节层次模型的几何数据送往GPU进行绘制。
图1给出了整个方法的流程,以下具体详述各步骤中采用的方法。
1.针叶的圆柱模型表示法
采用圆柱模型或者椭圆体模型表示近距离的针叶都能取得真实感很高的渲染结果。但用OpenGL显示这两种模型时需要对它们先进行多边形化操作,相对于圆柱模型,椭圆体的多边形化过程更为复杂。为此,本方法采用了圆柱模型表示在图像空间的投影宽度大于一个象素的针叶。并且为了实现与视点相关,圆柱被多边形化成一系列边数连续变化的棱柱,即对圆柱建立多分辨率模型。这样在实时绘制的时候,就可根据针叶与相机之间的距离,以及用户给定的允许误差,自动地选取合适的分辨率表示对针叶进行绘制。
本方法首先由用户定义一个值,Lmax,该值确定了圆柱被多边形化时最精细的棱柱的边的数目。然后圆柱被多边形化一系列的棱柱,这些棱柱的边数由Lmax连续变到3。所有棱柱的信息在预处理结束时都存入硬盘。
建立了圆柱的多分辨率模型之后,在实时绘制时,当给定视点信息,需要确定棱柱的棱边数,以采用合适的细节模型。本方法沿袭了圆形被多边形化时采用的误差控制方法。已知一个半径为R的圆用一个具有m条边的多边形表示时的误差为R×[1—cos(π/m)],此处的误差为空间坐标的误差,而本方法采用的是象素误差。因此当用户给定一象素误差ε后,需首先根据当前相机的信息(即相机的视野角度θ)、投影屏幕的高度W以及相机与针叶之间的距离Dtree,得到相应的空间误差e=2×ε×Dtree×tan(θ/2)/W,然后根据已知的误差公式反推出棱柱的边数n=π/arcos(1-ρ),其中ρ=e/R。该公式可表示成另外一种形式:
其中Pi=1-cos(π/i)。
由此公式可知,当ρ<2时,圆柱可以被多边形化而变成具有一定边数的棱柱。而当ρ≥2时,即使是3-棱柱也包含了太多细节,在这种情况下,圆柱模型将退化成线模型。
2.针叶的线模型表示法
当针叶在图像空间的投影宽度等于或小于一个象素时,采用线模型表示针叶。相对于其它的图元,如点和多边形,线模型能够更好地描述远距离针叶。这是因为当针叶足够远时,其投影形状和线最相似。
虽然针叶的半径大小有区别,本方法采用统一宽度的线模型,线的宽度为一个象素。描述每根针叶的圆柱的中心线即为对应的线模型。为避免针叶在采用线表示后,颜色,光照发生突变,线模型的两个端点的法向量相等,其值等于原始针叶模型对应的三角形的法向量(原始模型中,每根针叶用一个三角形表示)。而由圆柱的误差公式可以推出圆柱表示成线后的误差为2R,其中R为圆柱的半径值。
当针叶与视点之间的距离继续增大时,针叶在图像空间的投影宽度会变小,小于一个象素值。为了真实地反映这一现象,本方法为每根线引进了另外一个属性—透明度。通过调节透明度值来表示子象素级别上的细节变化,其中透明度的定义如下:
T(ρ)=2/ρ (ρ≥2)
由此可见,针叶距相机越远,对应的线模型就越透明,即表示针叶的投影面积越小。
3.线合并算法
当针叶类树木离视点足够远时,可只用一部分的线表示整个树冠。一个简单的方法即根据距离的远近,采用随机采样的形式从所有线中抽取一部分来表示树冠中的树叶。但随机采样的方法由于采样的不可控性,可能导致树冠中某一处或几处因为没有采样到或者采的样本过少而形成空洞,而产生错误的结果。为了避免这个问题,本方法提出了线合并操作来实现用少量的线表示远距离树冠的这一目的。
所谓线合并,即用一根线代替两根线,并使新生成的线保持被其取缔的两根线的空间位置,法向等属性。具体过程为:首先在参与合并的两根线的4个顶点中找到距离最远的两个顶点,这两个顶点即为新生成的线的两个端点。接着求这两个顶点的法向量。它们的值相等,可通过下面的公式求取。
N(X)=(G(Y1)*N(Y1)+G(Y2)*N(Y2))/(G(Y1)+G(Y2))
其中为X是新生成的线,Y1和Y2是参与合并的两根线,N(*)是线*的两个端点的法向量,G(Y1),G(Y2)是它们的合并次数,它记录了被该线模型表示的针叶的数目。
3.1代价函数
为了确保每次合并的针叶对即为当前最适合合并的针叶对。本方法定义了一个代价函数,用于估计每两根线的差异。两根线越相似,代价值就越小,因此也就更适合合并。该函数包含3项指标,分别为方向差异指标,空间位置差异指标和合并次数差异指标。它们的含义和定义如下:
1.方向差异指标衡量两根线的共线程度。表达式为:
S1(X,Y)=1-|<T(X),T(Y)>|
其中T(X)和T(Y)分别表示两根线的方向矢量,<*,*>求两个向量的内积。这样得到的S1(X,Y)的值会在0和1之间,并且两根线越共线,S1(X,Y)的值越小。
2.空间位置差异指标表示了两多根线之间距离的远近程度。公式采用了Hausdorff距离,并经过归一化运算。具体公式如下:
S2(X,Y)=min{d(p1,p2);p1∈X,p2∈Y}/DimTree
其中DimTree为树冠的直径,即为树叶包围盒的直径,因为它的值是两个多边形的最大可能距离值,所以用它来归一化Hausdorff距离可保证S2(X,Y)的值域范围为[0,1]。S2(X,Y)值越小,表明线X和Y靠得越近。
3.合并次数差异指标。一根线的合并次数值代表着被它替代即简化的针叶的数目。通常认为具有相近合并次数值的叶对更适合合并,并且合并次数值小的叶对应该比合并次数值大的叶对优先合并。综合这两个观点,可得到下面的公式:
S3(X,Y)=[G(X)+G(Y)+|G(X)-G(Y)|]/(2×N)
其中G(X)和G(Y)分别为X,Y这两根线的合并次数。N为未简化时树冠中针叶的数目,它的作用在于限定S3(X,Y)在[0,1]范围内取值。
本方法采用的代价函数即为这3项指标所组成的线性函数,具体表达式如下:
S(X,Y)=k1×S1(X,Y)+k2×S2(X,Y)+k3×S3(X,Y)
其中ki>0,且k1+k2+k3=1。在实际应用中,这三个参数的取值如下:k1=0.25,k2=0.25,k3=0.5。
3.2合并误差
本发明涉及到了三种误差:圆柱模型多边形化成不同的棱柱表示针叶时的误差、线模型表示针叶时的误差、以及线合并操作带来的误差(或称之为用少量线表示整个树冠时的误差)。为了实现各层次细节模型之间的平滑过渡,需要对这三种误差采用统一的形式。前两种误差由同一个公式得到,因此它们实际上是一致的。为了跟前两者统一,线合并误差被定义如下:
e(X)=2×max{D(Yi,X)+e(Yi)/2;i=1,2}
D(Yi,X)=max{proj(pj,X);pj∈Yi,j=1,2}
其中X是线合并操作中新生成的线,而Y1和Y2是两根参与合并的线,e(Yi)是Yi的合并误差,p1和p2是一根线的两个端点,proj(pi,X)是点pi到线X的投影距离。
对每一根线,以它为中心线,并以它的合并误差的一半为半径建立一个圆柱。则两根参与合并的线对应的两个圆柱将落在新生成的线对应的圆柱中。而前面提到,线模型表示针叶时的误差为2R,其中R是对应圆柱的半径。由此看见,这样定义的合并误差能够和前两种误差保持一致。
4.简化数据的存储
在预处理结束之时,针叶的圆柱模型表示、线模型表示、以及线合并操作过程的数据,包括几何数据和简化关系信息,都存入硬盘。其中圆柱和线(包括合并前的线以及合并中新生成的线)的几何数据分别以数组的形式存在两个文件中。而简化关系数据则采用了同一个树状数据结构(见图8)保存。该树结构由两个部分组成,其中上半部分为二叉树形式,它记录了线合并操作的信息,而下半部分记录了圆柱多边形化过程的数据。树中的每一个节点都保存了对应的简化误差以及对应的几何数据的存储位置。这个树结构的顶点表示了待绘制针叶树的最粗糙的描述,即整个树冠由一根线表示。越往下,树冠的描述越精细。树结构的叶节点即表示了针叶树树冠细节最丰富的描述,此时每根针叶由一个具有Lmax条边的棱柱表示。
5.与视点相关的细节层次模型
实时绘制时,首先把预处理时存入硬盘的数据读入内存。然后根据相机的信息以及相机与待绘制的针叶树之间的距离,把用户定义的象素误差ε转换成空间误差e。接着根据空间误差e,对保存了简化关系数据的树结构进行遍历,直到遇到简化误差小于e的节点,这些节点即组成针叶树合适的细节层次模型。最后把这些节点对应的几何数据送往GPU进行绘制即可。一旦视点改变,需要重新计算空间误差并重新遍历树状结构,以更新细节层次模型。
但每次都由顶点往下进行遍历非常耗时,尤其当树木的树叶很多时。为此,本方法把存储简化关系数据的树状结构分成了三个部分,每一部分保存一种针叶表示模型的简化关系数据。这三种针叶模型分别为:合并操作中新生成的线,合并操作进行前的线,或称之为原始线,以及圆柱。对每一部分计算简化误差范围。在开始遍历时,先判断当前空间误差e属于哪个误差范围,然后就从哪部分开始往下遍历。这样就可减少遍历的时间,加快层次细节模型提取的速度,提高绘制效率。
实验结果与结论
用C语言实现了本发明所描述的方法,并用于了几种常见针叶的简化。所有的实验都是在一台P4 2.8G、512MB内存、操作系统为Windows xp的PC机上完成的,显示部分使用了标准的OpenGL图形函数库。
图9(a)到图9(e)五幅图显示了本方法简化针叶的整个过程。随着用户给定的象素误差不断增大,针叶的表示从8-棱柱慢慢转变到3-棱柱,然后过渡到线,最后是更少的线。
图10(a)和图10(b)显示了分别用三角形和圆柱表示针叶时的绘制结果。其中图10(a)中的每根针叶表示成一个三角形,而图10(b)中每根针叶表示成一个圆柱。可以看出采用圆柱模型的绘制结果的真实感效果远远高于采用三角形得到的结果。
现有的基于多边形的树叶简化算法在简化针叶时,虽然能保持树冠的外形,但它们不能保持针叶类植物的特征,简化后的针叶会变成阔叶。而本方法能避免这个问题。图11(b)和图11(c)显示了已有树叶简化算法与本方法简化结果的比较。在此比较中,采用了三种常见的针叶类植物:松树,柏树和云杉作为测试样本。图11(a)为原始模型,图11(b)为已有简化算法的简化结果,图11(c)则为本方法的结果。
图12给出了是一棵10岁白松的LOD模型。由近及远,处于4个不同位置的白松的细节层次不同。离视点越远,描述针叶的线的数目越少,并且每根线还受透明度的影响。可以看出处于不同位置的白松虽然细节层次不同,但视觉效果相似。表1列出了这4棵树的统计数据,包括与相机之间的距离,描述树叶的线的数目。
表1:图12中四棵白松的统计数据
树的序号 | a | b | c | d |
到相机的距离 | 12.22m | 26.71m | 56.15m | 118.40m |
表示针叶的线的数目 | 23,310 | 14,391 | 6,212 | 2,022 |
图13是一个混合林的绘制结果。其中有8种树:10岁和20岁的樟子松,10岁白松,18岁阿拉伯松树,10岁和15岁冬青树,15岁山楂树,以及12岁白杨树。这8种树被重复地放置到不同的位置,最终组成这个具有120棵树的林子。未简化时,描述这个林子的树叶的多边形的数目为16,749,820。而在图13中,描述树叶的多边形的数目为78,920,线的数目为1,588,092,可得压缩率为9.9%。图13的大小为2048×1536,绘制速度为0.33帧/每秒。绘制过程未经过硬件加速,其中的阴影效果在后处理阶段完成。
本方法有四处体现了特色和创新。一是采用多分辨率的圆柱模型表示近处的针叶,因此能取得真实感很高的绘制效果;二是采用半透明的线模型表示远处的针叶,降低了几何复杂度,同时保持了树冠外形的视觉效果和针叶类植物的树叶特征;三是提出了线合并的方法来实现用少数的线表示整个树冠,避免了一般随机采样方法的缺陷;四是对所有简化过程采用了统一的误差表达方式,从而保证了各级层次细节模型之间过渡的平滑性。
通过测试,本方法确实能够有效简化常见的各种类型的针叶,如松针,柏树树叶,杉树树叶等,甚至松球。对近处的针叶植物,它能取得非常真实的结果,而对于远处的针叶,它能极大地压缩几何数据,同时保持树冠的视觉效果不变,并能有效地克服走样现象。即使压缩率很高时,仍能保持这一性质。当视点连续变化时,针叶各层次细节模型之间的过渡也是连续的,不存在突变现象。
以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变换或替换,都应涵盖在本发明的包含范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (8)
1.一种针叶类植物冠层的层次细节模型构造方法,其特征在于,包括以下步骤:
1)输入针叶树模型,提取树叶部分信息;
2)建立针叶的圆柱模型表示,即把圆柱多边形化,表示成一系列边数连续变化的棱柱;
3)建立针叶的线模型表示,即用圆柱的中心线表示针叶;
4)迭代地执行线合并操作,直到整个树冠用一根线表示;
5)采用统一表示法表示简化误差,并将其保存到硬盘中;
6)把简化误差从硬盘读入内存,开始实时绘制;
7)根据当前视点信息和简化误差,确定针叶合适的细节层次模型;
8)把相应细节层次模型的几何数据送往GPU进行绘制。
2.根据权利要求1所述的方法,其特征在于,所述圆柱模型表示包括首先定义一个值,Lmax,该值确定了圆柱被多边形化时最精细的棱柱的边的数目;然后圆柱被多边形化为一系列的棱柱,这些棱柱的边数由Lmax连续变到3。
3.根据权利要求1所述的方法,其特征在于,所述线模型表示是指采用线模型代替多边形模型来表示远距离的针叶。
4.根据权利要求3所述的方法,其特征在于,在所述线模型表示中为每根线定义了透明度,其由相机与针叶之间的距离,以及简化误差决定。
5.根据权利要求1所述的方法,其特征在于,所述线合并操作包括:首先用一个代价函数在所有线对中选取出一对,然后用一根线代替这两根线,并且使新产生的线保持被其取代的两根线的空间位置,法向属性。
6.根据权利要求1所述的方法,其特征在于,所述简化误差的统一表示法包括:采用了同一个树状数据结构存储,所述树结构的上半部分为二叉树形式,它记录了线合并操作的信息,而下半部分记录了圆柱多边形化过程的数据。
7.根据权利要求6所述的方法,其特征在于,所述树状数据中的每一个节点都保存简化误差以及对应的几何数据的存储位置。
8.根据权利要求1所述的方法,其特征在于,所述确定针叶合适的细节层次模型是指根据相机的信息以及相机与待绘制的针叶树之间的距离,把用户定义的象素误差转换成空间误差;接着根据空间误差对保存了简化关系数据的树结构进行遍历,直到遇到简化误差小于空间误差的节点,这些节点即组成针叶树合适的细节层次模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100562554A CN101488235B (zh) | 2008-01-16 | 2008-01-16 | 针叶类植物冠层的层次细节模型构造方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100562554A CN101488235B (zh) | 2008-01-16 | 2008-01-16 | 针叶类植物冠层的层次细节模型构造方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101488235A true CN101488235A (zh) | 2009-07-22 |
CN101488235B CN101488235B (zh) | 2010-10-27 |
Family
ID=40891116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100562554A Expired - Fee Related CN101488235B (zh) | 2008-01-16 | 2008-01-16 | 针叶类植物冠层的层次细节模型构造方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101488235B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521851A (zh) * | 2011-11-18 | 2012-06-27 | 大连兆阳软件科技有限公司 | 一种静态模型的批量绘制方法 |
CN102903146A (zh) * | 2012-09-13 | 2013-01-30 | 中国科学院自动化研究所 | 用于场景绘制的图形处理方法 |
CN103180881A (zh) * | 2010-12-24 | 2013-06-26 | 中国科学院自动化研究所 | 互联网上复杂场景真实感快速绘制方法 |
CN108492365A (zh) * | 2018-04-03 | 2018-09-04 | 中国林业科学研究院资源信息研究所 | 一种基于颜色分级的树叶自适应贴图可视化模拟方法 |
CN109189787A (zh) * | 2018-08-20 | 2019-01-11 | 河南工业大学 | 一种储粮昆虫检索表的数字化表达方法及使用方法 |
CN111984646A (zh) * | 2020-08-12 | 2020-11-24 | 中国科学院昆明植物研究所 | 一种基于二叉树的植物数据存储、鉴定方法及系统 |
CN112070909A (zh) * | 2020-09-02 | 2020-12-11 | 中国石油工程建设有限公司 | 一种基于3D Tiles的工程三维模型LOD输出方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102509335B (zh) * | 2011-09-23 | 2015-08-19 | 深圳Tcl新技术有限公司 | 基于OpenGL的透明/半透明显示处理装置及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6304265B1 (en) * | 1998-01-30 | 2001-10-16 | Hewlett-Packard Company | System for distinguishing front facing and back facing primitives in a computer graphics system using area calculations in homogeneous coordinates |
CN1206614C (zh) * | 2002-07-19 | 2005-06-15 | 章新苏 | 绘制三维图形的装置 |
JP2006146309A (ja) * | 2004-11-16 | 2006-06-08 | Fujitsu Ltd | 描画データ作成方法、描画データ作成装置及び描画データ作成プログラム |
-
2008
- 2008-01-16 CN CN2008100562554A patent/CN101488235B/zh not_active Expired - Fee Related
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103180881A (zh) * | 2010-12-24 | 2013-06-26 | 中国科学院自动化研究所 | 互联网上复杂场景真实感快速绘制方法 |
CN103180881B (zh) * | 2010-12-24 | 2016-08-03 | 中国科学院自动化研究所 | 互联网上复杂场景真实感快速绘制方法 |
CN102521851A (zh) * | 2011-11-18 | 2012-06-27 | 大连兆阳软件科技有限公司 | 一种静态模型的批量绘制方法 |
CN102903146A (zh) * | 2012-09-13 | 2013-01-30 | 中国科学院自动化研究所 | 用于场景绘制的图形处理方法 |
CN102903146B (zh) * | 2012-09-13 | 2015-09-16 | 中国科学院自动化研究所 | 用于场景绘制的图形处理方法 |
CN108492365A (zh) * | 2018-04-03 | 2018-09-04 | 中国林业科学研究院资源信息研究所 | 一种基于颜色分级的树叶自适应贴图可视化模拟方法 |
CN108492365B (zh) * | 2018-04-03 | 2021-10-01 | 中国林业科学研究院资源信息研究所 | 一种基于颜色分级的树叶自适应贴图可视化模拟方法 |
CN109189787A (zh) * | 2018-08-20 | 2019-01-11 | 河南工业大学 | 一种储粮昆虫检索表的数字化表达方法及使用方法 |
CN111984646A (zh) * | 2020-08-12 | 2020-11-24 | 中国科学院昆明植物研究所 | 一种基于二叉树的植物数据存储、鉴定方法及系统 |
CN112070909A (zh) * | 2020-09-02 | 2020-12-11 | 中国石油工程建设有限公司 | 一种基于3D Tiles的工程三维模型LOD输出方法 |
CN112070909B (zh) * | 2020-09-02 | 2024-06-11 | 中国石油工程建设有限公司 | 一种基于3D Tiles的工程三维模型LOD输出方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101488235B (zh) | 2010-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101488235B (zh) | 针叶类植物冠层的层次细节模型构造方法 | |
Hua et al. | Scenenn: A scene meshes dataset with annotations | |
CN100547616C (zh) | 一种基于分级层次化深度网格的森林绘制方法 | |
CN103180881B (zh) | 互联网上复杂场景真实感快速绘制方法 | |
CN101751694B (zh) | 一种对复杂叶片的快速简化和绘制方法 | |
CN106485776A (zh) | 一种3d游戏实时渲染大规模场景的方法及系统 | |
CN105205861B (zh) | 基于Sphere‑Board的树木三维可视化模型实现方法 | |
Kuang et al. | The research of virtual reality scene modeling based on unity 3D | |
CN104205173A (zh) | 用于估计场景中的不透明度水平的方法及相应的设备 | |
CN101271585A (zh) | 一种在图形处理器上拾取三维几何图元的方法 | |
US11961174B2 (en) | Programmatically configuring materials | |
CN100474344C (zh) | 一种树叶渐进简化方法 | |
CN107909652A (zh) | 一种虚实场景相互遮挡实现方法 | |
CN115661404A (zh) | 一种多细粒度树木实景参数化建模方法 | |
CN103366396A (zh) | 基于局部阴影图的高质量软阴影快速生成方法 | |
Hu et al. | Extended interactive and procedural modeling method for ancient Chinese architecture | |
CN102509344A (zh) | 一种基于非均匀采样三维对象反射的实时绘制方法 | |
CN103646413A (zh) | 基于osg引擎的树木快速渲染技术 | |
Kohek et al. | Interactive Large‐Scale Procedural Forest Construction and Visualization Based on Particle Flow Simulation | |
Terraz et al. | 3Gmap L-systems: an application to the modelling of wood | |
Deng et al. | Multiresolution foliage for forest rendering | |
Zhang et al. | When a tree model meets texture baking: an approach for quality-preserving lightweight visualization in virtual 3D scene construction | |
Favorskaya et al. | Procedural modeling of broad-leaved trees under weather conditions in 3D virtual reality | |
CN106296804B (zh) | 一种参数化三维树木符号模型的构建方法 | |
Herrlich et al. | Integration of cityGML and collada for high-quality geographic data visualization on the PC and Xbox 360 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101027 Termination date: 20190116 |
|
CF01 | Termination of patent right due to non-payment of annual fee |