CN102662729B - Method for dispatching growth models for simulation of vast forests - Google Patents

Method for dispatching growth models for simulation of vast forests Download PDF

Info

Publication number
CN102662729B
CN102662729B CN201210111048.0A CN201210111048A CN102662729B CN 102662729 B CN102662729 B CN 102662729B CN 201210111048 A CN201210111048 A CN 201210111048A CN 102662729 B CN102662729 B CN 102662729B
Authority
CN
China
Prior art keywords
data
scene
thread
trees
growth
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.)
Expired - Fee Related
Application number
CN201210111048.0A
Other languages
Chinese (zh)
Other versions
CN102662729A (en
Inventor
范菁
苏中原
董天阳
范允易
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University of Technology ZJUT
Original Assignee
Zhejiang University of Technology ZJUT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University of Technology ZJUT filed Critical Zhejiang University of Technology ZJUT
Priority to CN201210111048.0A priority Critical patent/CN102662729B/en
Publication of CN102662729A publication Critical patent/CN102662729A/en
Application granted granted Critical
Publication of CN102662729B publication Critical patent/CN102662729B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

A method for dispatching growth models for simulation of vast forests. The method includes the following steps of firstly, acquiring simulation data of a field of the vast forests according to simulation target, initializing the structure of the simulation data, storing field information data excluding tree information in a quad-tree manner; storing tree information data by the memory pool technology; secondly, utilizing field blocks as units and traversing all the field blocks during computing tree growth models on the field of the vast forests, and computing tree growth in each field block; and thirdly, visualizing the field of the vast forests and storing computing results of the tree growth models in the field of the vast forest according to the computing results of the tree growth models in the field of the vast forest. The method for dispatching growth model for simulation of vast forests is excellent in instantaneity, high in speed of computing process and smooth in field visualization.

Description

一种面向大规模森林仿真的生长模型的调度方法A Scheduling Method for Growth Models Oriented to Large-Scale Forest Simulation

技术领域 technical field

本发明涉及计算机虚拟仿真技术,尤其是一种大规模森林仿真的生长模型的调度方法。The invention relates to computer virtual simulation technology, in particular to a scheduling method of a growth model of large-scale forest simulation.

背景技术 Background technique

计算机虚拟仿真技术改变了传统的林业经营管理模式,使人们能够通过计算机来预测树木生长状况。根据特定的条件动态模拟森林场景的变化,可以使林业管理决策者能够做出更科学的经营管理决策。但是,对于大规模森林场景的模拟仿真,其场景数据量非常巨大(包括树木信息数据,地形数据等)。例如对5km*5km区域内的树木进行生长仿真,植物生长模型计算所需要的树木信息大概在1.6-2G的数据量,场景绘制常使用LOD技术,对于距离视点较近的地方采用精细的三维模型进行绘制,较远处采用简化模型或利用Billboard技术使用纹理贴图,所需要的内存量大致为2G左右的数据量。如果直接将这些数据调入计算机中进行生长模型计算和仿真绘制,以目前的硬件性能将无法实现植物生长过程的快速仿真。因此,在进行森林场景模拟仿真之前需要对原始的场景数据进行预先处理,在仿真过程中采用合理的调度策略对生长模型计算进行调度和优化,从而使得大规模森林场景的仿真能够更加快速。Computer virtual simulation technology has changed the traditional forestry management model, enabling people to predict the growth of trees through computers. Dynamically simulating changes in forest scenarios according to specific conditions can enable forestry management decision makers to make more scientific management decisions. However, for the simulation of large-scale forest scenes, the amount of scene data is very huge (including tree information data, terrain data, etc.). For example, to simulate the growth of trees in an area of 5km*5km, the tree information required for the calculation of the plant growth model is about 1.6-2G of data, and the LOD technology is often used for scene rendering, and a fine 3D model is used for places close to the viewpoint For drawing, using a simplified model at a far distance or using Billboard technology to use texture maps, the amount of memory required is roughly about 2G of data. If these data are directly transferred to the computer for growth model calculation and simulation drawing, the rapid simulation of plant growth process will not be realized with the current hardware performance. Therefore, it is necessary to pre-process the original scene data before performing forest scene simulation, and use a reasonable scheduling strategy to schedule and optimize the growth model calculation during the simulation process, so that the simulation of large-scale forest scenes can be faster.

发明内容 Contents of the invention

为了克服已有森林场景模拟仿真的实时性较差、计算过程较长、场景可视化较不流畅的不足,本发明提供一种实时性良好、减少计算过程的时间、场景可视化较流畅的面向大规模森林仿真的生长模型的调度方法。In order to overcome the disadvantages of poor real-time performance, long calculation process, and unsmooth scene visualization of the existing forest scene simulation, the present invention provides a large-scale oriented simulation system with good real-time performance, reduced calculation time, and smooth scene visualization. Scheduling methods for growth models for forest simulations.

本发明解决其技术问题所采用的技术方案是:The technical solution adopted by the present invention to solve its technical problems is:

一种面向大规模森林仿真的生长模型的调度方法,所述调度方法包括以下步骤:A method for scheduling a growth model oriented to large-scale forest simulation, the method for scheduling includes the following steps:

1)按照仿真目标获取大规模森林场景的仿真数据,对仿真数据的数据结构进行初始化,不包含树木信息的场景信息数据采用四叉树的方式进行存储;树木信息数据采用内存池技术进行存储;1) Acquire the simulation data of a large-scale forest scene according to the simulation target, and initialize the data structure of the simulation data. The scene information data that does not contain tree information is stored in the form of a quadtree; the tree information data is stored using memory pool technology;

2)进行大规模森林场景进行树木生长模型计算时,以场景分块为单位,遍历所有场景分块,并对每个场景分块内的树木生长计算,树木生长计算的具体步骤如下:2) When calculating the tree growth model in a large-scale forest scene, use the scene block as a unit to traverse all scene blocks, and calculate the tree growth in each scene block. The specific steps of tree growth calculation are as follows:

A.在场景中确定当前要计算树木,并根据当前计算树木的属性计算树木的影响圈范围,然后,根据影响圈范围,计算相关的仿真参数,并通过遍历整个场景树木寻找与当前计算树木相关的树木;A. Determine the current tree to be calculated in the scene, and calculate the range of the tree’s circle of influence based on the attributes of the current calculation tree, and then calculate the relevant simulation parameters according to the range of the circle of influence, and search for trees related to the current calculation by traversing the entire scene tree the trees;

B.再得到相关树木之后,需要将这些树木的属性信息数据全部调度到内存中,采用森林生长仿真的调度策略对生长计算过程中的内外存数据进行调度;B. After obtaining the relevant trees, it is necessary to schedule all the attribute information data of these trees into the memory, and use the scheduling strategy of forest growth simulation to schedule the internal and external memory data during the growth calculation process;

C.生长模型求解:当前计算所需要的数据全部调入内存中之后,对生长方程的求解,计算出最后的结果;C. Solving the growth model: After all the data required for the current calculation are loaded into the memory, the growth equation is solved and the final result is calculated;

3)根据大规模森林场景中树木生长模型计算结果,进行大规模森林场景的可视化,并保存大规模森林场景中树木生长模型的计算结果。3) Visualize the large-scale forest scene according to the calculation results of the tree growth model in the large-scale forest scene, and save the calculation results of the tree growth model in the large-scale forest scene.

进一步,所述步骤B中,所述森林生长仿真的调度策略包括绘制线程和调度线程;Further, in the step B, the scheduling strategy of the forest growth simulation includes a drawing thread and a scheduling thread;

当用户视点发生变化时,绘制线程根据当前视点计算出当前的可见区域,同时对内存中的场景数据进行判断,确认场景重新绘制所需要的数据是否已经在内存中,如果是则直接进行场景的绘制并向数据预取线程发送视点更新消息;如果当前需要绘制的场景不在内存中,绘制线程则需要根据当前视点的位置、当前视点的方向等视点信息对可见区域内进行计算;在计算完成后,绘制线程挂起并向数据调度发送数据请求消息,由数据调度线程从外存中调入场景数据后在继续进行绘制;When the user's viewpoint changes, the drawing thread calculates the current visible area according to the current viewpoint, and at the same time judges the scene data in the memory to confirm whether the data required for redrawing the scene is already in the memory, and if so, proceed directly to the scene Draw and send a viewpoint update message to the data prefetch thread; if the current scene to be drawn is not in the memory, the drawing thread needs to calculate the visible area according to the current viewpoint position, current viewpoint direction and other viewpoint information; after the calculation is completed , the drawing thread hangs up and sends a data request message to the data dispatcher, and the data dispatcher thread continues drawing after loading the scene data from the external memory;

数据调度线程负责从外存中调度数据,通过分析绘制线程传递过来的消息,判断具体需要调度数据的内容,如当前场景绘制数据、场景预取数据或场景计算数据等,同时从内存中删除部分场景数据;The data scheduling thread is responsible for scheduling data from the external memory. By analyzing the messages passed by the drawing thread, it can determine the specific content of the scheduling data, such as the current scene drawing data, scene prefetching data, or scene calculation data, etc., and delete some from the memory at the same time. scene data;

当数据调度线程接收到绘制线程发来的场景数据请求消息时,进行直接调度,此时调度线程根据消息直接从外存中调度绘制线程所需要的数据,此时的数据调度优先级最高;When the data scheduling thread receives the scene data request message sent by the drawing thread, it performs direct scheduling. At this time, the scheduling thread directly schedules the data required by the drawing thread from the external memory according to the message. At this time, the data scheduling priority is the highest;

当数据调度线程接收到绘制线程发来的新视点坐标信息时,说明当前场景绘制的场景数据都已经在内存,绘制线程已经进入绘制操作;这时,数据调度线程的主要工作则是根据新视点的数据来判断下一次绘制可能用到的数据,并将这些数据调度到内存中;当接收到绘制线程发出的视点的信息后,数据调度线程根据视点信息更新视点视域,计算需要预取的区域并判断预取区域所对应的LOD层次;预取区域场景块的编号根据可见区域的编号直接计算得出;在计算出所有预取区域的场景块之后,由于数据预取时间必须小于场景绘制时间,所以需要对这些场景块的调度优先级进行分类,判断的依据主要是前一刻视点的前进方向;When the data scheduling thread receives the new viewpoint coordinate information sent by the drawing thread, it means that the scene data drawn by the current scene is already in the memory, and the drawing thread has entered the drawing operation; at this time, the main work of the data scheduling thread is based on the new viewpoint The data to determine the data that may be used for the next drawing, and schedule these data into the memory; after receiving the information of the viewpoint sent by the drawing thread, the data dispatching thread updates the viewpoint view area according to the viewpoint information, and calculates the data that needs to be prefetched area and judge the LOD level corresponding to the prefetch area; the number of the scene block in the prefetch area is directly calculated according to the number of the visible area; after calculating all the scene blocks in the prefetch area, since the data prefetch time must be shorter than the Time, so it is necessary to classify the scheduling priority of these scene blocks, and the judgment is mainly based on the direction of the viewpoint at the previous moment;

根据场景块与视点运动方向的夹角大小将预取区域分为三个优先级,场景块i优先级Ki如式(1):The prefetch area is divided into three priorities according to the angle between the scene block and the direction of view movement, and the priority Ki of scene block i is as in formula (1):

其中,Ki表示场景块i的优先级;θi表示场景块与视点运动方向的夹角;R表示预取区域场景块的集合;Among them, K i represents the priority of scene block i; θ i represents the angle between the scene block and the movement direction of the viewpoint; R represents the set of scene blocks in the prefetch area;

在将预取数据调度到内存中时,需要从内存中删除相应大小的场景数据,选择LRU策略来选择删除的场景块。When scheduling the prefetched data into the memory, it is necessary to delete scene data of the corresponding size from the memory, and select the LRU strategy to select deleted scene blocks.

再进一步,所述步骤1)中,以场景链表为索引,树木信息存储在MemoryBlock中,场景链表中的每个场景块可能拥有多个MemoryData来存储块内的树木信息,同时对MemoryData中的树木进行排序,以加快后面相关树木的搜索。Further, in the step 1), the scene linked list is used as an index, and the tree information is stored in the MemoryBlock. Each scene block in the scene linked list may have a plurality of MemoryData to store the tree information in the block, and at the same time, the trees in the MemoryData Sort to speed up the search for related trees later.

本发明的有益效果主要表现在:(1)通过分析森林整体动态演变的全林分级仿真、植物间相互作用的林分级仿真和单株树木动态生长情况的单木级仿真的信息特点,对场景外存数据结构进行设计组织,并对地形、地物(非树木地物)、纹理数据进行分割,对三者建立相互关联的索引及外存存储结构,使得仿真计算时数据读取速度更快;The beneficial effects of the present invention are mainly manifested in: (1) by analyzing the information characteristics of the whole forest classification simulation of the overall dynamic evolution of the forest, the forest classification simulation of the interaction between plants and the single tree level simulation of the dynamic growth of individual trees, the scene The external memory data structure is designed and organized, and the terrain, ground features (non-tree features), and texture data are segmented, and an interrelated index and external memory storage structure are established for the three, making the data reading speed faster during simulation calculations ;

(2)根据粗粒度场景动态演变模型、中粒度植物间相互作用模型、细粒度树木个体动态生长模型的求解过程中相对耗时的步骤,对场景数据在内存中的存储进行设计组织,以减少森林场景模型计算过程的时间;(2) According to the relatively time-consuming steps in the solution process of the coarse-grained scene dynamic evolution model, the medium-grained plant interaction model, and the fine-grained tree individual dynamic growth model, the storage of scene data in memory is designed and organized to reduce The time of the calculation process of the forest scene model;

(3)针对大规模森林场景生长模型求解以及生长结果可视化时无法一次性将场景数据调入到内存的问题,在生长模型求解及可视化过程中内外存数据调度方法进行优化,包括对粗粒度、中粒度和细粒度场景生长模型计算和仿真时的调度优化,使得最后场景可视化更加流畅。(3) Aiming at the problem that the scene data cannot be loaded into the memory at one time when solving the large-scale forest scene growth model and visualizing the growth results, the internal and external memory data scheduling method is optimized during the growth model solving and visualization process, including coarse-grained, Scheduling optimization during calculation and simulation of medium-grained and fine-grained scene growth models makes the final scene visualization smoother.

附图说明 Description of drawings

图1是场景数据内存组织结构示意图。Figure 1 is a schematic diagram of the scene data memory organization structure.

图2是场景数据在内存中的存储结构示意图。FIG. 2 is a schematic diagram of a storage structure of scene data in memory.

图3是场景多线程调度的示意图。Fig. 3 is a schematic diagram of scene multi-thread scheduling.

图4是LOD层次模型选择的示意图。Fig. 4 is a schematic diagram of LOD hierarchical model selection.

图5是场景绘制数据预取的示意图。FIG. 5 is a schematic diagram of scene rendering data prefetching.

具体实施方式 Detailed ways

下面结合附图对本发明作进一步描述。The present invention will be further described below in conjunction with the accompanying drawings.

参照图1~图5,一种面向大规模森林仿真的生长模型的调度方法,按照仿真目标获取大规模森林场景的仿真数据,并存储在计算机内存中,然后根据大规模森林场景数据在仿真过程的调度方式的不同分别对数据结构(内外存中的存储结构)进行初始化,如图1所示。Referring to Figures 1 to 5, a scheduling method for growth models oriented to large-scale forest simulation, which obtains simulation data of large-scale forest scenes according to the simulation objectives and stores them in computer memory, and then processes the large-scale forest scene data in the simulation process according to the large-scale forest scene data. According to different scheduling methods, the data structures (storage structures in the internal and external memory) are initialized respectively, as shown in FIG. 1 .

在计算机内存中,对于场景信息数据(不包含树木信息),我们根据地形的四叉树分割采用四叉树的方式进行存储。In the computer memory, for the scene information data (not including tree information), we store it in the form of a quadtree according to the quadtree segmentation of the terrain.

对于树木信息数据,考虑到在计算过程中需要对内存中的数据进行比较频繁的删除和存储,采用内存池技术进行存储,如图2所示。For the tree information data, considering that the data in the memory needs to be deleted and stored more frequently during the calculation process, the memory pool technology is used for storage, as shown in Figure 2.

在内存中,以场景链表为索引,树木信息存储在MemoryBlock中,场景链表中的每个场景块可能拥有多个MemoryData来存储块内的树木信息。同时对MemoryData中的树木进行排序,以加快后面相关树木的搜索。In the memory, the scene linked list is used as the index, and the tree information is stored in MemoryBlock. Each scene block in the scene linked list may have multiple MemoryData to store the tree information in the block. At the same time, the trees in MemoryData are sorted to speed up the search for related trees later.

2.对大规模森林场景进行树木生长模型的计算,获取场景中的每棵树木进行相互作用计算的结果。2. Calculate the tree growth model for large-scale forest scenes, and obtain the results of interaction calculations for each tree in the scene.

进行大规模森林场景进行树木生长模型计算时,以场景分块为单位,遍历所有场景分块,并对每个场景分块内的树木生长计算。树木生长计算的具体步骤如下:When calculating the tree growth model in a large-scale forest scene, use the scene block as a unit to traverse all scene blocks, and calculate the tree growth in each scene block. The specific steps of tree growth calculation are as follows:

A.在场景中确定当前要计算树木,并根据当前计算树木的属性计算树木的影响圈范围,然后,根据影响圈范围,计算相关的仿真参数,并通过遍历整个场景树木寻找与当前计算树木相关的树木。A. Determine the current tree to be calculated in the scene, and calculate the range of the tree’s circle of influence based on the attributes of the current calculation tree, and then calculate the relevant simulation parameters according to the range of the circle of influence, and search for trees related to the current calculation by traversing the entire scene tree trees.

B.再得到相关树木之后,需要将这些树木的属性信息数据全部调度到内存中,以便后续在对当前树木进行生长计算时可以快速的使用。但是,由于计算机内存大小有限,可能会导致无法一次性将所有的树木数据全部调度到内存中,因此在计算过程中可能会出现需要进行内外存数据调度的情况。为了能够充分的利用计算机资源,采用森林生长仿真的调度策略对生长计算过程中的内外存数据进行调度。B. After obtaining the relevant trees, it is necessary to schedule all the attribute information data of these trees into the memory, so that they can be quickly used later in the growth calculation of the current tree. However, due to the limited memory size of the computer, it may not be possible to schedule all the tree data into the memory at one time, so it may be necessary to schedule internal and external memory data during the calculation process. In order to make full use of computer resources, the scheduling strategy of forest growth simulation is used to schedule the internal and external memory data during the growth calculation process.

根据不同的功能将线程分为绘制线程和数据调度线程两类。当视点发生变化时,场景的渲染和数据调入可以同时工作,以提高场景的绘制效率。在场景绘制过程中,CPU主要负责可见区域的计算、场景生物量计算以及场景模型LOD层次的判断,场景的绘制工作则是由图形处理器来执行。所以当CPU把处理过的场景数据交给图形处理器绘制后,这时的CPU将处于空闲状态,可以利用这段空闲时间来调度场景数据。图3为多线程工作模型。Threads are divided into drawing threads and data dispatching threads according to different functions. When the viewpoint changes, the rendering and data loading of the scene can work simultaneously to improve the drawing efficiency of the scene. During the scene drawing process, the CPU is mainly responsible for the calculation of the visible area, the calculation of the scene biomass, and the judgment of the LOD level of the scene model, and the drawing of the scene is performed by the graphics processor. Therefore, when the CPU hands over the processed scene data to the graphics processor for drawing, the CPU will be in an idle state at this time, and this idle time can be used to schedule the scene data. Figure 3 shows the multi-thread work model.

(1)绘制线程(1) Drawing thread

绘制线程主要功能是根据视点信息计算出当前场景的可见区域并判断可见区域的绘制数据是否在内存中并向数据调度线程发送预取消息。The main function of the drawing thread is to calculate the visible area of the current scene according to the viewpoint information, judge whether the drawing data of the visible area is in the memory, and send a prefetch message to the data scheduling thread.

当用户视点发生变化时,绘制线程根据当前视点计算出当前的可见区域,同时对内存中的场景数据进行判断,确认场景重新绘制所需要的数据是否已经在内存中,如果是则直接进行场景的绘制并向数据预取线程发送视点更新消息。如果当前需要绘制的场景不在内存中,绘制线程则需要根据当前视点的位置、当前视点的方向等视点信息对可见区域内进行计算。在计算完成后,绘制线程挂起并向数据调度发送数据请求消息,由数据调度线程从外存中调入场景数据后在继续进行绘制。如图4所示,图中LODO为精细的植物三维模型、LOD1为简化后的植物三维模型、LOD2则采用Billboard技术直接使用纹理贴图。When the user's viewpoint changes, the drawing thread calculates the current visible area according to the current viewpoint, and at the same time judges the scene data in the memory to confirm whether the data required for redrawing the scene is already in the memory, and if so, proceed directly to the scene Draw and send view update messages to the data prefetch thread. If the scene currently to be drawn is not in the memory, the drawing thread needs to calculate the visible area according to the viewpoint information such as the position of the current viewpoint and the direction of the current viewpoint. After the calculation is completed, the drawing thread hangs up and sends a data request message to the data dispatcher, and the data dispatcher thread loads the scene data from the external memory and continues drawing. As shown in Figure 4, LODO in the figure is a fine 3D model of plants, LOD1 is a simplified 3D model of plants, and LOD2 uses Billboard technology to directly use texture maps.

(2)调度线程(2) Scheduling threads

数据调度线程的工作主要是负责从外存中调度数据,通过分析绘制线程传递过来的消息,判断具体需要调度数据的内容,如当前场景绘制数据、场景预取数据或场景计算数据等,同时从内存中删除部分场景数据。The work of the data scheduling thread is mainly responsible for scheduling data from the external memory, by analyzing the messages passed by the drawing thread, to determine the content of the specific data that needs to be scheduled, such as the current scene drawing data, scene prefetching data, or scene calculation data, etc. Part of the scene data is deleted from the internal memory.

当数据调度线程接收到绘制线程发来的场景数据请求消息时,说明需要绘制的场景数据并不完全在内存中,需要进行直接调度。这时调度线程根据消息直接从外存中调度绘制线程所需要的数据,此时的数据调度优先级最高。When the data scheduling thread receives the scene data request message sent by the drawing thread, it means that the scene data to be drawn is not completely in the memory, and direct scheduling is required. At this time, the scheduling thread directly schedules the data required by the drawing thread from the external memory according to the message, and the data scheduling priority at this time is the highest.

当数据调度线程接收到绘制线程发来的新视点坐标信息时,说明当前场景绘制的场景数据都已经在内存,绘制线程已经进入绘制操作。这时,数据调度线程的主要工作则是根据新视点的数据来判断下一次绘制可能用到的数据,并将这些数据调度到内存中。如图5所示,场景块A为当前视点所在位置,白色区域为当前可见区域,即当前需要绘制的区域,区域B、C、D则是预取区域。当接收到绘制线程发出的视点的信息后(坐标和方向),数据调度线程根据视点信息更新视点视域,计算需要预取的区域并判断预取区域所对应的LOD层次。预取区域场景块的编号可以根据可见区域的编号直接计算得出。在计算出所有预取区域的场景块之后,由于每次数据预取存在时间的限制(数据预取时间必须小于场景绘制时间),所以需要对这些场景块的调度优先级进行分类,判断的依据主要是前一刻视点的前进方向。When the data scheduling thread receives the new viewpoint coordinate information sent by the drawing thread, it means that the scene data for the current scene drawing is already in the memory, and the drawing thread has entered the drawing operation. At this time, the main work of the data scheduling thread is to judge the data that may be used for the next drawing according to the data of the new viewpoint, and schedule these data into the memory. As shown in Figure 5, scene block A is the location of the current viewpoint, the white area is the currently visible area, that is, the area that needs to be drawn currently, and areas B, C, and D are prefetch areas. After receiving the viewpoint information (coordinates and direction) sent by the drawing thread, the data scheduling thread updates the viewpoint view area according to the viewpoint information, calculates the area to be prefetched and judges the LOD level corresponding to the prefetched area. The number of the scene block in the prefetch area can be directly calculated according to the number of the visible area. After calculating all the scene blocks in the prefetch area, due to the time limit of each data prefetch (the data prefetch time must be less than the scene drawing time), it is necessary to classify the scheduling priority of these scene blocks, and the basis for judgment It is mainly the direction in which the point of view is heading at the previous moment.

根据场景块与视点运动方向的夹角大小将预取区域分为三个优先级。如图4所示,箭头表示视点前一时刻的运动方向,预取区域B标记为高优先级(其优先级依然地域当前场景块的数据优先级),预取区域C标记为中优先级,预取区域D则标记为低优先级。场景块i优先级Ki如式(1):According to the size of the included angle between the scene block and the viewpoint movement direction, the prefetch area is divided into three priorities. As shown in Figure 4, the arrow indicates the movement direction of the viewpoint at the previous moment, the prefetch area B is marked as high priority (its priority is still the data priority of the current scene block in the region), and the prefetch area C is marked as medium priority. Prefetch area D is marked as low priority. The priority Ki of scene block i is as formula (1):

其中,Ki表示场景块i的优先级;θi表示场景块与视点运动方向的夹角;R表示预取区域场景块的集合。Among them, K i represents the priority of scene block i; θ i represents the angle between the scene block and the movement direction of the viewpoint; R represents the set of scene blocks in the prefetching area.

在将预取数据调度到内存中时,需要从内存中删除相应大小的场景数据,本文选择LRU(least recently used)策略来选择删除的场景块。When scheduling the prefetched data into the memory, it is necessary to delete the corresponding size of scene data from the memory. This paper chooses the LRU (least recently used) strategy to select the deleted scene blocks.

C.生长模型求解。单前计算所需要的数据全部调入内存中之后,对生长方程的求解,计算出最后的结果。C. Growth model solution. After all the data required for pre-calculation are loaded into the memory, the growth equation is solved and the final result is calculated.

3.根据大规模森林场景中树木生长模型计算结果,进行大规模森林场景的可视化,并保存大规模森林场景中树木生长模型的计算结果。3. According to the calculation results of the tree growth model in the large-scale forest scene, visualize the large-scale forest scene, and save the calculation results of the tree growth model in the large-scale forest scene.

Claims (3)

1. a dispatching method for the growth model emulated towards extensive forest, is characterized in that: described dispatching method comprises the following steps:
1) obtain the emulated data of extensive scale Forest Scene according to simulation objectives, carry out initialization to the data structure of emulated data, the scene information data acquisition not comprising tree information stores by the mode of quaternary tree; Tree information data acquisition memory pool technique stores;
2) when carrying out Trees growing models calculating to extensive scale Forest Scene, in units of world subdivision, travel through all world subdivisions, and calculate the arboreal growth in each world subdivision, the concrete steps that arboreal growth calculates are as follows:
A. in scene, determine the current trees that will calculate, and according to the current influence circle scope calculating the property calculation trees of trees, then, according to influence circle scope, calculate relevant simulation parameter, and calculate the relevant trees of trees by the whole scene trees searching of traversal to current;
B. after obtaining relevant trees, needing the data of attribute information of these trees to be all dispatched in internal memory, adopting the scheduling strategy of Forest Growth emulation to dispatch growing deposit data inside and outside in computation process;
C. growth model solves: the data required for current calculating solve growth equation after all calling in internal memory, calculates last result;
3) according to Trees growing models result of calculation in extensive scale Forest Scene, carry out the visual of extensive scale Forest Scene, and preserve the result of calculation of Trees growing models in extensive scale Forest Scene.
2. the dispatching method of the growth model emulated towards extensive forest as claimed in claim 1, it is characterized in that: in described step B, the scheduling strategy of described Forest Growth emulation comprises utilization drafting thread and the internal outer deposit data of data dispatch thread is dispatched;
When user's viewpoint changes, draw thread and calculate current visibility region according to current view point, contextual data in internal memory is judged simultaneously, confirm that scene repaints required data whether in internal memory, if it is directly carry out the drafting of scene and send viewpoint updating message to data prefetching thread; If the scene that current needs are drawn is not in internal memory, drafting thread then needs the position according to current view point, the direction view information of current view point calculates in visibility region; After calculating completes, draw thread suspension and send data request information to data dispatch, proceeding to draw after calling in contextual data by data dispatch thread from external memory;
Data dispatch thread is responsible for data dispatching from external memory, by analyzing the message of drawing thread and passing over, judge the content specifically needing data dispatching, as current scene drawing data, scene prefetch data or scene calculate data, deletion contextual data from internal memory simultaneously;
When data dispatch thread receive draw contextual data request message that thread sends time, directly dispatch, now scheduling thread according to message directly from external memory scheduling draw the data required for thread, data dispatch priority is now the highest;
When data dispatch thread receive draw new viewpoint coordinate information that thread sends time, illustrates that contextual data that current scene draws is all at internal memory, drafting thread has entered drafting and has operated; At this moment, the groundwork of data dispatch thread is then judge to draw the data that may use according to the data of new viewpoint next time, and by these data dispatchs in internal memory; After receiving the information of drawing the viewpoint that thread sends, data dispatch thread is according to the view information more new viewpoint ken, and the region that calculating needs are looked ahead also judges the LOD level corresponding to prefetching areas; The numbering of prefetching areas scenario block directly calculates according to the numbering of visibility region; After the scenario block calculating all prefetching areas, because the data pre-fetching time must be less than the scene drawing time, so need to classify to the dispatching priority of these scenario block, the working direction according to mainly eve viewpoint of judgement;
Prefetching areas is divided into three priority by the corner dimension according to scenario block and viewpoint direction of motion, and scenario block i priority Ki is such as formula (1):
Wherein, K irepresent the priority of scenario block i; θ irepresent the angle of scenario block and viewpoint direction of motion; R represents the set of prefetching areas scenario block;
When being dispatched in internal memory by prefetch data, needing the contextual data of deleting corresponding size from internal memory, selecting LRU strategy to select the scenario block of deleting.
3. the dispatching method of the growth model emulated towards extensive forest as claimed in claim 1 or 2, it is characterized in that: described step 1) in, with scene chained list for index, tree information is stored in MemoryBlock, each scenario block in scene chained list may have the tree information that multiple MemoryData comes in storage block, trees in MemoryData are sorted, with the search of trees relevant after accelerating simultaneously.
CN201210111048.0A 2012-04-16 2012-04-16 Method for dispatching growth models for simulation of vast forests Expired - Fee Related CN102662729B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210111048.0A CN102662729B (en) 2012-04-16 2012-04-16 Method for dispatching growth models for simulation of vast forests

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210111048.0A CN102662729B (en) 2012-04-16 2012-04-16 Method for dispatching growth models for simulation of vast forests

Publications (2)

Publication Number Publication Date
CN102662729A CN102662729A (en) 2012-09-12
CN102662729B true CN102662729B (en) 2015-03-04

Family

ID=46772229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210111048.0A Expired - Fee Related CN102662729B (en) 2012-04-16 2012-04-16 Method for dispatching growth models for simulation of vast forests

Country Status (1)

Country Link
CN (1) CN102662729B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778744B (en) * 2014-10-25 2017-08-25 中国科学院植物研究所 Extensive three-dimensional forest Visual Scene method for building up based on Lidar data
FR3065098A1 (en) 2017-04-05 2018-10-12 Stmicroelectronics (Rousset) Sas METHOD FOR REAL TIME DETECTION OF A SCENE BY AN APPARATUS, FOR EXAMPLE A WIRELESS COMMUNICATION APPARATUS, AND CORRESPONDING APPARATUS
CN111354081B (en) * 2018-12-20 2025-01-17 中科星图股份有限公司 Large-scale three-dimensional forest drawing method
CN112668948B (en) * 2021-02-08 2022-03-11 浙江弄潮儿智慧科技有限公司 Forestry ecological environment man-machine interaction system and method based on multi-source information fusion

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1564203A (en) * 2004-04-12 2005-01-12 浙江大学 Fast drawing forest method of graded hierarchical assembling depth paste-up atlas
CN101216954A (en) * 2008-01-21 2008-07-09 浙江大学 A Forest Rendering Method Based on Hierarchical and Hierarchical Depth Mesh

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1564203A (en) * 2004-04-12 2005-01-12 浙江大学 Fast drawing forest method of graded hierarchical assembling depth paste-up atlas
CN101216954A (en) * 2008-01-21 2008-07-09 浙江大学 A Forest Rendering Method Based on Hierarchical and Hierarchical Depth Mesh

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
基于HLA的动态森林生长仿真原型系统研究与设计;孙思昂;《中国优秀硕士学位论文全文数据库信息科技辑》;20080915;全文 *
支持森林场景动态生成的树木生长模拟;范菁等;《计算机辅助设计与图形学学报》;20081130;第20卷(第11期);第1500页-第1506页 *
面向森林动态生长过程的场景系统设计和实现;范菁等;《计算机应用研究》;20080930;第25卷(第9期);第2872页-第2874页 *
面向虚拟森林仿真的多层场景引擎设计;范菁等;《计算机工程》;20090530;第35卷(第9期);第255页-第257页 *
面向虚拟森林的多层场景引擎设计;余青;《中国优秀硕士学位论文全文数据库信息科技辑》;20071215;全文 *

Also Published As

Publication number Publication date
CN102662729A (en) 2012-09-12

Similar Documents

Publication Publication Date Title
CN105261066B (en) A kind of three-dimensional geographic information system real-time rendering multithreading distribution and control method
CN110738721B (en) Three-dimensional scene rendering acceleration method and system based on video geometric analysis
CN108520557B (en) A massive architectural rendering method based on the fusion of graphics and images
CN105701103B (en) Three-dimensional application system based on geographic information
CN103942306B (en) Three-dimensional city model self-adaption scheduling method
CN106446351A (en) Real-time drawing-oriented large-scale scene organization and scheduling technology and simulation system
CN102147928B (en) Improved flame-simulation acceleration algorithm based on particle system
CN101819675B (en) Method for quickly constructing bounding volume hierarchy (BVH) based on GPU
CN113066160B (en) Method for generating scene data of indoor mobile robot
US20090183167A1 (en) Two-Tiered Dynamic Load Balancing Using Sets of Distributed Thread Pools
CN109255828A (en) Mixing level for ray trace
CN101441779B (en) Rapid dynamic drafting method of magnanimity digital terrain
CN105701851B (en) A kind of 3 d rendering engine system based on geography information
US20090073167A1 (en) Cooperative Utilization of Spacial Indices Between Application and Rendering Hardware
CN112906125B (en) Light-weight loading method for BIM model of railway fixed facility
US20110282641A1 (en) Method and system for real-time particle simulation
CN105389850A (en) Novel visibility generation method for large-scale three-dimensional scene
CN117237502A (en) Three-dimensional rendering method, device, equipment and medium
CN112017270A (en) Live-action three-dimensional visualization online application system
CN102662729B (en) Method for dispatching growth models for simulation of vast forests
CN104392480A (en) Point-based rendering method for global lighting effect via internal memory and external memory switching method
CN119067856A (en) A geographic vector data rendering method, storage medium, device and computer program product based on WebGPU
CN111090759B (en) Algorithm for cross-stage loading of massive real-scene big data
CN101840565B (en) A Parallel Construction Method of Octree Based on GPU
CN102779215A (en) Networked three-dimensional hoisting simulation method based on B/S (Browser/Server) framework and cache technology

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150304