KR20070119853A - Real-time three-dimensional painting image rendering using octree texture - Google Patents
Real-time three-dimensional painting image rendering using octree texture Download PDFInfo
- Publication number
- KR20070119853A KR20070119853A KR1020060054316A KR20060054316A KR20070119853A KR 20070119853 A KR20070119853 A KR 20070119853A KR 1020060054316 A KR1020060054316 A KR 1020060054316A KR 20060054316 A KR20060054316 A KR 20060054316A KR 20070119853 A KR20070119853 A KR 20070119853A
- Authority
- KR
- South Korea
- Prior art keywords
- texture
- node
- octree
- dimensional
- painting image
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2012—Colour editing, changing, or manipulating; Use of colour codes
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
Description
본 발명은 옥트리 텍스쳐를 이용한 실시간 3차원 페인팅 이미지 렌더링 방법에 관한 것으로서, 구체적으로 메쉬의 3차원 표면 정보를 볼륨 텍스쳐에 옥트리 구조로 저장한 뒤, GPU를 이용하여 3차원 표면상에서 파티클 시뮬레이션을 수행함으로써, 실시간으로 페인팅 효과를 렌더링하는 기법에 관한 것이다.The present invention relates to a real-time three-dimensional painting image rendering method using an octree texture, specifically, by storing the three-dimensional surface information of the mesh as an octree structure in the volume texture, by performing a particle simulation on the three-dimensional surface using a GPU It is about the technique of rendering painting effects in real time.
사람이 직접 그린 듯한 자연스러운 페인팅 이미지를 생성하기 위해 물, 물감, 종이 등의 상호작용을 시뮬레이션하는 방법은 비실사 렌더링의 주요 연구 분야 중에 하나이다. 대표적인 페인팅 시뮬레이션 방법은 물과 물감의 농도와 서로 다른 붓 터치 방식 그리고 다른 색상의 물감이 섞였을 때의 효과를 시뮬레이션하여 사람이 그린 듯한 페인팅 이미지를 렌더링하였다. 하지만 복잡하고 물리적인 상호 작용을 시뮬레이션하기 위해선 많은 연산 처리가 필요하기 때문에 실시간 적용에 많은 제약이 따른다. 또한 기존 방법은 종이 위에서 일어나는 2차원 시뮬레이션만을 다루고 있기 때문에 3차원으로 구현된 분야에서 새로운 기법이 필요하게 되었다.The method of simulating the interaction of water, paint, paper, etc. to create natural painting images that seem to be drawn by humans is one of the major research areas of non-realistic rendering. The typical painting simulation method simulates the effect of water and paint concentrations, different brush touch methods, and different color paints, rendering a painting image that looks like a human. However, simulating complex and physical interactions requires a great deal of computation, which places many constraints on real-time applications. In addition, the existing methods deal only with two-dimensional simulations occurring on paper, so new techniques are needed in the three-dimensional implementation.
본 발명이 이루고자 하는 기술적 과제는 위에서 언급한 문제점들을 해결하기 위한 것으로서, 옥트리 텍스쳐를 GPU를 이용해 탐색하고, 픽셀 쉐이더를 이용하여 시뮬레이션을 수행함으로써 실시간에 페인팅 이미지를 생성하는 것이다.The technical problem to be solved by the present invention is to solve the above-mentioned problems, it is to create a painting image in real time by searching the octree texture using a GPU, and performing a simulation using a pixel shader.
또한 3차원 파라미터 정보를 사용함으로써 2차원 페인팅 이미지가 아닌 3차원 페인팅 이미지를 렌더링하는데에 있다.In addition, by using the three-dimensional parameter information is to render a three-dimensional painting image, not a two-dimensional painting image.
이와 같은 목적을 달성하기 위한 본 발명의 특징에 따른 실시간 페인팅 이미지 렌더링 방법은 Real-time painting image rendering method according to a feature of the present invention for achieving the above object
CPU에서 입력으로 들어온 메쉬의 옥트리 텍스쳐를 생성하고 2차원 텍스쳐 좌표를 인덱싱하여 이웃 텍스쳐와 농도 텍스쳐를 생성하는 전처리 단계; 메쉬의 3차원 표면을 포함하는 상기 옥트리 텍스쳐의 최하위 노드를 GPU에서 탐색하는 단계; 탐색한 노드의 인덱스 정보를 이용하여 해당 노드와 이웃 노드의 물과 물감 농도 정보를 얻어오는 단계; 상기의 정보를 이용하여 시뮬레이션 식을 적용하는 단계를 포함한다.A preprocessing step of generating an octree texture of a mesh input as an input from a CPU and indexing two-dimensional texture coordinates to generate neighboring textures and density textures; Searching at the GPU for the lowest node of the octree texture comprising a three-dimensional surface of a mesh; Obtaining water and paint concentration information of a corresponding node and a neighboring node using index information of the found node; And applying a simulation equation using the above information.
이하에서는 본 발명의 실시 예를 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail.
본 발명의 실시 예에서는 옥트리 텍스쳐와 파티클 시뮬레이션을 사용하여, 입력된 메쉬를 3차원 페인팅 이미지로 렌더링하는 방법을 제안한다. 이 방법은 대부분의 과정이 GPU에서 처리되므로 실시간에 렌더링이 가능하며 3차원 요소를 시뮬레이션 파라미터로 사용할 수 있다는 장점이 있다.An embodiment of the present invention proposes a method of rendering an input mesh as a 3D painting image by using an octree texture and particle simulation. This method has the advantage of being able to render in real time because most of the process is performed on the GPU, and use three-dimensional elements as simulation parameters.
첫 단계에서는 우선적으로 입력된 3차원 메쉬의 정육면체 바운딩 볼륨을 생성하고 해당 볼륨을 최상위 노드로 하여 하위 노드를 분할해 나간다. 해당 노드를 분할할 것인지 판단하기 위해 노드의 볼륨 안에 폴리곤이 존재하는지 여부를 기존의 효율적인 육면체와 폴리곤의 교차테스트 방식으로 검사한다.In the first step, we first create a cube bounding volume of the input 3D mesh and divide the lower node using the volume as the top node. In order to determine whether to split the node, we check whether the polygon exists in the volume of the node using the existing efficient hexahedron and polygon cross test method.
사용자가 설정한 깊이까지 트리를 생성한 다음 이를 3차원 텍스쳐에 저장한다. 이 옥트리 텍스쳐는 8비트 RGBA 채널을 가지고있으며 각 노드의 타입에 따라 저장되는 데이터가 다르다.Create a tree up to the depth you set and store it in a 3D texture. This octree texture has an 8-bit RGBA channel and the data stored is different for each node type.
최하위 노드이면서 볼륨 안에 폴리곤을 가지고 있을 경우 2차원 텍스쳐 좌표를 RGB 중 두 개의 채널에 저장한다. 2차원 텍스쳐 좌표는 (0,0)부터 차례로 할당한다. 그리고 알파 채널에 1을 저장한다. 8개의 자식 노드를 가지고 있는 중간 노드는 옥트리 텍스쳐에서 8개의 자식 노드가 저장되어 있는 3차원 좌표를 RGB 채널에 저장한다. 그리고 알파 채널에 0.5를 저장한다. 마지막으로 아무 것도 가지고 있지않은 빈 노드는 RGBA 채널 모두에 0을 저장한다.If it is the lowest node and has a polygon in the volume, two-dimensional texture coordinates are stored in two channels of RGB. Two-dimensional texture coordinates are assigned in order from (0,0). And store 1 in the alpha channel. An intermediate node with eight child nodes stores the three-dimensional coordinates of eight child nodes in the octree texture in the RGB channel. And store 0.5 in the alpha channel. Finally, empty nodes that have nothing store zeros on all RGBA channels.
이웃 텍스쳐는 총 26장을 생성하는데 한 노드를 중심으로 X,Y,Z 세 방향으로 인접한 노드들의 RGBA 값을 텍스쳐에 저장한다. 농도 텍스쳐에는 해당 노드의 물과 물감의 초기 농도를 저장한다.The neighbor texture generates a total of 26 sheets, and stores the RGBA values of adjacent nodes in three directions of X, Y, and Z around one node in the texture. The concentration texture stores the initial concentrations of water and paint of the node.
지금까지의 첫 단계는 모두 CPU에 의해 처리되는 전처리 과정이다.The first steps so far are all preprocessing done by the CPU.
두 번째 단계는 렌더링이 필요한 메쉬의 표면 정보를 얻기 위해 옥트리 텍스쳐를 탐색하는 과정이다. 픽셀 쉐이더를 통해 이루어지며 텍스쳐 메모리에 저장된 트리 구조를 탬색하여 해당 표면의 농도 정보나 이웃 노드 정보를 접근하기 위함이다.The second step is to search the octree texture to get the surface information of the mesh to render. This is done through the pixel shader and searches the tree structure stored in the texture memory to access density information of the surface or neighbor node information.
찾고자 하는 3차원 텍스쳐 좌표가 M이라 하고 현재 방문중인 노드의 깊이를 D라고 하자. 깊이 D에서의 2 * 2 * 2 영역의 인덱스를 ID 라고 하면 I0 은 (0,0,0)이다.Let's say that the three-dimensional texture coordinate we are looking for is M and the depth of the node we are visiting is D. Index 2 * 2 * 2 area at depth D I D Speak I 0 Is (0,0,0).
따라서 현재 방문중인 ID 에서 M의 좌표를 계산하는 공식은 다음과 같다.Therefore, the formula for calculating the coordinates of M in the current visit I D is
수학식1에서 P에 저장된 알파 값을 통해 현재 노드의 타입을 판단할 수 있다.In Equation 1, the type of the current node may be determined based on an alpha value stored in P.
알파 값이 0일 경우 빈 노드이므로 더 이상 진행하지 않으며, 알파 값이 1일 경우는 폴리곤이 포함된 최하위 노드이므로 R,G,B 채널을 통해 2차원 텍스쳐 좌표를 얻 는다. 알파 값이 0.5일 경우는 자식 노드가 존재하는 중간 노드이므로 R,G,B값은 ID+1 이다. 그러므로 다음 깊이로 탐색을 진행한다.If the alpha value is 0, it will not proceed any further because it is an empty node. If the alpha value is 1, it is the lowest node that contains polygons, so 2D texture coordinates are obtained through the R, G, and B channels. If the alpha value is 0.5, the R, G, and B values are I D + 1 because they are intermediate nodes with child nodes. Therefore, proceed to the next depth.
모든 폴리곤은 폴리곤이 포함된 최하위 노드에 속해 있으므로 실제 예에서는 빈 노드를 참조하는 경우가 없다. 따라서 무조건 트리의 깊이만큼 반복문을 수행하여 최하위 노드에 접근한다.All polygons belong to the lowest node that contains the polygon, so in our example we never refer to an empty node. Therefore, the loop is accessed as deep as the tree to access the lowest node.
다음 단계에서는 이전 단계를 통해 얻은 노드의 인덱스 정보를 이용하여 해당 노드와 이웃 노드의 물과 물감 농도 정보를 얻어온다. 폴리곤을 포함한 최하위 노드의 RGB 채널 중 두 개의 채널은 U,V 텍스쳐 좌표가 저장되어 있다. 해당 좌표를 이용하여 농도 텍스쳐에 접근하면 노드의 물과 물감 농도 정보를 얻을 수 있다.In the next step, water and paint concentration information of the node and neighbor nodes is obtained using the index information of the node obtained in the previous step. Two of the RGB channels of the lowest node, including polygons, contain U and V texture coordinates. By accessing the concentration texture using the coordinates, we can get the water and paint concentration information of the node.
물과 물감의 이류를 시뮬레이션하기 위해선 주변 노드의 정보가 필요하다. 위 단계에서 얻은 U,V 좌표로 이웃 텍스쳐에 접근하여 이웃 노드의 인덱스 정보를 얻는다. 이웃 텍스쳐에서 얻은 U,V 좌표를 이용하여 다시 농도 텍스쳐에 접근하면 이웃 노드의 물과 물감의 농도 정보를 얻을 수 있다.In order to simulate water and paint advection, we need information from neighboring nodes. The neighboring texture is accessed using the U and V coordinates obtained in the above step to obtain index information of the neighbor node. When the density texture is accessed again using the U and V coordinates obtained from the neighbor texture, the concentration information of water and paint of the neighbor node can be obtained.
마지막 단계는 옥트리 텍스쳐, 이웃 텍스쳐, 농도 텍스쳐를 통해 얻은 정보들을 바탕으로 파티클 시뮬레이션을 수행한다. 파티클 시뮬레이션은 Lattice Boltzmann Equation에 의해 이루어진다. 식은 다음과 같다.The final step is to perform the particle simulation based on the information obtained from the octree texture, neighbor texture, and density texture. Particle simulation is done by Lattice Boltzmann Equation. The equation is
사용자의 선택에 따라 파라미터를 적용시킬 수 있는데 빛의 방향에 따른 밝기, 카메라와의 거리, 노멀 등의 값을 이용하여 파티클의 이동 속성을 설정할 수 있다.Parameters can be applied according to the user's choice. The movement properties of the particles can be set using values such as brightness, distance from the camera, and normals according to the light direction.
이상에서 설명한 바와 같이 본 발명의 방법으로 실시간에 3차원 페인팅 이미지를 렌더링하는 것이 가능하다.As described above, it is possible to render a 3D painting image in real time by the method of the present invention.
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060054316A KR20070119853A (en) | 2006-06-16 | 2006-06-16 | Real-time three-dimensional painting image rendering using octree texture |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060054316A KR20070119853A (en) | 2006-06-16 | 2006-06-16 | Real-time three-dimensional painting image rendering using octree texture |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070119853A true KR20070119853A (en) | 2007-12-21 |
Family
ID=39137921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060054316A KR20070119853A (en) | 2006-06-16 | 2006-06-16 | Real-time three-dimensional painting image rendering using octree texture |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20070119853A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110334290A (en) * | 2019-06-28 | 2019-10-15 | 中南大学 | A kind of space-time data method for quickly retrieving based on MF-Octree |
-
2006
- 2006-06-16 KR KR1020060054316A patent/KR20070119853A/en not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110334290A (en) * | 2019-06-28 | 2019-10-15 | 中南大学 | A kind of space-time data method for quickly retrieving based on MF-Octree |
CN110334290B (en) * | 2019-06-28 | 2021-12-03 | 中南大学 | MF-Octree-based spatio-temporal data rapid retrieval method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cohen et al. | Wang tiles for image and texture generation | |
US10380790B2 (en) | System and methods for generating procedural window lighting effects | |
KR20160088902A (en) | Volume rendering polygons for 3-d printing | |
Graciano et al. | Real-time visualization of 3D terrains and subsurface geological structures | |
Novák et al. | Rasterized bounding volume hierarchies | |
Kratt et al. | Woodification: User‐Controlled Cambial Growth Modeling | |
Unver et al. | Virtual stonehenge reconstruction | |
Tanveer et al. | Simulate forest trees by integrating l-system and 3d cad files | |
Sanchez et al. | Space-time transfinite interpolation of volumetric material properties | |
CN116452735A (en) | Octree-based data processing method, octree-based data processing device and computer-readable storage medium | |
KR20070119853A (en) | Real-time three-dimensional painting image rendering using octree texture | |
Bridault-Louchez et al. | Enhanced illumination of reconstructed dynamic environments using a real-time flame model | |
Dietrich et al. | Terrain guided multi-level instancing of highly complex plant populations | |
Sexton et al. | Vectorization of gridded urban land use data | |
Easton et al. | Axial generation: a concretism-inspired method for synthesizing highly varied artworks | |
Cui | Procedural cave generation | |
Izani et al. | Photorealistic rendering for the Prophet Mosque in 3D Media: Issues and solutions | |
Skorkovská et al. | Complex multi-material approach for dynamic simulations | |
Song et al. | Shell radiance texture functions | |
Nadig | Example-Based Terrain Authoring with Complex Features | |
Adamopoulos et al. | A Multifragment Renderer for Material Aging Visualization. | |
Chandler et al. | Procedural window lighting effects for real-time city rendering | |
Beebe | A Bibliography of Computer Graphics Forum: 1982–2009 | |
Taha | Using Cohen Sutherland Line Clipping Algorithm to Generate 3D Models from 2D | |
Roure et al. | Hierarchical Radiosity for Procedural Urban Environments. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |