WO2015119325A1 - 지형 렌더링 방법 - Google Patents

지형 렌더링 방법 Download PDF

Info

Publication number
WO2015119325A1
WO2015119325A1 PCT/KR2014/002497 KR2014002497W WO2015119325A1 WO 2015119325 A1 WO2015119325 A1 WO 2015119325A1 KR 2014002497 W KR2014002497 W KR 2014002497W WO 2015119325 A1 WO2015119325 A1 WO 2015119325A1
Authority
WO
WIPO (PCT)
Prior art keywords
terrain
tessellation factor
terrain rendering
edge
node
Prior art date
Application number
PCT/KR2014/002497
Other languages
English (en)
French (fr)
Inventor
한정현
강형엽
장한용
Original Assignee
고려대학교 산학협력단
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 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to US15/116,812 priority Critical patent/US9959670B2/en
Publication of WO2015119325A1 publication Critical patent/WO2015119325A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • G06T17/205Re-meshing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Definitions

  • the present invention relates to a terrain rendering method, and more particularly, to a multi-resolution terrain rendering method using GPU tessellation.
  • GIS Geographic Information System
  • flight simulation interactive computer games and the like.
  • Triangular meshes and other polygonal models are commonly used to render terrain.
  • TINs triangulated irregular networks
  • An object of the present invention is to provide a terrain rendering method capable of achieving multiple resolutions while solving a crack problem.
  • the inner tessellation factor and edge tessellation factor is assigned using a quadtree including a parent node and a child node Generating a quad patch; Generating a base mesh using the quadpatch; And restoring the terrain by applying a displacement map to the base mesh.
  • an inner tessellation factor and an edge tessellation factor are allocated using a quadtree including a parent node and a child node.
  • a graphic processing unit which generates a base mesh using the quadpatch, and restores the terrain by applying a displacement map to the base mesh.
  • Terrain rendering method and apparatus can solve the crack problem while achieving multiple resolutions.
  • quadtree since the entire terrain is managed through a simplified data structure called quadtree, even a large terrain can be managed through very little memory consumption, and adaptive resolution is determined and data is updated. You can do things very quickly, efficiently, and simply, which greatly improves overall performance.
  • FIG. 1 is a block diagram of a terrain rendering apparatus according to an embodiment of the present invention.
  • FIG. 2 is a flowchart illustrating a terrain rendering method according to an embodiment of the present invention.
  • FIG. 3 illustrates a hierarchical structure of a mesh used to calculate an object space error in a terrain rendering method according to an embodiment of the present invention.
  • FIG. 4 is a diagram for describing generation of a quadtree for each tile in the terrain rendering method according to an embodiment of the present invention.
  • FIG. 5 illustrates a terrain rendering pipeline in a graphics processing unit (GPU) in a terrain rendering method according to an embodiment of the present invention.
  • GPU graphics processing unit
  • FIG. 6 illustrates a result of restoring a terrain using a height map and a feature preserving geometry image (FGI) in the terrain rendering method according to an embodiment of the present invention.
  • FGI feature preserving geometry image
  • FIG. 7 shows an example of reconstructing a projected geometric image using FGI in the terrain rendering method according to an embodiment of the present invention.
  • FIG. 8 is a diagram illustrating a process of generating an FGI in a terrain rendering method according to an embodiment of the present invention.
  • FIG 9 illustrates a node merging algorithm in the terrain rendering method according to an embodiment of the present invention.
  • FIG. 10 illustrates a node splitting algorithm in the terrain rendering method according to an embodiment of the present invention.
  • FIG. 1 is a block diagram of a terrain rendering apparatus according to an embodiment of the present invention.
  • the terrain rendering apparatus 100 may include a preprocessor 110, an operation processor 120, and a graphic processor 130.
  • the preprocessor 110 may perform a preprocessing procedure before performing terrain rendering.
  • the preprocessor 110 may measure object-space errors, or may generate a geometry image by parameterizing a terrain mesh. Object space errors and geometric images will be described later.
  • the calculation processor 120 may calculate or generate various data for performing terrain rendering in the graphic processor 130. For example, the operation processor 120 may generate a quadtree using the measured object space error and determine an inner tessellation factor. The operation processor 120 may determine an edge tessellation factor using the inner tessellation factor.
  • the graphic processor 130 may perform terrain rendering by using the data processed by the calculation processor 120.
  • the graphics processor 130 may be referred to as a graphics processing unit (GPU).
  • the graphic processor 130 may reconstruct the terrain using quad patch information generated by the calculation processor.
  • One node of the plurality of nodes included in the quadtree may be a quad patch.
  • the operations performed by the operation processor 120 and the graphic processor 130 are performed every frame unlike the preprocessor 110.
  • FIG. 2 is a flowchart illustrating a terrain rendering method according to an embodiment of the present invention.
  • the preprocessor 110 may measure an object space error (S210).
  • the object space error can be used to find a screen-space error.
  • the screen space error indicates how many pixels on the screen the object space error corresponds to.
  • the object space error can be measured in the following manner.
  • Figure 3 illustrates a hierarchical structure of a mesh used to calculate an object space error in a terrain rendering method according to an embodiment of the present invention.
  • Figure 3 (a) is a height map terrain (height-mapped terrain)
  • Figure 3 (b) is a feature-preserved geometry (FGI-mapped terrain). If the height map is a map created simply by raising each vertex of the mesh structure vertically to the height in three-dimensional coordinates, the feature preserved geometric image terrain (FGI) maps each vertex of the mesh structure in three-dimensional coordinates. It is a map created by raising the terrain according to the vector considering the feature.
  • FGI feature-preserved geometry
  • the displacement map has a maximum resolution of 513 ⁇ 513
  • the maximum resolution that the graphics processor 130 can process is 65 X 65 due to hardware limitations.
  • the object space error is compared with the height of each mesh vertex and the height of the mesh vertices of 512 levels while sequentially decreasing the resolution of the terrain as shown in FIG. 3 in the preprocessing step. And finally the largest value is determined by the object space error at each level. That is, the object space error of a terrain having a resolution of 513 x 513 is divided into a total of 8 x 8 blocks, and the difference in the largest height value in the area becomes an object space error for each level. This means that if the terrain has a maximum resolution of 513 ⁇ 513, it will divide the resolution in half and store the difference in the largest height value in the area, from 513 ⁇ 513 to 257 ⁇ 257,. . The maximum value (difference in the maximum height value) in the area is stored while reducing the resolution to 3 ⁇ 3, 2 ⁇ 2.
  • a mesh having (2 n + 1) x (2 n + 1) vertices is called a 2 n level.
  • the screen-space error is a value that indicates how many pixels the object-space error corresponds to when projecting the object space error to the screen space (the actual position shown in the monitor).
  • the operation processor 120 may generate a quadtree using the screen space error and determine an inner tessellation factor (S220). Each node has an inner tessellation factor corresponding to a multiplier of 2. Since the maximum resolution that can be processed by the graphic processor 130 is 65 ⁇ 65, it may have a value of 64.
  • the first time you construct a quadtree you start at the sparse level (Level 1). For each 8x8 object-space error region, locate the corresponding error at the point closest to the viewpoint in the region, and project the screen-space to obtain the screen-space error value. If the screen space error is less than a predetermined threshold, the inner tessellation factor of the tile is set to one.
  • the screen space error is greater than the threshold, increase the level by one and repeat until the error is below the threshold. If the inner tessellation factor of a tile is greater than 64, it will exceed the GPU limit, so split the tile into four patches (that is, create child nodes), and then re-level the error for each split patch. Measure the value. If the maximum resolution of the terrain is 513 x 513, the depth of the quadtree is limited to four.
  • the operation processor 120 may calculate an edge tessellation factor (S230).
  • the operation processor 120 may determine a minimum edge tessellation factor value that satisfies the threshold. This is determined by breadth-first traversal of the resulting quadtree.
  • FIG. 4 is a diagram for describing generation of quadtrees for each tile in the terrain rendering method according to an exemplary embodiment of the present invention.
  • nodes B and C share edges with nodes B and C having smaller inner tessellation factors.
  • Nodes B and C have the same inner tessellation factor 2, and increasing them at the same rate to compare with node A results in an inner tessellation factor of 4.
  • the inner tessellation factor of nodes B and C becomes 4. Then, the number of the smallest in the region between [4, 8] and satisfying the following two conditions is determined as the edge tessellation factor at the corresponding edge.
  • Number to be extracted must be a multiplier of 2.
  • the calculation processing unit 120 sets the left edge tessellation factor of the node A to 4, and sets the node B and the node C to 2 by dividing 4 according to the edge length ratio. .
  • node A shares edges with nodes D, E, and F with different sizes.
  • the largest value among inner tessellation factor values increased with length ratio at nodes D, E and F is 64. Since node A is 8, the range of edge tessellation factor is [8, 64]. Here, the value satisfying the two conditions described above is 8. Therefore, the upper edge tessellation factor of node A is set to 8, and nodes D, E, and F are divided according to the length ratio and have values of 4, 2, and 2, respectively.
  • nodes B and H smaller than G are located.
  • the value of node G is 1, and the value according to the length ratio of nodes H and B is 4. Therefore, the range of edge tessellation factor is [1,4].
  • 2 is determined as the lower edge tessellation factor of the node G and 1 is set to 1 for H and B, respectively.
  • the smaller value of the inner tessellation factors of nodes E and I having the same size is 16, and thus this value is determined as the edge tessellation factor of E and I.
  • the resolution of the tile is determined by the method described above, it is possible to have multiple resolutions without cracking.
  • the same procedure applies to the edges shared by two tiles. For this purpose, before the edge tessellation factor is calculated, the quadtree data and inner tessellation factor values for all tiles in the view frustum must be determined.
  • the operation processor 120 may generate a quad patch as illustrated in FIG. 4 using the quadtree, the generated inner tessellation factor, and the edge tessellation factor (S240).
  • the graphic processor 130 may perform terrain rendering using the input quadpatch information and a tessellator (S250).
  • FIG. 5 illustrates a terrain rendering pipeline in a graphic processor (GPU) 130 in a terrain rendering method according to an embodiment of the present invention.
  • Quadpatch information is input to the graphic processor 130.
  • Quadpatch information is used to create a flat base mesh called a semi-uniform (u, v) grid.
  • the terrain is reconstructed by moving each point of the base mesh in a 3D coordinate system using a height value (when height map is used as a displacement map) or a vector value (when FGI is applied as a displacement map) in a domain shader.
  • the hull shader serves to convey the tessellation factor determined by the operation processor 120 to the tessellator.
  • the Tessellator is the part that actually creates the semi-uniform (u, v) grid, a patch with a resolution that matches the input tessellation factor.
  • the grid generated in this way can be rendered by restoring the final terrain by moving each point by using the displacement map information in the domain shader stage.
  • the displacement map may include a height map, a geometry image, and the like.
  • An example of the geometry image is a feature preserving geometry image (FGI) considering the rate of change.
  • FGI feature preserving geometry image
  • FIG. 6 illustrates a result of restoring a terrain using a height map and a feature preserving geometry image (FGI) in the terrain rendering method according to an embodiment of the present invention.
  • FGI feature preserving geometry image
  • FIG. 6 (a) shows the result of reconstructing the terrain using a height map with sufficient resolution
  • FIG. 6 (b) shows a state in which the tessellation factor is reduced and the resolution is insufficient
  • FIG. 6 (c) shows the FGI using FGI.
  • the vertices are placed where there is a high rate of change, indicating a reconstruction with poor resolution.
  • the technique of restoring using the height map has a problem in that the terrain with high change rate cannot be properly restored unless it has sufficient resolution.
  • FGI the higher the rate of change, the more vertices are located, which allows for better reconstruction with less resolution.
  • FIG. 7 shows an example of reconstructing a projected geometric image using an FGI.
  • FIG. 7 (a) shows a projected geometric image
  • FIG. 7 (b) shows an example of restoring FIG. 7 (a) using FGI.
  • the projected geometric image as shown in FIG. 7 (a) may not be properly restored, but the projected geometric image as shown in FIG. 7 (a) may be properly restored using FGI. .
  • FGI may be generated using Equation 1 below.
  • Is a measure of the degree of bending
  • is a user-defined parameter
  • the weight can be interpreted as the rate of change, where the point of high change has a high weight, and the point of low change has a low weight.
  • FIG. 8 is a diagram illustrating a process of generating an FGI in a terrain rendering method according to an embodiment of the present invention.
  • FIG. 8 (a) shows a height map
  • FIG. 8 (b) shows a regular grid mesh.
  • the vertex weight measured by Equation 1 is stored, and the mesh may be parameterized.
  • the parameterization result can be modified to have a region having a larger weight and a region having a smaller weight by using a Voronoi region. Many iterations of the above modifications can be adjusted to have more accurate values.
  • 8 (c) shows the result of repeating the modification once
  • FIG. 8 (d) shows the result of repeating the modification several hundred times (about 500 times).
  • 8 (e) is finally FGI by sampling the parameterization result and storing the position value in the texture.
  • FGI is a texture of the value obtained through sampling after parameterization
  • there is a slight difference in the boundary area This means that even though two textures of the same adjacent tile type refer to the same area at the boundary, there is a slight difference in the value, which does not have exactly the same value, which causes cracking.
  • Zippering is a method of selecting one of two textures having adjacent boundaries and forcibly copying data of the corresponding boundary region to another texture to match the same value.
  • the quadtree may be updated in real time as the position of the view changes.
  • FIG 9 illustrates a node merging algorithm in the terrain rendering method according to an embodiment of the present invention.
  • the operation processor 120 first performs merging. merging measures the screen-space error using tessellation factor 64 for parent nodes with four leaf nodes using bottom-up and breadth-first methods, and the error is below the threshold. If it does, merging removes the leaf node, otherwise the operation is left as it is.
  • Merging is performed on nodes that no longer need to be compact. If we measure the screen space error of the current node and find that it has sufficient resolution (error is below the threshold), the screen space error is also measured by other children with the same parent node. If the error is below the threshold here, the screen space error is measured again in the parent node. If it turns out that you have enough resolution here, you don't need to keep four child nodes, so you get rid of the four child nodes and leave only the parent node. This process is merging.
  • splitting is performed.
  • FIG. 10 illustrates a node splitting algorithm in the terrain rendering method according to an embodiment of the present invention.
  • splitting determines whether the measured screen space error is below the threshold by considering the changed position of the camera while traversing the extreme nodes. If the error is greater than the threshold, you do not have enough resolution, so split the node and create four child nodes. This process is splitting.
  • the merging and splitting may be performed while satisfying the following multi-resolution scheme.
  • the depth of quadtree is limited to 4 and is configured with the minimum amount of CPU resources.
  • Quadtrees are handled completely independently of one another in the GPU pipeline, but the entire terrain created by quadtrees satisfies the 'geometric continuity'.
  • quadtree is a regular structure, instead of sending four corner points to the GPU pipeline, only index information of one node can be rendered.
  • the terrain rendering method according to an embodiment of the present invention described above can solve a crack problem while achieving multiple resolutions.
  • the overall performance is improved by efficiently and simply managing the tiles required to render the terrain through the quadtree, so that the large terrain can be rendered in real time.
  • the above-described terrain rendering method may be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer-readable recording medium.
  • the computer-readable recording medium may include program instructions, data files, data structures, and the like, alone or in combination.
  • the program instructions recorded on the recording medium may be those specially designed and configured for the present invention, or may be known and available to those skilled in computer software.
  • Computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks such as floppy disks. Magnetic-Optical Media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
  • the recording medium may be a transmission medium such as an optical or metal wire, a waveguide, or the like including a carrier wave for transmitting a signal specifying a program command, a data structure, or the like.
  • program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
  • the terrain rendering method and apparatus described above may not be limitedly applied to the configuration and method of the above-described embodiments, but the embodiments may be selectively combined with all or some of the embodiments so that various modifications may be made. It may be configured.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Remote Sensing (AREA)
  • Image Generation (AREA)

Abstract

본 발명은 GPU 테셀레이션을 이용한 다중 해상도 지형 렌더링 방법에 관한 것이다. 본 발명의 일실시예에 의한 지형 렌더링 방법은 GPU 테셀레이션(tessellation)을 이용한 지형 렌더링 방법에 있어서, 부모 노드 및 자식 노드를 포함하는 quadtree를 이용하여 inner tessellation factor 및 edge tessellation factor가 할당된 쿼드패치(quad patch)를 생성하는 단계; 상기 쿼드패치를 이용하여 베이스 메쉬를 생성하는 단계; 및 상기 베이스 메쉬에 디스플레이스먼트 맵(displacement map)을 적용하여 지형을 복원시키는 단계를 포함할 수 있다.

Description

지형 렌더링 방법
본 발명은 지형 렌더링 방법에 관한 것으로, 보다 상세하게는 GPU 테셀레이션을 이용한 다중 해상도 지형 렌더링 방법에 관한 것이다.
지형 렌더링(terrain rendering)은, 지리 정보 시스템(Geographic Information System; GIS), 비행 시뮬레이션, 대화식 컴퓨터 게임 등과 같은 다양한 분야에서 이용되고 있다. 지형 렌더링을 위한 방법으로 삼각형 메쉬나 다른 다각형 모델들이 흔히 사용되고 있다.
지형 렌더링에 필요한 지리 정보 데이터의 크기는 적게는 수백 GB 에서 수십 TB까지 그 용량의 크기가 매우 크기 때문에, 이를 실시간에 렌더링 하기 위해서는, 사용자의 시점과 표면의 굴곡 등을 고려하여 mesh를 간략화하여 렌더링 할 수 있는 기법들을 적용해야 한다. 관련된 선행문헌으로 대한민국 등록특허 제10-0726031호가 있다.
지형 렌더링 기법은 크게 두 가지로 그룹으로 분류 할 수 있다. 첫 번째 그룹은 regular hierarchical structure를 사용하는 그룹인데 가장 대표적인 예가 hierarchies of right triangles (HRT) 이다. 두 번째 그룹은 triangulated irregular networks (TINs)이다. TINs은 지형을 비균일하게 샘플링 할 수 있기 때문에 불필요한 삼각형의 수를 최소화 시킬 수 있다는 장점이 있으나, multi-resolution을 달성하기 위해 복잡한 연산과 더 큰 저장 공간이 필요하다는 단점이 있다.
따라서 최근에는 multi-resolution을 효율적으로 달성하기 위한 지형 렌더링 기법에 대한 연구가 필요한 실정이다.
본 발명의 목적은 크랙(crack) 문제를 해결하면서, 다중 해상도를 달성할 수 있는 지형 렌더링 방법을 제공하는 데 있다.
상기 목적을 달성하기 위해 본 발명의 일실시예에 의하면, GPU 테셀레이션(tessellation)을 이용한 지형 렌더링 방법에 있어서, 부모 노드 및 자식 노드를 포함하는 quadtree를 이용하여 inner tessellation factor 및 edge tessellation factor가 할당된 쿼드패치(quad patch)를 생성하는 단계; 상기 쿼드패치를 이용하여 베이스 메쉬를 생성하는 단계; 및 상기 베이스 메쉬에 디스플레이스먼트 맵(displacement map)을 적용하여 지형을 복원시키는 단계를 포함하는 지형 렌더링 방법이 제공된다.
상기 목적을 달성하기 위해 본 발명의 일실시예에 의하면, GPU 테셀레이션(tessellation)을 이용한 지형 렌더링 장치에 있어서, 부모 노드 및 자식 노드를 포함하는 quadtree를 이용하여 inner tessellation factor 및 edge tessellation factor가 할당된 쿼드패치(quad patch)를 생성하는 연산 처리부; 및 상기 쿼드패치를 이용하여 베이스 메쉬를 생성하고, 상기 베이스 메쉬에 디스플레이스먼트 맵(displacement map)을 적용하여 지형을 복원시키는 그래픽 처리부를 포함하는 지형 렌더링 장치가 제공된다.
본 발명의 일실시예에 의한 지형 렌더링 방법 및 장치는 다중 해상도를 달성하면서도 크랙 문제를 해결할 수 있다.
또한, 본 발명의 일실시예에 의하면, GPU의 Tessellator를 이용해 빠른 속도로 지형을 렌더링 할 수 있으면서도, 지형의 굴곡 정보와 카메라의 위치에 따라 적응적인 해상도를 결정할 수 있어서 불필요하게 소모되는 렌더링 자원을 최소화 할 수 있다.
또한, 본 발명의 일실시예에 의하면, 전체 지형이 quadtree라는 간략화된 데이터 구조를 통해 관리되기 때문에, 대용량 지형이라도 매우 적은 메모리 소모만을 통하여 관리할 수 있으며, 적응적 해상도를 결정하고, 데이터를 업데이트 하는 일들을 매우 빠르고 효율적이며 간단하게 처리 할 수 있어 전반적인 성능이 큰 폭으로 향상된다.
도 1은 본 발명의 일실시예와 관련된 지형 렌더링 장치의 블록도이다.
도 2는 본 발명의 일실시예와 관련된 지형 렌더링 방법을 나타내는 흐름도이다.
도 3은 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 오브젝트 스페이스 에러를 계산에 이용되는 메쉬의 계층 구조를 나타낸다.
도 4는 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 각 타일에 대한 quadtree를 생성을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 그래픽 처리부(GPU)에서 지형 렌더링 파이프 라인을 나타낸다.
도 6은 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 height map과 특징 보존 기하학 이미지(FGI, Feature preserving Geometry Image)을 이용하여 지형을 복원하는 결과를 나타낸다.
도 7은 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 FGI를 사용하여 돌출된 기하 이미지를 복원하는 예를 나타낸다.
도 8은 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 FGI를 생성하는 과정을 나타내는 도면이다.
도 9은 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 노드 머징(merging) 알고리즘을 나타낸다.
도 10은 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 노드 스플리팅(splitting) 알고리즘을 나타낸다.
[부호의 설명]
100: 지형 렌더링 장치
110: 전처리부
120: 연산 처리부
130: 그래픽 처리부
이하, 본 발명의 일실시예와 관련된 지형 렌더링 방법 및 장치에 대해 도면을 참조하여 설명하도록 하겠다.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
도 1은 본 발명의 일실시예와 관련된 지형 렌더링 장치의 블록도이다.
도시된 바와 같이, 지형 렌더링 장치(100)는 전처리부(110), 연산 처리부(120) 및 그래픽 처리부(130)를 포함할 수 있다.
전처리부(110)는 지형 렌더링 수행 전의 전처리 절차를 수행할 수 있다. 예들 들어, 전처리부(110)는 오브젝트 스페이스 에러(Object-space Errors)를 측정할 수도 있고, 지형 메쉬(terrain mesh)를 파라미터화(parameterization)하여 기하 이미지(Geometry Image)를 생성할 수 있다. 오브젝트 스페이스 에러 및 기하 이미지에 대해서는 후술하도록 하겠다.
연산 처리부(120)는 그래픽 처리부(130)에서 지형 렌더링을 수행하기 위한 다양한 데이터를 연산하거나 생성할 수 있다. 예를 들어, 연산 처리부(120)는 측정된 오브젝트 스페이스 에러를 이용하여 quadtree를 생성하고 inner tessellation factor을 결정할 수 있다. 그리고 연산 처리부(120)는 상기 inner tessellation factor을 이용하여 edge tessellation factor를 결정할 수 있다.
그래픽 처리부(130)는 상기 연산 처리부(120)에서 처리된 데이터를 이용하여 지형 렌더링을 수행할 수 있다. 그래픽 처리부(130)는 GPU(Graphics Processing Unit)이라 할 수 있다. 예를 들어, 그래픽 처리부(130)는 상기 연산 처리부에서 생성된 쿼드패치(quad patch) 정보를 이용하여 지형을 복원할 수 있다. quadtree에 포함된 복수의 노드 중 하나의 노드가 쿼드패치(quad patch)가 될 수 있다.
하나의 쿼드패치 당 고려해야 하는 tessellation factor는 총 6개로 각 edge에 대한 tessellation factor 4개와 내부의 가로, 세로 분할 수에 해당하는 inner tessellation factor 2개가 있다.
상기 연산처리부(120)와 상기 그래픽 처리부(130)에서 수행되는 작업은 전처리부(110)와 달리 매 프레임마다 수행된다.
도 2는 본 발명의 일실시예와 관련된 지형 렌더링 방법을 나타내는 흐름도이다.
전처리부(110)는 오프젝트 스페이스 에러를 측정할 수 있다(S210). 상기 오브젝트 스페이스 에러는 스크린 스페이스 에러(screen-space error)를 구하는데 이용될 수 있다. 오프젝트 스페이스 에러가 screen상에서 몇 pixel에 해당하는지를 나타내는 값이 스크린 스페이스 에러이다. 오브젝트 스페이스 에러는 다음과 방식으로 측정될 수 있다.
도 3은 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 오브젝트 스페이스 에러를 계산에 이용되는 메쉬의 계층 구조를 나타낸다. 도 3(a)는 height map 지형(Height-mapped terrain)이고, 도 3(b)는 특징 보존 기하 지형(FGI-mapped terrain)이다. height map이 3차원 좌표상에서 메쉬 구조의 각 버텍스(vertex)를 높이에 맞게 단순히 수직으로 올려 생성한 맵이라면, 특징 보존 기하 이미지 지형(FGI)는 3차원 좌표상에서 메쉬 구조의 각 버텍스(vertex)을 지형을 특징을 고려한 벡터에 따라 올려 생성한 맵이라 할 수 있다.
이하 실시예에서는 디스플레이스먼트 맵(displacement map)이 최대 513 × 513의 해상도를 가지는 경우에 대해 예를 들어 설명하기로 한다. 이 경우, 그래픽 처리부(130)에서 처리할 수 있는 최대 해상도는 하드웨어적인 한계로 인해 65 X 65 이다.
오브젝트 스페이스 에러는 전처리 단계에서 도 3과 같이 지형의 해상도(resolution)를 순차적으로 낮춰가면서 각 메쉬(mesh) 버텍스(vertex)에서의 높이를 512 level의 메쉬(mesh) 버텍스의 높이와 비교하여 그 차이를 계산하고 최종적으로 가장 큰 값이 각 레벨에서의 오브젝트 스페이스 에러(object space error)로 결정된다. 즉, 513 × 513의 해상도를 가지는 지형의 오브젝트 스페이스 에러는 총 8 × 8의 block으로 쪼개져, 그 영역 내에서 가장 큰 높이값의 차이가 level 별 오브젝트 스페이스 에러가 된다. 이는 지형이 513 × 513의 최대 해상도를 가질 경우 해상도를 반씩 나눠가면서 영역 내에서 가장 큰 높이값의 차이를 저장하는 것인데, 513 × 513에서부터 257 × 257, . . , 3 × 3, 2 × 2까지 해상도를 낮춰가면서 영역내의 최대값(최대 높이값의 차이)이 저장된다. (2n + 1)×(2n + 1)개의 버텍스를 갖는 메쉬를 2n 레벨이라 한다.
스크린 스페이스 에러(screen-space error)는 상기 오브젝트 스페이스 에러를 screen space(모니터에서 보여지는 실제 위치)로 프로젝션(projection) 했을 때, 몇 pixel에 해당하는지를 나타내는 값이다.
연산 처리부(120)는 상기 스크린 스페이스 에러를 이용하여 quadtree를 생성하고, inner tessellation factor를 결정할 수 있다(S220). 각 node는 2의 승수에 해당하는 inner tessellation factor를 가지며, 그래픽 처리부(130)에서 처리할 수 있는 최대 해상도는 65 × 65이기 때문에 최대 64의 값을 가질 수 있다.
가장 처음에 quadtree를 구성할 때에는 가장 성긴 레벨에서부터 시작한다(Level 1). 각 8×8의 object-space error 영역에 대해, 영역 내에서 viewpoint에 가장 가까운 점에 해당 error를 위치시키고, screen-space로 projection시켜 screen-space error 값을 구한다. 만약 스크린 스페이스 에러가 미리 정해진 한계값(threshold)보다 작다면, 해당 타일의 inner tessellation factor는 1로 설정된다.
하지만 스크린 스페이스 에러가 상기 한계값(threshold)보다 크다면, level을 하나씩 증가시키면서 error값이 threshold 이하가 될 때까지 반복한다. 만약 타일의 inner tessellation factor가 64보다 크다면 GPU의 한계를 넘어서게 되므로, 타일을 4개의 patch로 쪼개고(즉, 자식 노드(child node)를 생성함), 각 쪼개진 patch들에 대해 다시 level에 따른 error값을 측정한다. 지형의 최대 해상도가 513×513인 경우에는 quadtree의 depth는 4로 제한된다.
그리고 이하 실시예에서는 가로 분할 수에 해당하는 inner tessellation factor와 세로 분할 수에 해당하는 inner tessellation factor가 동일한 값을 가지는 것을 가정하고 설명하기로 한다.
연산 처리부(120)는, quadtree의 모든 자식 노드(leaf 노드)에 대하여 inner tessellation factor가 결정되면, edge tessellation factor를 계산할 수 있다(S230).
테셀레이션(tessellation)을 통해서 생성되는 삼각형의 숫자를 최대한 줄여야 하므로, 연산 처리부(120)는 threshold를 만족하는 최소의 edge tessellation factor 값을 결정할 수 있다. 이는 만들어진 quadtree를 breadth-first 순회하여 결정하게 된다.
도 4는 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 각 타일에 대한 quadtree(quad tree)를 생성을 설명하기 위한 도면이다.
도 4에서 inner tessellation factor 8을 가지는 노드(node) A를 보면, 더 작은 inner tessellation factor를 가지는 노드(node)인 B, C와 edge를 공유하고 있다. 노드 B와 C는 똑같이 inner tessellation factor 2를 가지고 있는데, 노드 A와 비교하기 위해 이들을 동일한 비율로 증가시키면 inner tessellation factor 가 4가 된다. 즉, 노드 B와 C의 edge 길이를 노드 A의 edge 길이와 통일시키기 위해서 노드 B와 C의 edge 길이를 2배 증가시키면, 노드 B와 C의 inner tessellation factor는 4가 된다. 그러면 [4,8] 사이의 영역에서 가장 작은 크기이고 다음의 2가지 조건을 만족하는 수가 해당 edge에서의 edge tessellation factor 로 결정된다.
1) 추출되는 숫자는 2의 승수이어야 함
2) edge 길이 비에 따라 크기 비에 따라 나누어져 자연수를 가질 수 있는 값이어야 함
상기 조건을 만족하는 최소의 수는 4이므로, 연산 처리부(120)는 노드 A의 왼쪽 edge tessellation factor에 4로 설정하고, 노드 B와 노드 C에는 edge 길이 비에 따라 4를 나눠 각각 2씩 설정한다.
노드 A의 위쪽 edge를 보면, 서로 다른 크기를 갖는 노드 D, E, F와 edge를 공유하고 있다. 노드 D, E, F에서 길이 비에 따라 증가시킨 inner tessellation factor 값들 중 가장 큰 값은 64이다. 그리고 노드 A는 8이므로 edge tessellation factor 의 범위는 [8, 64]이다. 여기서 전술한 2가지 조건을 만족시키는 값은 8이다. 그러므로 노드 A의 위쪽 edge tessellation factor 는 8로 설정되고, 노드 D, E, F에는 길이 비에 따라 이 값이 나눠지면서 각각 4, 2, 2의 값을 가진다.
노드 G의 아래쪽 edge를 보면, G보다 작은 노드 B와 H가 위치하고 있다 노드 G의 값은 1이고, 노드 H, B의 길이 비에 따른 값은 4이다. 그러므로 edge tessellation factor의 범위는 [1,4]가 된다. 여기서 1은 길이 비에 따라 나눠질 수 없어, 상기 2번 조건을 만족시키지 못하므로 2가 노드 G의 아래쪽 edge tessellation factor로 결정됨과 동시에 H와 B에 각각 1씩 설정된다. 같은 크기를 가지는 노드 E와 노드 I의 inner tessellation factor 중 작은 값은 16이며 따라서 이 값을 E와 I의 edge tessellation factor로 결정한다.
상기 설명한 방법에 의해 타일의 해상도가 결정되면, crack이 없이 다중 해상도를 가질 수 있게 된다. 상기 과정은 2개의 타일에 의해 공유된 edge에 대해서도 동일하게 적용된다. 이를 위해 edge tessellation factor가 계산되기 전에, view frustum 내의 모든 타일에 대한 quadtree 데이터와 inner tessellation factor 값들이 결정되어야 한다.
연산 처리부(120)는 quadtree, 생성된 inner tessellation factor 및 edge tessellation factor를 이용하여 도 4와 같은 쿼드패치(quad patch)를 생성할 수 있다(S240).
상기 쿼드패치에 대한 정보는 그래픽 처리부(130)로 입력될 수 있다. 그래픽 처리부(130)는 입력된 쿼드패치 정보 및 테셀레이터(tessellator)를 이용하여 지형 렌더링을 수행할 수 있다(S250).
도 5는 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 그래픽 처리부(GPU, 130)에서 지형 렌더링 파이프 라인을 나타낸다.
먼저 그래픽 처리부(130)의 입력으로 쿼드패치 정보가 입력된다. 쿼드패치 정보는 semi-uniform (u,v) grid 라 불리는 평평한 베이스 메쉬(base mesh)를 만드는데 사용되는 정보이다. 추후에 domain shader에서 높이값(displacement map으로 height map 적용 시) 또는 vector값(displacement map으로 FGI 적용 시)을 이용하여 상기 베이스 메쉬의 각 점을 3차원 좌표계에서 이동시켜 지형을 복원한다.
hull shader는 연산 처리부(120) 에서 결정된 tessellation factor를 tessellator로 전해주는 역할을 한다. Tessellator는 입력된 tessellation factor에 맞는 해상도를 갖는 patch인 semi-uniform (u,v) grid를 실제로 생성하는 부분이다. 이렇게 생성된 grid는 domain shader 단계에서 displacement map이라는 지형의 정보를 이용해서 각 점을 이동시킴으로써 최종 지형을 복원하여 렌더링을 수행할 수 있다. 상기 displacement map은 height map, 기하 이미지(Geometry Image) 등을 포함할 수 있다. 상기 기하 이미지(Geometry Image)의 예로 변화율을 고려한 특징 보존 기하 이미지(FGI, Feature preserving Geometry Image)가 있다.
도 6은 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 height map과 특징 보존 기하 이미지(FGI, Feature preserving Geometry Image)을 이용하여 지형을 복원하는 결과를 나타낸다.
도 6(a)는 충분한 해상도를 가지고 height map을 이용해 지형을 복원한 결과이고, 도 6(b)는 tessellation factor가 줄어들어 부족한 해상도를 가지게 된 상태를 나타내고, 도 6(c)는 FGI를 사용하여 정점들이 높은 변화율이 있는 곳으로 위치하게 되어 부족한 해상도로 복원한 상태를 나타낸다.
height map을 이용하여 복원하는 기술은 충분한 해상도를 가지지 못하면 변화율이 높은 지형을 제대로 복원하지 못하는 문제가 있다. 하지만 FGI를 사용하게 되면, 변화율이 높은 점으로 더 많은 정점이 위치하게 되어 적은 해상도로도 더 뛰어난 복원을 할 수 있다.
도 7은 FGI를 사용하여 돌출된 기하 이미지를 복원하는 예를 나타낸다.
도 7(a)는 돌출된 기하 이미지를 나타내고, 도 7(b)는 FGI를 이용하여 상기 도 7(a)를 복원한 예를 나타낸다.
도시된 바와 같이, height map을 이용하는 경우는 도 7(a)와 같은 돌출된 기하 이미지를 제대로 복원할 수 없지만, FGI를 이용하여 도 7(a)와 같은 돌출된 기하 이미지도 제대로 복원할 수 있다.
FGI는 하기 수학식 1을 이용하여 생성될 수 있다.
수학식 1
Figure PCTKR2014002497-appb-M000001
여기서,
Figure PCTKR2014002497-appb-I000001
는 굴곡 정도를 측정한 변수이고,
Figure PCTKR2014002497-appb-I000002
는 ridge에 포함된 점에 대하여 weight를 증가시키기 위해 주는 값이고,
Figure PCTKR2014002497-appb-I000003
는 버텍스(v, vertex)를 공유하는 삼각형의 넓이 합이다. 또한, α는 user-defined parameter이고,
Figure PCTKR2014002497-appb-I000004
는 v에 연결된 edge e의 외부 이면각이다. weight는 변화율로 해석될 수 있으며, 변화율이 높은 지점이 높은 weight를 가지며, 변화율이 작은 지점은 낮은 weight를 가지게 된다.
도 8은 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 FGI를 생성하는 과정을 나타내는 도면이다.
도 8(a)는 height map을 나타내고, 도 8(b)는 regular grid mesh를 나타낸다. 상기 수학식 1에 의해 측정된 vertex weight는 저장되고, 해당 mesh는 parameterization 될 수 있다.
도 8(b)를 보로노이 영역을 이용하여 weight가 큰 점이 조금 더 큰 영역을 가지고 weight가 작은 점이 조금 더 적은 영역을 가지도록 parameterization 결과를 수정할 수 있다. 상기 수정의 많은 반복을 통해 더 정확한 값을 가지도록 조정할 수 있다. 도 8(c)는 수정을 1번 반복한 결과이고, 도 8(d)는 상기 수정을 수백 번(약 500번) 반복한 결과이다. 그리고 도 8(e)는 parameterization 결과를 sampling하여 위치 값을 texture에 저장 함으로써 최종적으로 FGI이다.
한편, FGI를 사용하는 경우에는 전처리 단계에서 Zippering 과정을 수행해야 crack 발생을 방지할 수 있다.
FGI는 parameterization후에 sampling을 통해서 얻어내는 값을 텍스쳐화 한 것이기 때문에 boundary영역에서 미세한 값의 차이가 발생한다. 이는 같은 서로 인접한 타일 형식의 2개의 texture가 boundary에서 같은 영역을 참조함에도 불구하고, 미세한 값의 차이가 발생하여 완전히 동일한 값을 가지지 않게 되는 현상을 가져오고, 이는 결국 crack을 발생시키게 된다. 이를 방지하기 위해, 서로 인접한 boundary를 가지는 2개의 texture중 1개를 골라 해당 boundary영역의 데이터를 다른 texture에 강제로 복사하여 동일한 값을 맞춰 주는 방법을 Zippering이라 한다.
한편, 본 발명의 일실시예에 의하면, 상기와 같이 한 번 타일의 quadtree가 구성되고 난 후에는, view의 위치가 바뀜에 따라서 실시간에 quadtree가 업데이트될 수 있다. 이전 프레임에서 사용되었던 quadtree를 각각 merging과 splitting 과정을 통해 업데이트 함으로써 가장 처음에 quadtree를 구성할 때 보다 훨씬 적은 연산 자원을 사용하여 다중 해상도 타일을 구성할 수 있다.
도 9은 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 노드 머징(merging) 알고리즘을 나타낸다.
view가 변화하면, 연산 처리부(120)는 우선 merging을 수행한다. merging은 bottom-up 과 breadth-first 방법을 이용하여 4개의 자식 노드(leaf node)를 가지는 부모 노드(parent node)들에 대하여 tessellation factor 64를 이용하여 screen-space error를 측정해보고, error가 threshold 이하라면 leaf node를 제거하는 merging을 수행하고, 그렇지 않다면 그대로 두는 방식의 연산을 수행한다.
좀 더 구체적으로, 우선 Merging은 더 이상 조밀하게 표현할 필요가 없는 node에 대해서 수행하게 된다. 현재 node의 screen space error를 측정하였는데 충분한 resolution을 가지는 것으로 판명(error가 threshold 이하)되면, 자기와 같은 부모 node를 가지는 다른 자식들에서도 screen space error를 측정한다. 여기서도 error가 threshold 이하였다면 마지막으로, 부모 node에서도 다시 한번 screen space error를 측정한다. 여기서도 충분한 resolution을 가지는 것으로 판명되면 4개의 자식node들을 유지할 필요가 없으므로 4개의 자식 node들을 없애고 부모 node만 남긴다. 이 과정이 merging이다.
merging이 수행된 후에는 splitting을 수행한다.
도 10은 본 발명의 일실시예와 관련된 지형 렌더링 방법에서 노드 스플리팅(splitting) 알고리즘을 나타낸다.
각 자식 노드(leaf node)들에 대하여 tessellation factor 64로 screen-space error를 측정하여 error threshold 이하인지 체크한다. 만약 error가 threshold를 넘는다면, 4개의 leaf node를 생성하는 splitting을 수행한다.
좀 더 구체적으로 splitting은 가장 말단의 node들을 순회하면서 변화된 Camera의 위치를 고려하여 측정한 screen space error가 threshold 이하인지를 판별한다. 만약 error가 threshold보다 크다면, 충분한 resolution을 가지지 못한 것이므로 추가적으로 노드를 쪼개어 4개의 자식 node들을 생성한다. 이 과정이 splitting이다.
상기 merging과 splitting은 아래의 multi-resolution scheme을 만족하면서 수행될 수 있다.
1. quadtree의 depth는 4로 한정되며, CPU의 자원을 최소한으로 사용하여 구성한다.
2. quadtree는 GPU pipeline 내에서 서로 완전히 독립적으로 처리되지만, quadtree를 통해 생성된 전체 지형은 '기하학적 연속'을 만족한다.
3. quadtree는 regular 구조이므로, GPU pipeline에 4개의 corner 점을 전송하는 대신, 한 node의 index 정보만 보내도 충분히 렌더링이 가능하다.
전술한 본 발명의 일실시예에 의한 지형 렌더링 방법은 다중 해상도를 달성하면서도 크랙 문제를 해결할 수 있다.
또한, 본 발명의 일실시예에 의하면, GPU의 Tessellator를 이용해 빠른 속도로 지형을 렌더링 할 수 있으면서도, 지형의 굴곡 정보와 카메라의 위치에 따라 적응적인 해상도를 결정할 수 있어서 불필요하게 소모되는 렌더링 자원을 최소화 할 수 있다.
또한, quadtree를 통해 지형을 렌더링 하는데 필요한 tile들을 효율적이고 간단하게 관리하여 전반적인 성능이 향상되므로, 대용량 지형을 실시간에 렌더링 할 수 있다.
상술한 지형 렌더링 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 이때, 컴퓨터로 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 한편, 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터로 판독 가능한 기록매체에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
한편, 이러한 기록매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다.
또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
상기와 같이 설명된 지형 렌더링 방법 및 장치는 상기 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.

Claims (16)

  1. GPU 테셀레이션(tessellation)을 이용한 지형 렌더링 방법에 있어서,
    부모 노드 및 자식 노드를 포함하는 quadtree를 이용하여 inner tessellation factor 및 edge tessellation factor가 할당된 쿼드패치(quad patch)를 생성하는 단계;
    상기 쿼드패치를 이용하여 베이스 메쉬를 생성하는 단계; 및
    상기 베이스 메쉬에 디스플레이스먼트 맵(displacement map)을 적용하여 지형을 복원시키는 단계를 포함하는 것을 특징으로 하는 지형 렌더링 방법.
  2. 제 1 항에 있어서, 상기 edge tessellation factor는
    인접한 쿼드패치의 inner tessellation factor를 이용하여 결정되는 것을 특징으로 하는 지형 렌더링 방법.
  3. 제 2 항에 있어서, 상기 edge tessellation factor는
    2의 승수이고, edge 길이 비에 따라 크기 비에 따라 나누어져 자연수를 가질 수 있는 값 중 최소값인 것을 특징으로 하는 지형 렌더링 방법.
  4. 제 3 항에 있어서, 상기 쿼드패치 생성 단계는
    특정 노드에서 스크린 스페이스 에러가 설정된 한계값 이상인 경우, inner tessellation factor를 증가시키는 단계를 포함하는 것을 특징으로 하는 지형 렌더링 방법.
  5. 제 3 항에 있어서, 상기 디스플레이스먼트 맵은
    height map 및 geometry image 중 어느 하나인 것을 특징으로 하는 지형 렌더링 방법.
  6. 제 5 항에 있어서, 상기 geometry image는
    하기 수학식 1에 의해 결정되는 것을 특징으로 하는 지형 렌더링 방법.
    [수학식 1]
    Figure PCTKR2014002497-appb-I000005
    (여기서,
    Figure PCTKR2014002497-appb-I000006
    는 굴곡 정도를 측정한 변수이고,
    Figure PCTKR2014002497-appb-I000007
    는 ridge에 포함된 점에 대하여 weight를 증가시키기 위해 주는 값이고,
    Figure PCTKR2014002497-appb-I000008
    는 버텍스(vertex)를 공유하는 삼각형의 넓이 합이다. 또한, α는 user-defined parameter이고,
    Figure PCTKR2014002497-appb-I000009
    는 v에 연결된 edge e의 외부 이면각이다.)
  7. 제 3 항에 있어서, 상기 지형 렌더링 방법은
    뷰(view) 위치가 변화에 따라 상기 부모 노드의 스크린 스페이스 에러가 한계값 이하로 된 경우, 상기 부모 노드에 종속된 자식 노드를 삭제하는 단계를 더 포함하는 것을 특징으로 하는 지형 렌더링 방법.
  8. 제 3 항에 있어서, 상기 지형 렌더링 방법은
    뷰(view) 위치가 변화에 따라 상기 자식 노드의 스크린 스페이스 에러가 한계값을 초과한 경우, 상기 자식 노드를 복수 개의 노드로 분할하는 단계를 더 포함하는 것을 특징으로 하는 지형 렌더링 방법.
  9. GPU 테셀레이션(tessellation)을 이용한 지형 렌더링 장치에 있어서,
    부모 노드 및 자식 노드를 포함하는 quadtree를 이용하여 inner tessellation factor 및 edge tessellation factor가 할당된 쿼드패치(quad patch)를 생성하는 연산 처리부; 및
    상기 쿼드패치를 이용하여 베이스 메쉬를 생성하고, 상기 베이스 메쉬에 디스플레이스먼트 맵(displacement map)을 적용하여 지형을 복원시키는 그래픽 처리부를 포함하는 것을 특징으로 하는 지형 렌더링 장치.
  10. 제 9 항에 있어서, 상기 edge tessellation factor는
    인접한 쿼드패치의 inner tessellation factor를 이용하여 결정되는 것을 특징으로 하는 지형 렌더링 장치.
  11. 제 10 항에 있어서, 상기 edge tessellation factor는
    2의 승수이고, edge 길이 비에 따라 크기 비에 따라 나누어져 자연수를 가질 수 있는 값 중 최소값인 것을 특징으로 하는 지형 렌더링 장치.
  12. 제 11 항에 있어서, 상기 연산 처리부는
    특정 노드에서 스크린 스페이스 에러가 설정된 한계값 이상인 경우, inner tessellation factor를 증가시키는 것을 특징으로 하는 지형 렌더링 장치.
  13. 제 12 항에 있어서, 상기 디스플레이스먼트 맵은
    height map 및 geometry image 중 어느 하나인 것을 특징으로 하는 지형 렌더링 장치.
  14. 제 13 항에 있어서, 상기 geometry image는
    하기 수학식 1에 의해 결정되는 것을 특징으로 하는 지형 렌더링 장치.
    [수학식 1]
    Figure PCTKR2014002497-appb-I000010
    (여기서,
    Figure PCTKR2014002497-appb-I000011
    는 굴곡 정도를 측정한 변수이고,
    Figure PCTKR2014002497-appb-I000012
    는 ridge에 포함된 점에 대하여 weight를 증가시키기 위해 주는 값이고,
    Figure PCTKR2014002497-appb-I000013
    는 버텍스(vertex)를 공유하는 삼각형의 넓이 합이다. 또한, α는 user-defined parameter이고,
    Figure PCTKR2014002497-appb-I000014
    는 v에 연결된 edge e의 외부 이면각이다.)
  15. 제 12 항에 있어서, 상기 연산 처리부는
    뷰(view) 위치가 변화에 따라 상기 부모 노드의 스크린 스페이스 에러가 한계값 이하로 된 경우, 상기 부모 노드에 종속된 자식 노드를 삭제하는 것을 특징으로 하는 지형 렌더링 장치.
  16. 제 12 항에 있어서, 상기 연산 처리부는
    뷰(view) 위치가 변화에 따라 상기 자식 노드의 스크린 스페이스 에러가 한계값을 초과한 경우, 상기 자식 노드를 복수 개의 노드로 분할하는 것을 특징으로 하는 지형 렌더링 장치.
PCT/KR2014/002497 2014-02-07 2014-03-25 지형 렌더링 방법 WO2015119325A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/116,812 US9959670B2 (en) 2014-02-07 2014-03-25 Method for rendering terrain

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140014101A KR101555426B1 (ko) 2014-02-07 2014-02-07 지형 렌더링 방법 및 장치
KR10-2014-0014101 2014-02-07

Publications (1)

Publication Number Publication Date
WO2015119325A1 true WO2015119325A1 (ko) 2015-08-13

Family

ID=53778114

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/002497 WO2015119325A1 (ko) 2014-02-07 2014-03-25 지형 렌더링 방법

Country Status (3)

Country Link
US (1) US9959670B2 (ko)
KR (1) KR101555426B1 (ko)
WO (1) WO2015119325A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106846474A (zh) * 2016-12-29 2017-06-13 中国科学院电子学研究所苏州研究院 基于时序特征和粒子系统的WebGIS时空过程模拟方法
CN111507926A (zh) * 2020-04-30 2020-08-07 九江精密测试技术研究所 一种基于MaxLOD Map的四叉树地形裂缝修补方法
CN113160378A (zh) * 2021-03-25 2021-07-23 网易(杭州)网络有限公司 一种地面裂纹处理方法及装置
CN115953541A (zh) * 2023-03-10 2023-04-11 中国地质大学(武汉) 一种四叉树lod地形生成方法、装置、设备及存储介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2537922B (en) * 2015-04-30 2019-01-16 Univ Cape Town Systems and methods for synthesising a terrain
US10839598B2 (en) * 2016-07-26 2020-11-17 Hewlett-Packard Development Company, L.P. Indexing voxels for 3D printing
JP6715200B2 (ja) * 2017-02-28 2020-07-01 株式会社小松製作所 地形情報処理装置、地形情報処理方法、およびプログラム
KR101940272B1 (ko) * 2017-08-01 2019-04-11 에스케이텔레콤 주식회사 3차원 가상 컨텐츠 확대 장치 및 방법
CN108986212B (zh) * 2018-06-21 2022-05-13 东南大学 一种基于裂缝消除的三维虚拟地形lod模型的生成方法
US11184285B2 (en) * 2019-04-23 2021-11-23 Cesium GS, Inc. Systems and methods for prioritizing requests for hierarchical level of detail content over a communications network
WO2020235979A1 (ko) * 2019-05-23 2020-11-26 삼성전자 주식회사 포인트 클라우드 기반 데이터를 렌더링하는 방법 및 장치
CN112233241B (zh) * 2020-11-02 2024-03-22 网易(杭州)网络有限公司 虚拟场景地形的高度图的生成方法、装置和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000019380A1 (en) * 1998-09-29 2000-04-06 Schlumberger Limited Modeling at more than one level of resolution
US20040257363A1 (en) * 2000-07-19 2004-12-23 Pixar Method and apparatus for surface approximation without cracks
US20120182298A1 (en) * 2011-01-14 2012-07-19 Wei Sun Planetary scale object rendering

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5990896A (en) * 1996-09-30 1999-11-23 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Rapid and efficient terrain surface finding system
US6108006A (en) * 1997-04-03 2000-08-22 Microsoft Corporation Method and system for view-dependent refinement of progressive meshes
US6137492A (en) * 1997-04-03 2000-10-24 Microsoft Corporation Method and system for adaptive refinement of progressive meshes
US6889176B1 (en) * 2000-07-24 2005-05-03 Ford Global Technologies, Llc Method for reconstructing the topology of a polygonal soup
US6809738B2 (en) * 2001-12-21 2004-10-26 Vrcontext S.A. Performing memory management operations to provide displays of complex virtual environments
US6940505B1 (en) * 2002-05-20 2005-09-06 Matrox Electronic Systems Ltd. Dynamic tessellation of a base mesh
US7239311B2 (en) * 2002-09-26 2007-07-03 The United States Government As Represented By The Secretary Of The Navy Global visualization process (GVP) and system for implementing a GVP
US7564455B2 (en) * 2002-09-26 2009-07-21 The United States Of America As Represented By The Secretary Of The Navy Global visualization process for personal computer platforms (GVP+)
US7382369B2 (en) * 2003-10-10 2008-06-03 Microsoft Corporation Systems and methods for robust sampling for real-time relighting of objects in natural lighting environments
US7425952B2 (en) * 2004-11-23 2008-09-16 Metavr, Inc. Three-dimensional visualization architecture
US7551182B2 (en) * 2005-01-18 2009-06-23 Oculus Info Inc. System and method for processing map data
US7561156B2 (en) * 2006-02-08 2009-07-14 INOVO Limited Adaptive quadtree-based scalable surface rendering
US20070247458A1 (en) * 2006-04-11 2007-10-25 Samsung Electronics Co., Ltd. Adaptive computation of subdivision surfaces
US8762493B1 (en) * 2006-06-22 2014-06-24 Google Inc. Hierarchical spatial data structure and 3D index data versioning for generating packet data
US8217936B1 (en) * 2007-05-30 2012-07-10 Adobe Systems Incorporated Minimizing tessellation of surfaces
US7948489B1 (en) * 2007-05-30 2011-05-24 Adobe Systems Incorporated Minimizing tessellation of surfaces
US7928979B2 (en) * 2008-02-01 2011-04-19 Microsoft Corporation Efficient geometric tessellation and displacement
US20100164954A1 (en) * 2008-12-31 2010-07-01 Sathe Rahul P Tessellator Whose Tessellation Time Grows Linearly with the Amount of Tessellation
US8482560B2 (en) * 2008-12-31 2013-07-09 Intel Corporation Image forming techniques
US20100253683A1 (en) * 2009-04-01 2010-10-07 Munkberg Carl J Non-uniform tessellation technique
KR100935886B1 (ko) * 2009-06-19 2010-01-07 인하대학교 산학협력단 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법
US8493403B2 (en) * 2009-09-04 2013-07-23 Hewlett-Packard Development Company, L.P. Color transformation sample point identification
US8884957B2 (en) * 2009-09-09 2014-11-11 Advanced Micro Devices, Inc. Tessellation engine and applications thereof
US9245371B2 (en) * 2009-09-11 2016-01-26 Nvidia Corporation Global stores and atomic operations
US8698802B2 (en) * 2009-10-07 2014-04-15 Nvidia Corporation Hermite gregory patch for watertight tessellation
US9589310B2 (en) * 2009-10-07 2017-03-07 Nvidia Corporation Methods to facilitate primitive batching
US8570324B2 (en) * 2009-10-12 2013-10-29 Nvidia Corporation Method for watertight evaluation of an approximate catmull-clark surface
KR101669873B1 (ko) * 2009-10-16 2016-10-27 삼성전자주식회사 삼차원 메쉬 압축장치 및 방법
US8537158B2 (en) * 2009-12-02 2013-09-17 Microsoft Corporation Parallel triangle tessellation
KR101686169B1 (ko) * 2010-02-09 2016-12-14 삼성전자주식회사 옥트리 기반의 3차원 맵 생성 장치 및 방법
US8886445B1 (en) * 2010-03-05 2014-11-11 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Automatic aircraft collision avoidance system and method
US20110285736A1 (en) * 2010-05-21 2011-11-24 Kilgard Mark J Decomposing cubic bèzier segments for tessellation-free stencil filling
US8665266B2 (en) * 2010-06-23 2014-03-04 The United States Of America, As Represented By The Secretary Of The Navy Global visualization process terrain database builder
US8880341B2 (en) * 2010-08-30 2014-11-04 Alpine Electronics, Inc. Method and apparatus for displaying three-dimensional terrain and route guidance
KR101181199B1 (ko) * 2011-01-03 2012-09-18 한국과학기술원 배경 지형 장면의 입체 이미지 생성 방법, 시스템 및 이를 위한 기록매체
FR2976386B1 (fr) * 2011-06-09 2018-11-09 Mbda France Procede et dispositif pour determiner automatiquement les contours de hauteurs du relief d'une zone geographique.
KR101129084B1 (ko) 2011-09-14 2012-03-23 인하대학교 산학협력단 정점 편향 배분을 이용한 지형 렌더링 방법
US9123160B1 (en) * 2011-10-30 2015-09-01 Lockheed Martin Corporation Concurrent mesh generation in a computer simulation
US8842122B2 (en) * 2011-12-15 2014-09-23 Qualcomm Incorporated Graphics processing unit with command processor
US9196079B2 (en) * 2011-12-30 2015-11-24 Advanced Micro Devices, Inc. Accelerated compute tessellation by compact topological data structure
KR101764341B1 (ko) * 2012-01-03 2017-08-02 한국전자통신연구원 절차적 방법에 의해 생성된 지형 데이터를 편집하는 방법
WO2013104448A1 (en) * 2012-01-10 2013-07-18 Thomson Licensing Method for rendering an image synthesis and corresponding device
US20140192051A1 (en) * 2012-03-30 2014-07-10 Etay Meiri Offloading Tessellation from a Graphics Processor to a Central Processing Unit
DE102012103011A1 (de) * 2012-04-05 2013-10-10 Krauss-Maffei Wegmann Gmbh & Co. Kg Verfahren zur synchronen Wiedergabe einer virtuellen Realität in einer verteilten Simulationsvorrichtung
US8976169B1 (en) * 2012-05-01 2015-03-10 Google Inc. Rendering terrain patches
US8650220B2 (en) * 2012-06-05 2014-02-11 Google Inc. System and method for storing and retrieving geospatial data
US20130342535A1 (en) * 2012-06-20 2013-12-26 Microsoft Corporation Hierarchical Tree Traversal in Graphics Pipeline Stages
US9082204B2 (en) * 2012-08-30 2015-07-14 Qualcomm Incorporated Storage structures for stitching primitives in graphics processing
US9076260B2 (en) * 2012-08-30 2015-07-07 Qualcomm Incorporated Stitching for primitives in graphics processing
US9142060B2 (en) * 2012-08-30 2015-09-22 Qualcomm Incorporated Computation reduced tessellation
US8982124B2 (en) * 2012-09-29 2015-03-17 Intel Corporation Load balancing and merging of tessellation thread workloads
US10139937B2 (en) * 2012-10-12 2018-11-27 Microsoft Technology Licensing, Llc Multi-modal user expressions and user intensity as interactions with an application
US9305397B2 (en) * 2012-10-24 2016-04-05 Qualcomm Incorporated Vertex order in a tessellation unit
EP2750109B1 (en) * 2012-12-28 2021-07-07 Dassault Systèmes Tessellation of a parameterized 3D modeled object
US9123168B2 (en) * 2013-01-30 2015-09-01 Qualcomm Incorporated Output ordering of domain coordinates for tessellation
US9704291B2 (en) * 2013-11-08 2017-07-11 Here Global B.V. Structure model creation from a three dimensional surface
AU2013267004A1 (en) * 2013-12-04 2015-06-18 Canon Kabushiki Kaisha Method, apparatus and system for tessellating a parametric patch
US9996976B2 (en) * 2014-05-05 2018-06-12 Avigilon Fortress Corporation System and method for real-time overlay of map features onto a video feed
US9311565B2 (en) * 2014-06-16 2016-04-12 Sony Corporation 3D scanning with depth cameras using mesh sculpting
US9779528B2 (en) * 2014-09-12 2017-10-03 Microsoft Technology Licensing, Llc Text realization
US10134171B2 (en) * 2014-09-29 2018-11-20 Arm Limited Graphics processing systems
US9465891B1 (en) * 2015-04-29 2016-10-11 Data Cocoon LLC Tessellated data visualization system
GB2533443B (en) * 2015-06-05 2018-06-06 Imagination Tech Ltd Tessellation method using recursive sub-division of triangles
GB2552260B (en) * 2015-06-05 2019-04-10 Imagination Tech Ltd Tessellation method
US20170091993A1 (en) * 2015-09-25 2017-03-30 Microsoft Technology Licensing, Llc 3D Model Generation From Map Data and User Interface
US10489970B2 (en) * 2015-11-06 2019-11-26 Microsoft Technology Licensing, Llc 2D image processing for extrusion into 3D objects
US10204447B2 (en) * 2015-11-06 2019-02-12 Microsoft Technology Licensing, Llc 2D image processing for extrusion into 3D objects
GB2546286B (en) * 2016-01-13 2020-02-12 Sony Interactive Entertainment Inc Apparatus and method of image rendering

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000019380A1 (en) * 1998-09-29 2000-04-06 Schlumberger Limited Modeling at more than one level of resolution
US20040257363A1 (en) * 2000-07-19 2004-12-23 Pixar Method and apparatus for surface approximation without cracks
US20120182298A1 (en) * 2011-01-14 2012-07-19 Wei Sun Planetary scale object rendering

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHOI, IN JI: "GPU-based Adaptive LOD Control for Quadtree-Based Terrain Rendering", MASTER'S THESIS, GRADUATE SCHOOL OF INHA UNIVERSITY INFORMATION TECHNOLOGY, February 2009 (2009-02-01), XP055217688, Retrieved from the Internet <URL:http://dspace.inha.ac.kr/pdfupload/19644.pdf> *
JU, JIN CHEON ET AL.: "Geomorphing Crack Elimination Technique for Improving Terrain Rendering Quality", JOURNAL OF 30TH AUTUMN CONFERENCE OF KIISE, vol. 30, no. 2, 24 October 2003 (2003-10-24), pages 709 - 711, Retrieved from the Internet <URL:http://www.ioi2002.or.kr/conference/2003f/source/intro/intro_sub_poster309.html> *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106846474A (zh) * 2016-12-29 2017-06-13 中国科学院电子学研究所苏州研究院 基于时序特征和粒子系统的WebGIS时空过程模拟方法
CN106846474B (zh) * 2016-12-29 2020-04-03 中国科学院电子学研究所苏州研究院 基于时序特征和粒子系统的WebGIS时空过程模拟方法
CN111507926A (zh) * 2020-04-30 2020-08-07 九江精密测试技术研究所 一种基于MaxLOD Map的四叉树地形裂缝修补方法
CN111507926B (zh) * 2020-04-30 2023-12-12 九江精密测试技术研究所 一种基于MaxLOD Map的四叉树地形裂缝修补方法
CN113160378A (zh) * 2021-03-25 2021-07-23 网易(杭州)网络有限公司 一种地面裂纹处理方法及装置
CN113160378B (zh) * 2021-03-25 2023-05-05 网易(杭州)网络有限公司 一种地面裂纹处理方法及装置
CN115953541A (zh) * 2023-03-10 2023-04-11 中国地质大学(武汉) 一种四叉树lod地形生成方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US20170116780A1 (en) 2017-04-27
US9959670B2 (en) 2018-05-01
KR101555426B1 (ko) 2015-09-25
KR20150093391A (ko) 2015-08-18

Similar Documents

Publication Publication Date Title
WO2015119325A1 (ko) 지형 렌더링 방법
CN109472858B (zh) 用于逆向图形的可微分渲染管线
WO2009093836A2 (en) Method, medium, and system for compressing and decoding mesh data in three-dimensional mesh model
WO2016053067A1 (en) 3-dimensional model generation using edges
CN113112603B (zh) 三维模型优化的方法和装置
CN110598541B (zh) 一种提取道路边缘信息的方法及设备
EP2927877B1 (en) Method and apparatus for rendering same regions of multi frames
US10726599B2 (en) Realistic augmentation of images and videos with graphics
CN111260766B (zh) 虚拟光源处理方法、装置、介质及电子设备
CN110276820B (zh) 基于lod组织与调度方法的gis模型优化方法及系统
WO2021142996A1 (zh) 基于图像分割的点云去噪方法、系统、装置和存储介质
JP7390497B2 (ja) 画像処理方法、装置、コンピュータプログラム、および電子デバイス
CN107193923B (zh) 一种二维地理空间快速矢量叠加的方法及系统
CN111210498A (zh) 降低多边形网格的细节水平以减少被渲染几何的复杂度
CN107564077B (zh) 一种绘制道路网的方法及装置
KR100935886B1 (ko) 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법
KR100959349B1 (ko) 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법을 가속화하는 방법
CN111854683B (zh) 用于三维空间数据高程采样的方法及装置、设备
CN116756836B (zh) 一种隧道超欠挖体积计算方法、电子设备及存储介质
CN111275799B (zh) 动画的生成方法、装置和电子设备
CN114494623A (zh) 基于lod的地形渲染方法及装置
KR20140103407A (ko) 이중모드 정점 분할기법을 이용한 지형 렌더링 가속화 방법
CN110610544A (zh) 钻孔数据抽稀方法和装置、设备及储存介质
CN116310227B (zh) 三维稠密重建方法、装置、电子设备及介质
US20240104790A1 (en) Optimizing grid-based compute graphs

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14881566

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15116812

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14881566

Country of ref document: EP

Kind code of ref document: A1