KR101022491B1 - System and method for rendering fluid flow - Google Patents
System and method for rendering fluid flow Download PDFInfo
- Publication number
- KR101022491B1 KR101022491B1 KR1020090056432A KR20090056432A KR101022491B1 KR 101022491 B1 KR101022491 B1 KR 101022491B1 KR 1020090056432 A KR1020090056432 A KR 1020090056432A KR 20090056432 A KR20090056432 A KR 20090056432A KR 101022491 B1 KR101022491 B1 KR 101022491B1
- Authority
- KR
- South Korea
- Prior art keywords
- module
- fluid
- particles
- texture
- density
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- 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
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/24—Fluid dynamics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/56—Particle system, point based geometry or rendering
Abstract
유체 유동 렌더링(rendering) 시스템은, 제1 격자 형태로 분할된 유체의 시간에 따른 속도를 저장하는 속도 모듈; 상기 속도 모듈에 저장된 속도에 기초하여, 유체의 계산 영역에 위치한 하나 이상의 입자의 시간에 따른 위치를 산출하는 입자 모듈; 상기 하나 이상의 입자에 미리 설정된 텍스쳐를 적용하는 텍스쳐(texture) 모듈; 및 상기 하나 이상의 입자가 위치한 영역을 제2 격자 형태로 분할하여 시간에 따른 유체의 밀도를 산출하는 밀도 모듈을 포함할 수 있다. 상기 유체 유동 렌더링 시스템 및 이를 이용한 유체 유동 렌더링 방법을 이용하여, 연기 등의 유체의 형상을 정밀한 이미지로 렌더링할 수 있다.A fluid flow rendering system includes: a velocity module for storing a velocity over time of a fluid divided into a first lattice; A particle module that calculates a time-dependent position of one or more particles located in the computational region of the fluid based on the velocity stored in the velocity module; A texture module that applies a predetermined texture to the one or more particles; And a density module for dividing the region in which the one or more particles are located into a second lattice to calculate the density of the fluid over time. By using the fluid flow rendering system and the fluid flow rendering method using the same, the shape of a fluid such as smoke can be rendered as a precise image.
유체, 렌더링, 후처리, 텍스쳐, 밀도 Fluid, render, post-process, texture, density
Description
본 발명의 실시예들은 유체 유동 렌더링 시스템 및 방법에 관한 것이다. Embodiments of the present invention relate to fluid flow rendering systems and methods.
컴퓨터 그래픽스(Computer Graphics; CG) 분야 등에서 시뮬레이션의 결과로 얻어진 데이터를 이미지로 변환하는 일련의 과정을 렌더링(rendering)이라고 한다. 직물 등의 물체는 표면의 형상을 메쉬(mesh) 형태로 표현할 수 있으며, 이러한 메쉬에 기초하여 물체 표면을 이미지로 렌더링할 수 있다. 그러나 연기와 같이 표면이 불분명한 유체는 전혀 다른 방식의 렌더링 방법을 필요로 한다.In the field of computer graphics (CG), a series of processes for converting data obtained as a result of simulation into an image is called rendering. Objects such as fabrics can express the shape of the surface in the form of a mesh, and the object surface can be rendered as an image based on the mesh. However, fluids with unclear surfaces, such as smoke, require a completely different rendering method.
유체 유동 시뮬레이션에서 연기와 같은 볼륨 데이터(volume data)는 격자(grid) 형태로 저장되며, 이때 격자를 구성하는 기본 단위인 셀(cell)마다 밀도값이 실수 형태로 저장될 수 있다. 공간상에 정의되어 있는 이러한 볼륨 데이터를 렌더링하는 방법으로서, 대표적으로 볼륨 광선 투사법(ray marching method)이 있다. In the fluid flow simulation, volume data such as smoke is stored in a grid form, and density values may be stored in a real form for each cell, which is a basic unit constituting the grid. As a method of rendering such volume data defined in space, there is a volume ray marching method.
볼륨 광선 투사법은 특정 시점 또는 카메라의 위치로부터 공간상에 정의되어 있는 볼륨 데이터를 통과하여 가상의 광선을 진행시키면서, 일정 간격마다 광선이 지나는 지점의 볼륨 데이터를 추출한 후, 추출된 값들을 중첩하여 해당 픽셀의 값을 계산하는 방법이다. 이는 실제 연기가 사람의 눈에 보이거나 카메라에 촬영되는 방식을 거의 그대로 모방한 알고리즘이다. The volume ray projection method proceeds a virtual ray through a volume data defined in space from a specific viewpoint or a camera position, extracts volume data at a point where a ray passes at regular intervals, and then overlaps the extracted values. How to calculate the pixel value. It is an algorithm that mimics the way that real smoke is seen by the human eye or captured by the camera.
볼륨 데이터에서 격자를 이루고 있는 각 셀마다 하나의 실수값으로 밀도가 저장되기 때문에 때문에, 렌더링 결과 생성된 이미지에서 하나의 셀은 단일한 색상으로 보여지게 된다. 따라서 연기의 모습을 세부적으로 표현하기 위해서는 많은 개수의 셀로 이루어진 격자를 사용하여야 한다. 격자에 포함되는 셀의 개수를 해상도(resolution)라는 용어로 표현하며, 해상도가 높을수록 더욱 정밀한 이미지를 생성할 수 있다. Since the density is stored as one real value for each cell of the grid in the volume data, one cell is shown in a single color in the rendered image. Therefore, in order to express the appearance of smoke in detail, a grid composed of a large number of cells should be used. The number of cells included in the grid is expressed in terms of resolution, and the higher the resolution, the more accurate an image can be generated.
그러나 시뮬레이션 단계에서는 계산 시간 및 메모리 등의 문제로 인하여 높은 해상도의 격자를 사용하는 것이 어렵다. 통상적으로는 3차원 격자의 경우 256 x 256 x 256 이하의 해상도를 갖는 격자를 사용하지만, 이 정도 해상도의 격자를 사용해서 시뮬레이션을 하더라도 실사와 같은 느낌의 렌더링 품질을 구현하기는 어렵다. However, in the simulation stage, it is difficult to use a high resolution grating due to problems such as computation time and memory. In general, a 3D grating uses a grating having a resolution of 256 x 256 x 256 or less. However, even when the grating having this resolution is simulated, it is difficult to realize a realistic rendering quality.
이를 해결하기 위하여, 시뮬레이션 단계에서 사용되는 격자보다 더 높은 해상도를 가지는 렌더링 격자를 별도로 만들고, 저해상도의 격자를 이용하여 시뮬레이션이 이루어진 볼륨 데이터를 고해상도의 렌더링 격자를 이용하여 렌더링하는 후처리 방법이 사용될 수 있다. 그러나 저해상도 격자에 의한 시뮬레이션 결과를 단순히 리샘플링(re-sampling)하여 고해상도의 렌더링 격자를 이용하게 되면 데이터의 크기만 커질 뿐 좋은 품질을 내기 어렵다. To solve this problem, a post-processing method may be used in which a rendering grid having a higher resolution than that used in the simulation step is separately created and the volume data simulated using the low resolution grid is rendered using a high resolution rendering grid. have. However, simply re-sampling the simulation results of a low resolution grid to use a high resolution rendering grid increases the size of the data and is difficult to produce good quality.
한편 저해상도의 볼륨 데이터로부터 고해상도의 이미지를 얻어내기 위한 방법으로 텍스쳐(texture)를 이용하는 방법이 있다. 이는 미리 설정된 밀도 분포를 볼륨 데이터에 적용하는 방법으로서, 이때 적용되는 밀도 분포를 텍스쳐라고 지칭한다. Meanwhile, there is a method of using texture as a method for obtaining a high resolution image from low resolution volume data. This is a method of applying a predetermined density distribution to the volume data, and the density distribution applied at this time is referred to as a texture.
텍스쳐에는 2차원, 3차원 및 4차원 텍스쳐가 있으며, 2차원 텍스쳐는 가장 직관적이지만 연기 등과 같이 표면 추출이 어려운 물체에는 적용되기 어렵다. 또한 3차원 텍스쳐는 텍스쳐가 시간에 따라 변하지 않고 고정되어 있기 때문에 부자연스러운 문제점이 있다. 3차원 텍스쳐의 문제점을 극복하기 위하여 시간에 따라 움직이는 4차원 텍스쳐를 사용할 수 있으나, 텍스쳐의 움직임이 유체 유동과 일치하지 않기 때문에 여전히 부자연스러운 문제점이 있다. There are two-dimensional, three-dimensional and four-dimensional textures in textures, and two-dimensional textures are the most intuitive but difficult to apply to objects such as smoke that are difficult to extract. In addition, the 3D texture has an unnatural problem because the texture is fixed without change over time. In order to overcome the problem of the three-dimensional texture, it is possible to use a four-dimensional texture that moves over time, but there is still an unnatural problem because the texture movement does not coincide with the fluid flow.
본 발명의 실시예들은, 저해상도의 격자를 사용하여 시뮬레이션이 이루어진 볼륨 데이터(volume data)에 입자 기반의 텍스쳐(texture) 및 고해상도의 격자를 적용하여 후처리하고 렌더링(rendering)할 수 있는 유체 유동 렌더링 시스템 및 방법을 제공할 수 있다. Embodiments of the present invention, fluid flow rendering that can be post-processed and rendered by applying a particle-based texture and a high resolution grid to the volume data simulated using a low resolution grid Systems and methods can be provided.
일 실시예에 따른 유체 유동 렌더링(rendering) 시스템은, 제1 격자 형태로 분할된 유체의 시간에 따른 속도를 저장하는 속도 모듈; 상기 속도 모듈에 저장된 속도에 기초하여, 유체의 계산 영역에 위치한 하나 이상의 입자의 시간에 따른 위치를 산출하는 입자 모듈; 상기 하나 이상의 입자에 미리 설정된 텍스쳐를 적용하는 텍스쳐(texture) 모듈; 및 상기 하나 이상의 입자가 위치한 영역을 제2 격자 형태로 분할하여 시간에 따른 유체의 밀도를 산출하는 밀도 모듈을 포함할 수 있다. According to one embodiment, a fluid flow rendering system includes: a velocity module configured to store a velocity over time of a fluid divided into a first lattice; A particle module that calculates a time-dependent position of one or more particles located in the computational region of the fluid based on the velocity stored in the velocity module; A texture module that applies a predetermined texture to the one or more particles; And a density module for dividing the region in which the one or more particles are located into a second lattice to calculate the density of the fluid over time.
일 실시예에 따른 유체 유동 렌더링 방법은, 제1 격자 형태로 분할된 유체의 시간에 따른 속도에 기초하여, 유체의 계산 영역에 위치하는 하나 이상의 입자의 시간에 따른 위치를 산출하는 단계; 상기 하나 이상의 입자에 미리 설정된 텍스쳐를 적용하는 단계; 및 상기 하나 이상의 입자가 위치한 영역을 제2 격자 형태로 분할하여 시간에 따른 유체의 밀도를 산출하는 단계를 포함할 수 있다.According to one or more exemplary embodiments, a fluid flow rendering method includes calculating a time-based position of one or more particles located in a calculation region of a fluid based on a time-based velocity of a fluid divided into a first lattice; Applying a preset texture to the one or more particles; And dividing the region in which the one or more particles are located in a second lattice form to calculate the density of the fluid over time.
본 발명의 실시예들에 따른 유체 유동 렌더링 시스템 및 방법을 이용하면, 볼륨 데이터(volume data)에 입자 기반의 텍스쳐(texture)를 적용함으로써, 표면이 불분명한 연기 등의 유체의 형상을 정밀한 이미지로 렌더링(rendering)할 수 있다. 또한 시뮬레이션 단계에서는 저해상도의 격자를 이용하고 렌더링 과정에서 고해상도의 격자를 이용하므로, 계산 시간 또는 계산량을 현저히 증가시키지 않고도 높은 렌더링 품질을 얻을 수 있다. 나아가, 유체 내의 위치에 따라 텍스쳐를 회전시킴으로써 자연스러운 이미지를 생성할 수 있다. Using the fluid flow rendering system and method according to the embodiments of the present invention, by applying a particle-based texture to the volume data, the shape of the fluid, such as smoke whose surface is unclear, to a precise image Rendering is possible. In addition, the low resolution grid is used in the simulation stage and the high resolution grid is used during the rendering process, so that high rendering quality can be obtained without significantly increasing calculation time or calculation amount. Furthermore, natural images can be generated by rotating the texture according to its position in the fluid.
이하에서는, 도면을 참조하여 본 발명의 실시예를 구체적으로 설명한다. 그러나, 본 발명이 하기 실시예에 의하여 제한되는 것은 아니다. 본 발명의 실시예들을 설명하는 데에 있어, 본 발명의 요지를 명확하게 하기 위하여 공지 기술로부터 당업자에게 용이하게 이해될 수 있는 것에 대해서는 자세한 설명을 생략한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. However, the present invention is not limited by the following examples. In describing the embodiments of the present invention, a detailed description of what can be easily understood by those skilled in the art from the known art in order to clarify the gist of the present invention will be omitted.
도 1은 일 실시예에 따른 유체 유동 렌더링 시스템의 구성을 도시한 블록도이다. 1 is a block diagram illustrating a configuration of a fluid flow rendering system according to an exemplary embodiment.
도 1을 참조하면, 유체 유동 렌더링 시스템은 속도 모듈(10), 입자 모듈(20), 텍스쳐(texture) 모듈(30) 및 밀도 모듈(50)을 포함할 수 있다. 속도 모듈(10)은 유체 유동 시뮬레이션에 의하여 산출된 시간에 따른 유체의 속도를 저장할 수 있다. 유체 유동 시뮬레이션에 의해 유체의 속도를 시간 별로 산출하는 과정은 공지된 유체 유동 시뮬레이션 방법에 의하여 수행될 수 있으므로, 본 명세서에서는 이에 대해 간략하게만 설명한다.Referring to FIG. 1, the fluid flow rendering system may include a
유체 유동 시뮬레이션에서는 유체의 계산 영역을 복수 개의 셀로 이루어진 격자 형태로 분할하고, 격자의 각 셀에 대하여 속도 및 밀도 등을 정의할 수 있다. 도 2는 유체 유동 시뮬레이션에 의하여 격자 형태로 분할된 유체의 계산 영역을 도시한 개략도이다. 도 2에서 격자의 각 노드(node)에 도시된 화살표는 해당 노드에 정의된 속도 벡터를 나타내며, 전체 격자에 대하여 속도장(velocity field)의 형태로 속도가 정의될 수 있다. 한편, 다른 실시예에서 속도장은 각 셀의 중심점에 대하여 정의될 수도 있다. In the fluid flow simulation, the calculation region of the fluid may be divided into a lattice of a plurality of cells, and speed and density may be defined for each cell of the lattice. 2 is a schematic diagram showing a calculation region of a fluid divided into a lattice form by a fluid flow simulation. In FIG. 2, an arrow shown in each node of the grid represents a velocity vector defined in the node, and the velocity may be defined in the form of a velocity field for the entire grid. Meanwhile, in another embodiment, the velocity field may be defined with respect to the center point of each cell.
또한 유체 유동 시뮬레이션에서는 계산 시간을 하나 이상의 시간 단계(time step)로 분할하고, 각 시간 단계별로 유체의 속도에 대한 유동 방정식에 기초하여 유체의 속도를 갱신해나갈 수 있다. 도 2의 (a) 내지 (c)는 인접한 시간 단계에서 유체의 속도장을 갱신한 결과를 나타낸다. 이전 시간 단계에서의 속도장 및 유동 방정식을 이용하여 다음 시간 단계에서의 속도장을 산출할 수 있으며, 이러한 과정을 모든 시간 단계에 대해 반복 수행함으로써 시간에 따른 유체의 유동을 산출할 수 있다. 유동 방정식에 기초하여 유체 유동을 산출하는 과정은 당업자에게 잘 알려져 있다.In fluid flow simulations, the calculation time can be divided into one or more time steps and the velocity of the fluid can be updated based on the flow equation for the velocity of the fluid in each time step. 2 (a) to 2 (c) show the results of updating the velocity field of the fluid in adjacent time steps. The velocity field and flow equation in the previous time step can be used to calculate the velocity field in the next time step, and this process can be repeated for all time steps to calculate the flow of fluid over time. The process of calculating the fluid flow based on the flow equation is well known to those skilled in the art.
속도 모듈(10)에는 이상과 같은 유체 유동 시뮬레이션의 결과로 산출된 유체의 속도장이 각 시간 단계별로 저장되어 있을 수 있다. 속도 모듈(10)에 저장된 유체의 속도장에서 유체의 계산 영역은 제1 격자(100) 형태로 분할되어 있을 수 있다. 유체 유동 시뮬레이션에서는 계산 시간 및 메모리 등의 한계로 인하여 고해상도의 격자를 사용하는 것이 어려우므로, 제1 격자(100)는 후술하는 렌더링 과정에 사용되는 제2 격자에 비하여 상대적으로 저해상도의 격자일 수 있다. The
본 명세서에 첨부되는 도면들에서 격자는 2차원 격자 형태로 도시되나, 이는 예시적인 것으로서 시뮬레이션 과정에서 사용되는 제1 격자 및 렌더링 과정에서 사용되는 3차원 격자일 수도 있다. In the drawings attached to the present specification, the grating is shown in the form of a two-dimensional grating, but this may be a first grating used in the simulation process and a three-dimensional grating used in the rendering process.
입자 모듈(20)은 유체의 계산 영역에 하나 이상의 입자를 설정하고, 속도 모듈(10)에 저장된 각 시간 단계의 속도장을 이용하여 상기 하나 이상의 입자의 시간에 따른 위치를 산출할 수 있다. The
도 3은 입자 모듈(20)에 의하여 유체의 계산 영역에 설정된 하나 이상의 입자(200)를 도시한다. 하나 이상의 입자(200)는 규칙적 또는 불규칙적으로 위치할 수 있으며, 입자(200)의 개수는 유체의 계산 영역의 크기 및 계산 시간 등에 기초하여 적절히 결정될 수 있다. 각각의 입자(200)는 소정의 반지름을 가지는 원 또는 구의 형상일 수 있다. 입자(200)의 반지름에 따라 입자(200)는 제1 격자(100)에서 하나의 셀보다 작은 영역을 차지하거나, 또는 복수 개의 셀에 해당하는 영역을 차지할 수도 있다. 3 shows one or
그러나 입자(200)의 형상, 개수 및 크기는 도 3에 도시된 것으로 제한되지 않으며, 다른 실시예에서 입자는 다른 상이한 형상, 개수 및 크기를 가질 수도 있다. However, the shape, number and size of the
입자 모듈(20)은 속도 모듈(10)에 저장된 속도장을 이용하여 각 시간 단계별로 입자(200)의 위치를 산출할 수 있다. 도 3의 (a) 내지 (c)는 인접한 시간 단계에서 입자의 위치를 갱신한 결과를 도시한다.The
도 4는 하나의 시간 단계에서 입자 모듈(20)이 입자(200)의 속도를 산출하는 과정을 예시적으로 도시한 개략도이다. 도 4를 참조하면, 특정 시간 단계에서 입자(200)의 속도는 입자(200)에 인접한 위치의 속도 벡터를 이용하여 산출될 수 있다. 예컨대, 입자(200)의 속도는, 인접한 각 노드(101, 102, 103, 104)의 속도 벡터(v1, v2, v3, v4)에 입자(200)의 중심점(O)으로부터 각 노드(101, 102, 103, 104)까지의 거리에 비례한 가중치를 적용하여 합산함으로써 산출될 수도 있다. 입자 모듈(20)은 산출된 입자(200)의 속도에 유동 방정식을 적용함으로써 시간에 따른 입자(200)의 위치를 산출할 수 있다. 4 is a schematic diagram illustrating a process in which the
입자 모듈(20)에서 입자(200)들의 시간에 따른 위치를 산출하는 과정은, 유체 유동 시뮬레이션에 의하여 미리 산출되어 속도 모듈(10)에 저장되어 있는 각 시간 단계의 속도장을 이용할 수 있다. 따라서, 유체 유동 시뮬레이션에서 유체의 밀도장(density)을 시간에 따라 산출하는 종래 기술과 비교하여 계산 시간 및 계산량이 상대적으로 적으면서도, 결과로서 하나 이상의 입자(200)는 유체 유동 시뮬레이션에 의해 산출되는 밀도장과 유사한 형태로 위치하게 된다. The process of calculating the position of the
텍스쳐(texture) 모듈(30)은, 입자 모듈(20)에 의하여 위치를 산출한 하나 이상의 입자(200) 각각에 미리 설정된 텍스쳐를 적용할 수 있다. 본 명세서에서 텍스쳐란 사용자의 입력 또는 수치 연산 등의 결과로 미리 설정되어 있는 밀도 분포를 의미하는 것으로서, 상기 텍스쳐는 2차원 텍스쳐, 3차원 텍스쳐 또는 4차원 텍스쳐일 수도 있다. The
도 5의 (a) 내지 (c)는 텍스쳐 모듈(30)에 의하여 하나 이상의 입자에 텍스 쳐를 적용한 결과를 시간 단계별로 도시한 예시적인 개략도이다. 도 5에서 각각의 입자(200)에서 밀도가 상대적으로 높은 영역이 상대적으로 진한 색으로 도시되었다. 이와 같이 각 입자(200)에 미리 설정된 텍스쳐를 적용함으로써, 시뮬레이션 단계에서 사용된 제1 격자(100)의 해상도에 비하여 더 정밀한 밀도 분포를 갖는 볼륨 데이터를 생성할 수 있다. 5A to 5C are exemplary schematic diagrams illustrating the results of applying a texture to one or more particles by the
도 5에 도시된 텍스쳐의 밀도 분포는 예시적인 것으로서, 텍스쳐의 밀도 분포는 도 5에 도시된 것과 상이할 수 있으며 표현하고자 하는 유체의 성질 및 형상 등에 기초하여 적절히 결정될 수 있다.The density distribution of the texture shown in FIG. 5 is exemplary, and the density distribution of the texture may be different from that shown in FIG. 5 and may be appropriately determined based on the nature and shape of the fluid to be expressed.
일 실시예에서, 입자가 복수 개일 경우, 각각의 입자(200)에는 서로 상이한 텍스쳐가 적용될 수도 있다. 예를 들어, 텍스쳐 모듈(30)은 불규칙한 패턴을 생성하기 위하여 사용되는 펄린 노이즈(Perlin noise) 알고리즘을 이용하여 복수 개의 텍스쳐를 생성할 수 있다. 이때 각각의 텍스쳐에 서로 상이한 시드값(seeding)을 사용함으로써 서로 상이한 밀도 분포를 갖도록 할 수 있다. In one embodiment, when there are a plurality of particles, different textures may be applied to each
일 실시예에서, 유체 유동 렌더링 시스템은 텍스쳐 모듈(30)에 의하여 입자(200)에 적용되는 텍스쳐를 입자(200)의 위치에 따라 회전시키는 회전 모듈(40)을 더 포함할 수도 있다. 연기와 같은 유체는 소용돌이(swirl) 형태의 움직임을 가지므로, 입자(200)의 위치에 따라 해당 입자(200)에 적용되는 텍스쳐를 회전시키면 유체 유동을 더욱 정밀하게 표현할 수 있다. In one embodiment, the fluid flow rendering system may further include a
예를 들어 입자(200)의 중심점의 속도장을 u라 하고, 입자(200)의 각속도를 쿼터니온(quaternion)으로 나타낸 것을 Ω라 할 경우, Ω는 다음 수학식 1과 같이 속도장에 컬(curl) 연산을 취하는 것에 의하여 산출될 수 있다. For example, when La u center point velocity field of the
또한 입자(200)의 중심점의 방향(orientation)을 쿼터니온으로 나타낸 것을 q라 할 경우, 시간 (t+△t)에서의 방향 q(t+△t)는 시간 t에서의 방향 q(t) 및 회전 쿼터니온 △r(t)를 사용하여 하기 수학식 2에 의하여 표현될 수 있다.In addition, when q represents the orientation of the center point of the
상기 수학식 2에서, 입자(200)의 회전 각도를 2△α, 단위 회전 축을 v(t)라 할 경우, 회전 쿼터니온 △r(t)는 하기 수학식 3에 의하여 표현될 수 있다. In Equation 2, when the rotation angle of the particle (200) 2 △ α, referred to the unit rotation axis, v (t), the rotation quaternion △ r (t) is to be represented by the equation (3).
상기 수학식 3에서 △α의 값이 충분히 작을 경우, 회전 쿼터니온 △r(t)는 하기 수학식 4에 의하여 표현될 수 있다.If smaller the value of △ α in the above equation (3) sufficiently, the rotation quaternion △ r (t) is to be represented by the equation (4).
전술한 수학식 2 및 4를 이용하면, 입자(200)의 방향 q의 시간에 따른 변화량, 즉 q의 시간에 의한 미분값은 하기 수학식 5에 의하여 표현될 수 있다.Using the above Equations 2 and 4, the change amount according to time in the direction q of the
상기 수학식 5에서 ω(t)는 시간 t에서의 입자(200)의 각속도를 나타내는 벡터이며, 상기 수학식 5의 결과를 쿼터니온을 이용하여 나타내면 하기 수학식 6과 같다.In Equation 5, ω (t) is a vector representing the angular velocity of the
상기 수학식 6에서 q vel은 방향 q의 시간에 따른 변화량을 나타내는 쿼터니온이다. 이렇게 산출된 q vel에 각 시간 단계 사이의 시간 간격 dt를 곱하면, 한 시간 단계에서 입자(200)의 방향 변화 q+를 하기 수학식 7에 의하여 구할 수 있다. In Equation 6, q vel is a quaternion representing the amount of change in the direction q over time. By multiplying the q vel thus calculated by the time interval dt between each time step, the direction change q + of the
회전 모듈(40)은, 수학식 1 내지 7을 참조하여 전술한 과정에 의해 입자(200)의 속도장으로부터 입자(200)의 방향 변화를 시간 단계별로 산출할 수 있으며, 입자(200)의 방향을 시간에 따라 갱신해 나갈 수 있다. 또한 회전 모듈(40)은 입자(200)의 방향 q의 길이가 1이 되도록 q를 정규화(normalize)하여, 정규화된 방향 q에 따라 입자(200)에 적용되는 텍스쳐를 회전시킬 수 있다. 입자(200)의 방향에 따라 입자(200)에 적용되는 텍스쳐가 회전되므로, 유체가 유동하는 경우에도 자연스러운 밀도 분포를 산출할 수 있다.The
밀도 모듈(50)은 텍스쳐 모듈(30)에 의하여 텍스쳐가 적용된 하나 이상의 입자(200)가 위치하는 영역을 제2 격자 형태로 분할하여 유체의 시간에 따른 밀도를 밀도장의 형태로 산출할 수 있다. The
도 6의 (a) 내지 (c)는 밀도 모듈(50)에 의하여 입자가 위치한 영역을 격자 형태로 분할하여 밀도장을 산출하는 과정을 시간 단계별로 도시한 예시적인 개략도 이다. 도 6을 참조하면, 텍스쳐가 적용된 하나 이상의 입자(200)가 위치하는 유체의 계산 영역을 제2 격자(500)의 형태로 분할할 수 있다. 이때, 제2 격자(500)의 각 셀에는 해당 셀의 밀도 분포의 평균값이 밀도값으로 지정될 수 있다. 제2 격자(500)에서 입자(200)가 위치하는 영역에 대해서만 연산을 수행하게 되므로 계산 시간 및 계산량이 감소되는 이점이 있다.6A to 6C are exemplary schematic diagrams illustrating a process of calculating a density field by dividing an area in which particles are located by the
밀도 모듈(50)에 의하여 사용되는 제2 격자(500)는, 유체 유동 시뮬레이션 과정에서 사용된 제1 격자(100)에 비해 더 많은 수의 셀을 포함할 수 있다. 그 결과, 상대적으로 저해상도의 제1 격자(100)를 이용하여 유체 유동 시뮬레이션을 수행하고, 상대적으로 고해상도의 제2 격자(500)를 이용하여 렌더링을 수행함으로써, 유체 유동 시뮬레이션 과정의 연산 부담을 증가시키지 않고도 높은 렌더링 품질을 얻을 수 있는 이점이 있다. The
일 실시예에서, 유체 유동 렌더링 시스템은 밀도 모듈(50)에 의하여 산출된 유체의 밀도를 이미지로 변환하는 변환 모듈(60)을 더 포함할 수도 있다. 입자 모듈(20), 텍스쳐 모듈(30), 회전 모듈(40) 및 밀도 모듈(50)에 의하여 수행되는 과정들은 유체 유동 시뮬레이션 결과로 얻어진 속도장을 밀도장으로 후처리하는 단계에 해당되며, 변환 모듈(60)은 후처리된 밀도장을 실제 이미지로 변환하는 역할을 할 수 있다.In one embodiment, the fluid flow rendering system may further include a
변환 모듈(60)의 동작은 밀도장을 이미지로 변환하는 공지된 기술을 이용하여 수행될 수 있다. 예를 들어, 변환 모듈(60)은 볼륨 광선 투사법(ray marching method)에 의하여 밀도장을 이미지로 변환할 수도 있으나, 이는 예시적인 것으로 서, 변환 모듈(60)의 동작이 볼륨 광선 투사법을 이용한 것으로 제한되는 것은 아니다. Operation of the
이상에서 살펴본 본 발명의 실시예들에 따른 유체 유동 렌더링 시스템 및 방법을 이용하면, 볼륨 데이터에 입자 기반의 텍스쳐 및 고해상도의 렌더링 격자를 적용함으로써, 표면이 불분명한 연기 등의 유체의 형상을 정밀한 이미지로 렌더링할 수 있다. 또한, 시뮬레이션 단계에서는 저해상도의 격자를 이용하고 렌더링 과정에서 고해상도의 격자를 이용하므로, 계산 시간 또는 계산량을 현저히 증가시키지 않고도 높은 렌더링 품질을 얻을 수 있다. 나아가, 유체 내의 위치에 따라 텍스쳐를 회전시킴으로써 자연스러운 이미지를 생성할 수 있다.Using the fluid flow rendering system and method according to the embodiments of the present invention described above, by applying a particle-based texture and a high-resolution rendering grid to the volume data, to accurately image the shape of the fluid, such as smoke whose surface is unclear Can be rendered as: In addition, since a low resolution grid is used in the simulation step and a high resolution grid is used in the rendering process, high rendering quality can be obtained without significantly increasing calculation time or calculation amount. Furthermore, natural images can be generated by rotating the texture according to its position in the fluid.
이상에서 살펴본 본 발명은 도면에 도시된 실시예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.Although the present invention described above has been described with reference to the embodiments illustrated in the drawings, this is merely exemplary, and it will be understood by those skilled in the art that various modifications and variations may be made therefrom. However, such modifications should be considered to be within the technical protection scope of the present invention. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.
도 1은 일 실시예에 따른 유체 유동 렌더링 시스템을 도시한 블록도이다. 1 is a block diagram illustrating a fluid flow rendering system according to one embodiment.
도 2는 유체 유동 시뮬레이션에 의해 산출된 유체의 속도장을 예시적으로 도시한 개략도이다. 2 is a schematic diagram exemplarily showing a velocity field of a fluid calculated by a fluid flow simulation.
도 3은 입자 모듈에 의하여 각 시간 단계별로 입자의 위치를 산출한 결과를 예시적으로 도시한 개략도이다. Figure 3 is a schematic diagram showing the results of calculating the position of the particles in each time step by the particle module by way of example.
도 4는 입자 모듈에 의하여 속도장으로부터 입자의 속도를 산출하는 과정을 예시적으로 도시한 개략도이다. 4 is a schematic diagram illustrating a process of calculating the velocity of particles from the velocity field by the particle module.
도 5는 텍스쳐(texture) 모듈에 의하여 각 시간 단계별로 입자에 텍스쳐를 적용한 결과를 예시적으로 도시한 개략도이다. FIG. 5 is a schematic diagram exemplarily illustrating a result of applying a texture to particles at each time step by a texture module. FIG.
도 6은 밀도 모듈에 의하여 각 시간 단계별로 입자가 위치하는 영역을 밀도장으로 변환하는 과정을 예시적으로 도시한 개략도이다.6 is a schematic diagram illustrating a process of converting a region where particles are located in each density step into a density field by the density module.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090056432A KR101022491B1 (en) | 2009-06-24 | 2009-06-24 | System and method for rendering fluid flow |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090056432A KR101022491B1 (en) | 2009-06-24 | 2009-06-24 | System and method for rendering fluid flow |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100138073A KR20100138073A (en) | 2010-12-31 |
KR101022491B1 true KR101022491B1 (en) | 2011-03-16 |
Family
ID=43511591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090056432A KR101022491B1 (en) | 2009-06-24 | 2009-06-24 | System and method for rendering fluid flow |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101022491B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101538141B1 (en) * | 2014-03-31 | 2015-07-23 | 동국대학교 산학협력단 | Apparatus and method for simulating fluid processing correction of density of gas |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101353303B1 (en) * | 2012-07-09 | 2014-01-22 | 삼성전자주식회사 | Graphics processing unit and image processing apparatus having graphics processing unit and image processing method using graphics processing unit |
KR101579112B1 (en) * | 2013-09-04 | 2016-01-04 | 삼성전자주식회사 | Method and apparatus for processing image |
US9384574B2 (en) | 2013-09-04 | 2016-07-05 | Samsung Electronics Co., Ltd. | Image processing method and apparatus therefor |
KR101671365B1 (en) * | 2015-05-11 | 2016-11-01 | 동서대학교 산학협력단 | Color mixing Implementation method of Similar liquefaction point groups |
KR101671357B1 (en) * | 2015-05-11 | 2016-11-01 | 동서대학교 산학협력단 | Graphical presenting method of pseudo liquid emitting by point group with density attribute |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100568562B1 (en) | 2003-11-07 | 2006-04-07 | 강문구 | A real-time simulation and rendering method for fluid flows using continuum fluid mechanics and volume rendering techniques |
KR100568563B1 (en) | 2003-11-04 | 2006-04-07 | 강문구 | A real-time simulation and rendering method for fluid flows using particle dynamics and volume rendering techniques |
KR100568564B1 (en) | 2003-12-01 | 2006-04-07 | 강문구 | A real-time simulation and rendering method for fluid effects using mesh-free simulation technique |
-
2009
- 2009-06-24 KR KR1020090056432A patent/KR101022491B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100568563B1 (en) | 2003-11-04 | 2006-04-07 | 강문구 | A real-time simulation and rendering method for fluid flows using particle dynamics and volume rendering techniques |
KR100568562B1 (en) | 2003-11-07 | 2006-04-07 | 강문구 | A real-time simulation and rendering method for fluid flows using continuum fluid mechanics and volume rendering techniques |
KR100568564B1 (en) | 2003-12-01 | 2006-04-07 | 강문구 | A real-time simulation and rendering method for fluid effects using mesh-free simulation technique |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101538141B1 (en) * | 2014-03-31 | 2015-07-23 | 동국대학교 산학협력단 | Apparatus and method for simulating fluid processing correction of density of gas |
WO2015152456A1 (en) * | 2014-03-31 | 2015-10-08 | 동국대학교 산학협력단 | Apparatus and method for fluid simulation for performing correction of gas density |
Also Published As
Publication number | Publication date |
---|---|
KR20100138073A (en) | 2010-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kato et al. | Neural 3d mesh renderer | |
US7450122B2 (en) | Volumetric hair rendering | |
JP4364409B2 (en) | How to model graphic objects interactively using linked and unlinked surface elements | |
Macklin et al. | Local optimization for robust signed distance field collision | |
KR101022491B1 (en) | System and method for rendering fluid flow | |
US9747668B2 (en) | Reconstruction of articulated objects from a moving camera | |
Kang et al. | An efficient animation of wrinkled cloth with approximate implicit integration | |
KR100915574B1 (en) | Remeshing apparatus and method to restore sharp features of surface mesh smoothed enough | |
Koh et al. | A simple physics model to animate human hair modeled in 2D strips in real time | |
KR102215101B1 (en) | Method and Apparatus for Generating Point Cloud Using Feature of Object Acquired from Image | |
CN105261069A (en) | GPU-based automatic generation and collision detection method for soft tissue organ metaball model | |
CN104299259A (en) | Dynamic interpolation method and sea surface scene generation method | |
CN106210696B (en) | A kind of method and device of real-time virtual View Synthesis | |
Vyatkin | Method of binary search for image elements of functionally defined objects using graphics processing units | |
CN104463934A (en) | Automatic generation method for point set model animation driven by mass point-spring system | |
US10861174B2 (en) | Selective 3D registration | |
JP5400802B2 (en) | Contact simulation method and apparatus using layered depth images | |
KR102454180B1 (en) | Apparatus and method for generating 3d geographical data | |
JP3084659B1 (en) | 3D fluid data visualization processing method | |
Jeon et al. | Enhanced FFD-AABB collision algorithm for deformable objects | |
Kil et al. | 3D warp brush modeling | |
KR101673442B1 (en) | The method and apparatus for remeshing visual hull approximation by DBSS(displaced butterfly subdivision surface) | |
CN110047145A (en) | Metaplasia simulation system and method based on deep learning and finite element modeling | |
Linsen et al. | Smoothviz: Visualization of smoothed particles hydrodynamics data | |
Choi et al. | Image morphing using mass-spring system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20140310 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20150309 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160412 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20200309 Year of fee payment: 10 |