KR101110342B1 - System and method for shape controllable fluid simulation - Google Patents

System and method for shape controllable fluid simulation Download PDF

Info

Publication number
KR101110342B1
KR101110342B1 KR1020100007761A KR20100007761A KR101110342B1 KR 101110342 B1 KR101110342 B1 KR 101110342B1 KR 1020100007761 A KR1020100007761 A KR 1020100007761A KR 20100007761 A KR20100007761 A KR 20100007761A KR 101110342 B1 KR101110342 B1 KR 101110342B1
Authority
KR
South Korea
Prior art keywords
vertices
velocity field
coordinate system
velocity
generating
Prior art date
Application number
KR1020100007761A
Other languages
Korean (ko)
Other versions
KR20110088041A (en
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 KR1020100007761A priority Critical patent/KR101110342B1/en
Publication of KR20110088041A publication Critical patent/KR20110088041A/en
Application granted granted Critical
Publication of KR101110342B1 publication Critical patent/KR101110342B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01PMEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
    • G01P5/00Measuring speed of fluids, e.g. of air stream; Measuring speed of bodies relative to fluids, e.g. of ship, of aircraft
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/24Fluid dynamics

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

유체 시뮬레이션 형상 제어 시스템은, 복수 개의 시간 단계별로 미리 설정된 형상 정보를 이용하여 로컬 좌표계 및 하나 이상의 정점을 생성하는 설정 모듈; 상기 로컬 좌표계에서 상기 하나 이상의 정점의 위치 변화를 이용하여 제1 속도 필드를 생성하는 제1 속도 필드 생성 모듈; 기준 좌표계상의 상기 하나 이상의 정점의 위치 변화를 이용하여 상기 각 정점의 속도를 산출하고, 산출된 속도를 상기 로컬 좌표계로 투영하여 제2 속도 필드를 생성하는 제2 속도 필드 생성 모듈; 및 상기 제1 속도 필드 및 상기 제2 속도 필드에 기초하여 상기 하나 이상의 정점의 위치를 각 시간 단계별로 산출하는 시뮬레이션 모듈을 포함할 수 있다.The fluid simulation shape control system includes a setting module for generating a local coordinate system and one or more vertices using shape information preset in a plurality of time steps; A first velocity field generation module for generating a first velocity field using a change in position of the one or more vertices in the local coordinate system; A second velocity field generation module for calculating a velocity of each vertex using a change in position of the one or more vertices in a reference coordinate system and generating a second velocity field by projecting the calculated velocity into the local coordinate system; And a simulation module that calculates positions of the one or more vertices for each time step based on the first velocity field and the second velocity field.

Description

유체 시뮬레이션 형상 제어 시스템 및 방법{SYSTEM AND METHOD FOR SHAPE CONTROLLABLE FLUID SIMULATION}Fluid simulation shape control system and method {SYSTEM AND METHOD FOR SHAPE CONTROLLABLE FLUID SIMULATION}

실시예들은 유체 시뮬레이션 형상 제어 시스템 및 방법에 관한 것이다. Embodiments relate to a fluid simulation shape control system and method.

컴퓨터 그래픽스(Computer Graphics; CG) 분야, 특히 시각 효과(Visual Effects; VFX) 분야에 있어서 유체 시뮬레이션은 상당히 많은 계산량을 요구하기 때문에, 컴퓨터의 성능이 향상된 최근에 있어서도 많은 연구 및 개발을 요한다. 한편, CG 분야가 태동하기 이전부터 유체의 유동을 수치적으로 풀어내려는 연구는 전산 유체 역학(Computational Fluid Dynamics; CFD) 분야를 중심으로 논의되어 왔다. In the field of computer graphics (CG), especially in the field of visual effects (VFX), fluid simulation requires a great deal of computation, and therefore, a lot of research and development is required even in recent years with improved computer performance. On the other hand, studies to quantify the flow of fluid numerically before the birth of the CG field have been discussed in the field of Computational Fluid Dynamics (CFD).

일상에서 접할 수 있는 유체의 움직임은 대부분 비압축성 유체 유동(incompressible fluid flow)으로 볼 수 있으며, CG 및 CFD 분야에서는 비압축성 유체 유동을 해석하기 위해 나비어-스톡스(Navier-Stokes) 방정식을 지배 방정식으로 사용하고 있다. 나비어-스톡스 방정식은 여러 가지 형태의 편미분 방정식이 하나의 식으로 결합되어 있으므로 해석적인 해(analytic solution)가 존재하지 않으며, 1970년대에 들어서야 비로소 컴퓨터를 이용한 수치적인 해를 구할 수 있게 되었다. CG 분야에서는, "Stable Fluids"의 제목을 가지며 1999년 발행된 Jos Stam의 논문을 시작으로 유체 시뮬레이션이 도입되기 시작하였다.Most of the fluid movements encountered in everyday life can be seen as incompressible fluid flow, and in the field of CG and CFD, the Navier-Stokes equation is used as the governing equation to interpret incompressible fluid flow. Doing. Navier-Stokes equations do not have an analytical solution because many different partial differential equations are combined into one equation, and it is not until the 1970s that numerical solutions have been available using computers. In the field of CG, fluid simulations have been introduced, starting with Jos Stam's thesis, entitled "Stable Fluids".

기존의 유체 시뮬레이션은 자연현상을 그대로 표현하는 것 위주로 사용되었으며, 바다의 수면과 같이 정적인 대규모의 액체를 표현하는 것이 이에 해당된다. 그러나, 기술의 발전을 바탕으로, 최근에는 자연계에서는 찾아보기 힘든 동적인 유체의 움직임을 표현하는 등의 비현실적인 적용 사례가 증가하고 있다. Conventional fluid simulations were mainly used to express natural phenomena as it is, and to represent large-scale static liquids such as the surface of the sea. However, based on the development of technology, recently, unrealistic applications such as expressing the motion of dynamic fluids that are hard to find in the natural world are increasing.

본 발명의 일 측면에 따르면, 캐릭터의 일부분의 움직임에 대응되는 속도 필드 및 캐릭터 전체의 이동에 대응되는 속도 필드를 각각 생성하고, 생성된 속도 필드를 이용하여 유체 시뮬레이션을 수행함으로써, 유체의 움직임을 원하는 대로 제어할 수 있는 유체 시뮬레이션 형상 제어 시스템 및 방법을 제공할 수 있다. According to an aspect of the present invention, by generating a velocity field corresponding to the movement of a portion of the character and a velocity field corresponding to the movement of the entire character, and performing the fluid simulation using the generated velocity field, the movement of the fluid It is possible to provide a fluid simulation shape control system and method that can be controlled as desired.

일 실시예에 따른 유체 시뮬레이션 형상 제어 시스템은, 복수 개의 시간 단계별로 미리 설정된 형상 정보를 이용하여 로컬 좌표계 및 하나 이상의 정점을 생성하는 설정 모듈; 상기 로컬 좌표계에서 상기 하나 이상의 정점의 위치 변화를 이용하여 제1 속도 필드를 생성하는 제1 속도 필드 생성 모듈; 기준 좌표계상의 상기 하나 이상의 정점의 위치 변화를 이용하여 상기 각 정점의 속도를 산출하고, 산출된 속도를 상기 로컬 좌표계로 투영하여 제2 속도 필드를 생성하는 제2 속도 필드 생성 모듈; 및 상기 제1 속도 필드 및 상기 제2 속도 필드에 기초하여 상기 하나 이상의 정점의 위치를 각 시간 단계별로 산출하는 시뮬레이션 모듈을 포함할 수 있다.According to an embodiment, a fluid simulation shape control system includes: a setting module configured to generate a local coordinate system and one or more vertices using shape information preset in a plurality of time steps; A first velocity field generation module for generating a first velocity field using a change in position of the one or more vertices in the local coordinate system; A second velocity field generation module for calculating a velocity of each vertex using a change in position of the one or more vertices in a reference coordinate system and generating a second velocity field by projecting the calculated velocity into the local coordinate system; And a simulation module that calculates positions of the one or more vertices for each time step based on the first velocity field and the second velocity field.

일 실시예에 따른 유체 시뮬레이션 형상 제어 방법은, 복수 개의 시간 단계별로 미리 설정된 형상 정보를 이용하여 로컬 좌표계 및 하나 이상의 정점을 생성하는 단계; 상기 하나 이상의 정점의 상기 로컬 좌표계상의 위치 변화를 이용하여 제1 속도 필드를 생성하는 단계; 기준 좌표계상의 상기 하나 이상의 정점의 위치 변화를 이용하여 상기 각 정점의 속도를 산출하고, 산출된 속도를 상기 로컬 좌표계로 투영하여 제2 속도 필드를 생성하는 단계; 및 상기 제1 속도 필드 및 상기 제2 속도 필드를 이용하여 상기 하나 이상의 정점의 위치를 각 시간 단계별로 산출하는 단계를 포함할 수 있다.According to one or more exemplary embodiments, a fluid simulation shape control method includes generating a local coordinate system and at least one vertex using shape information preset in a plurality of time steps; Generating a first velocity field using a change in position of the one or more vertices on the local coordinate system; Calculating a speed of each of the vertices using a change in position of the one or more vertices on a reference coordinate system, and generating a second velocity field by projecting the calculated speed into the local coordinate system; And calculating positions of the one or more vertices in each time step by using the first velocity field and the second velocity field.

본 발명의 일 측면에 따른 유체 시뮬레이션 형상 제어 시스템 및 방법을 이용하면, 캐릭터의 일부분의 움직임에 대응되는 유체의 속도 필드인 제1 속도 필드 및 캐릭터 전체의 이동에 대응되는 유체의 속도 필드인 제2 속도 필드를 각각 산출하고, 제1 속도 필드 및 제2 속도 필드를 이용하여 비압축 유체 유동 시뮬레이션을 수행함으로써 유체의 형상을 원하는 대로 제어할 수 있는 이점이 있다.Using a fluid simulation shape control system and method according to an aspect of the present invention, a first velocity field, which is a velocity field of a fluid corresponding to a movement of a portion of a character, and a second velocity field, which is a velocity field of a fluid corresponding to a movement of the entire character. By calculating the velocity fields and performing the uncompressed fluid flow simulation using the first velocity field and the second velocity field, the shape of the fluid can be controlled as desired.

도 1은 일 실시예에 따른 유체 시뮬레이션 형상 제어 시스템의 구성을 도시한 블록도이다.
도 2는 유체 시뮬레이션을 수행하기 위한 기준 좌표계, 로컬 좌표계, 시뮬레이션 격자(simulation grid) 및 하나 이상의 정점(vertex)을 나타내는 개략도이다.
도 3은 로컬 좌표계상에서 산출된 하나 이상의 정점의 속도 필드를 나타내는 개략도이다.
도 4는 도 3의 속도 필드에 포아송(Poisson) 방정식을 적용하여 산출된 속도 필드를 나타내는 개략도이다.
도 5는 기준 좌표계상에서 산출된 하나 이상의 정점의 속도를 로컬 좌표계로 투영하여 얻은 속도 필드를 나타내는 개략도이다.
도 6은 일 실시예에 따른 유체 시뮬레이션 형상 제어 방법을 도시한 순서도이다.
1 is a block diagram showing a configuration of a fluid simulation shape control system according to an embodiment.
2 is a schematic diagram illustrating a reference coordinate system, a local coordinate system, a simulation grid, and one or more vertices for performing a fluid simulation.
3 is a schematic diagram illustrating a velocity field of one or more vertices calculated on a local coordinate system.
4 is a schematic diagram illustrating a velocity field calculated by applying a Poisson equation to the velocity field of FIG. 3.
5 is a schematic diagram illustrating a velocity field obtained by projecting the velocity of one or more vertices calculated on a reference coordinate system into a local coordinate system.
6 is a flowchart illustrating a fluid simulation shape control method according to an exemplary embodiment.

이하에서, 도면을 참조하여 본 발명의 실시예들에 대하여 상세히 살펴본다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

도 1은 일 실시예에 따른 유체 시뮬레이션 형상 제어 시스템의 구성을 도시한 블록도이다. 도 1을 참조하면, 유체 시뮬레이션 형상 제어 시스템은 설정 모듈(10), 제1 속도 필드 생성 모듈(20), 제2 속도 필드 생성 모듈(30) 및 시뮬레이션 모듈(40)을 포함할 수 있다. 1 is a block diagram showing a configuration of a fluid simulation shape control system according to an embodiment. Referring to FIG. 1, the fluid simulation shape control system may include a setting module 10, a first velocity field generation module 20, a second velocity field generation module 30, and a simulation module 40.

본 명세서에 기술된 실시예는 전적으로 하드웨어이거나, 부분적으로 하드웨어이고 부분적으로 소프트웨어이거나, 또는 전적으로 소프트웨어인 측면을 가질 수 있다. 예컨대, 본 명세서에서 "부(unit)", "모듈(module)" 또는 "시스템(system)" 등은 하드웨어, 하드웨어와 소프트웨어의 조합, 또는 소프트웨어 등 컴퓨터 관련 엔티티(entity)를 지칭할 수 있다. 예를 들어, 부, 모듈 또는 시스템은 실행중인 프로세스, 프로세서, 객체(object), 실행파일(executable), 실행 스레드(thread of execution), 프로그램, 및/또는 컴퓨터일 수 있으나, 이에 제한되는 것은 아니다. 예를 들어, 컴퓨터에서 실행중인 애플리케이션(application) 및 컴퓨터의 양쪽이 모두 본 명세서에 기재된 부, 모듈 또는 시스템에 해당할 수 있다.Embodiments described herein may have aspects that are wholly hardware, partly hardware and partly software, or wholly software. For example, in this specification, a “unit”, “module” or “system” and the like may refer to hardware, a combination of hardware and software, or a computer related entity such as software. For example, a part, module or system may be, but is not limited to being, a running process, a processor, an object, an executable, a thread of execution, a program, and / or a computer. . For example, both an application running on a computer and a computer may correspond to a unit, module, or system described herein.

설정 모듈(10)은 유체 시뮬레이션을 수행하기 위한 기본 정보를 저장 및/또는 생성하기 위한 부분이다. 설정 모듈(10)은 유체로 표현하고자 하는 대상에 대응되는 형상 정보를 각 시간 단계(time step)별로 저장할 수 있다. 예를 들어, 저장된 형상 정보는 유체로 이루어지는 2차원 또는 3차원 캐릭터의 형상 및 캐릭터의 시간에 따른 움직임을 각 시간 단계별로 모델링(modeling)한 결과물일 수 있다. The setting module 10 is a part for storing and / or generating basic information for performing a fluid simulation. The setting module 10 may store shape information corresponding to an object to be expressed as a fluid for each time step. For example, the stored shape information may be a result of modeling the shape of a two-dimensional or three-dimensional character made of a fluid and the movement of the character in each time step.

표현하고자 하는 캐릭터가 움직이고 있으므로, 설정 모듈(10)에 저장된 형상 정보는 각 시간 단계별로 적어도 부분적으로 상이할 수 있다. 각 시간 단계 사이의 시간 간격은 유체 시뮬레이션의 연산량을 고려하여 적절히 결정될 수 있다. 예컨대, 각 시간 단계는 1초의 시간을 세분화한 각 프레임(frame)이거나, 또는 하나의 프레임을 다시 세분화한 각 서브-프레임(sub-frame)일 수 있다. Since the character to be expressed is moving, the shape information stored in the setting module 10 may be at least partially different in each time step. The time interval between each time step can be appropriately determined in consideration of the calculation amount of the fluid simulation. For example, each time step may be each frame subdividing one second of time, or each sub-frame subdividing one frame again.

또한 설정 모듈(10)은, 각 시간 단계별로 캐릭터의 형상에 대응되는 시뮬레이션 그리드를 설정할 수 있다. 시뮬레이션 그리드에서 캐릭터는 캐릭터의 표면에 인접하여 위치하는 시뮬레이션 그리드의 꼭지점에 해당하는 하나 이상의 정점(vertex)에 의해 표현될 수 있다. 각 시간 단계에서 캐릭터가 이동함에 따라 시뮬레이션 그리드도 이동하게 되며, 따라서 하나 이상의 정점의 위치도 각 시간 단계별로 변화하게 된다. In addition, the setting module 10 may set a simulation grid corresponding to the shape of the character in each time step. In the simulation grid, a character may be represented by one or more vertices corresponding to the vertices of the simulation grid located adjacent to the character's surface. As the character moves in each time step, the simulation grid also moves, so the position of one or more vertices also changes with each time step.

또한 설정 모듈(10)은 표현될 캐릭터상에 위치하는 로컬 좌표계(local coordinate)를 생성할 수 있다. 시뮬레이션 그리드상의 하나 이상의 정점의 위치는 캐릭터의 움직임과 무관한 기준 좌표계(reference coordinate)를 기준으로 정의되는 반면, 로컬 좌표계는 원점이 캐릭터상에 또는 캐릭터와 인접하여 위치하면서 캐릭터의 움직임에 따라 이동하는 좌표계이다. Also, the setting module 10 may generate a local coordinate located on the character to be expressed. The position of one or more vertices on the simulation grid is defined relative to a reference coordinate that is independent of the character's movement, while the local coordinate system moves in response to the character's movement while the origin is located on or adjacent to the character. Coordinate system.

도 2는 특정 시간 단계에서 기준 좌표계, 로컬 좌표계, 시뮬레이션 그리드 및 하나 이상의 정점을 나타낸 개략도이다. 2 is a schematic diagram illustrating a reference coordinate system, a local coordinate system, a simulation grid, and one or more vertices at a particular time step.

도 2를 참조하면, 설정 모듈(10)은 해당 시간 단계에 대해 미리 저장된 캐릭터(1)의 형상에 따라 캐릭터(1)를 둘러싸는 시뮬레이션 그리드(100)를 생성할 수 있다. 이때 캐릭터(1)의 형상은 시뮬레이션 그리드(100)에서 각 꼭지점에 해당되는 하나 이상의 정점(200)에 의해 표현될 수 있다. 또한 각 정점(200)의 위치는 x축 및 y축으로 이루어지는 기준 좌표계에 기초하여 정의될 수 있다. 또한, 설정 모듈(10)은 원점이 캐릭터(1)상에 위치하며 x'축 및 y'축으로 이루어지는 로컬 좌표계를 생성할 수 있다. Referring to FIG. 2, the setting module 10 may generate the simulation grid 100 surrounding the character 1 according to the shape of the character 1 previously stored for the corresponding time step. In this case, the shape of the character 1 may be represented by one or more vertices 200 corresponding to each vertex in the simulation grid 100. In addition, the position of each vertex 200 may be defined based on a reference coordinate system consisting of x- and y-axes. In addition, the setting module 10 may generate a local coordinate system having an origin located on the character 1 and having an x 'axis and a y' axis.

도 2를 참조하여 전술한 실시예에서, 시뮬레이션 그리드(100)는 정사각형 형태의 격자 구조로 도시되었으나, 이는 예시적인 것으로서 다른 실시예에서는 직사각형, 육각형, 삼각형 또는 다른 임의의 다각형 형상이 규칙적으로 배열된 격자를 시뮬레이션 그리드로 이용할 수도 있다.In the embodiment described above with reference to FIG. 2, the simulation grid 100 is shown in a grid structure of square shape, but this is illustrative and in other embodiments a rectangular, hexagonal, triangular or other arbitrary polygonal shape is regularly arranged. The grid can also be used as a simulation grid.

또한 도 2를 참조하여 전술한 실시예에서 캐릭터(1)의 형상, 기준 좌표계, 로컬 좌표계 및 시뮬레이션 그리드(100) 등은 2차원인 평면을 기준으로 설명되었다. 그러나 이는 단지 설명의 편의를 위한 예시적인 것으로서, 3차원 공간 내에 위치하는 캐릭터의 형상 및 움직임을 유체로 표현할 수도 있다. 이 경우 기준 좌표계 및 로컬 좌표계는 3차원의 좌표계일 수 있으며, 시뮬레이션 그리드는 정육면체 또는 다른 적당한 다면체의 형태일 수 있다. In addition, in the above-described embodiment with reference to FIG. 2, the shape of the character 1, the reference coordinate system, the local coordinate system, the simulation grid 100, and the like have been described with reference to a two-dimensional plane. However, this is merely an example for convenience of description and may represent the shape and movement of the character located in the three-dimensional space in a fluid. In this case, the reference coordinate system and the local coordinate system may be three-dimensional coordinate systems, and the simulation grid may be in the form of a cube or another suitable polyhedron.

다시 도 1을 참조하면, 제1 속도 필드 생성 모듈(20)은 캐릭터의 일부분의 움직임에 대응되는 유체의 속도 필드인 제1 속도 필드를 생성하기 위한 부분이다. 예를 들어, 캐릭터가 인간 또는 동물 형태일 경우, 인간이나 동물의 팔다리의 움직임에 대응되는 유체의 움직임이 이에 해당된다. Referring back to FIG. 1, the first velocity field generation module 20 is a portion for generating a first velocity field, which is a velocity field of a fluid corresponding to movement of a portion of a character. For example, when the character is a human or animal form, the movement of the fluid corresponding to the movement of the limbs of the human or animal corresponds.

제1 속도 필드 생성 모듈(20)은 제1 변환부(21) 및 제1 속도 산출부(22)를 포함할 수 있다. 제1 변환부(21)는, 각 시간 단계에서, 설정 모듈(10)에 의하여 생성된 하나 이상의 정점의 기준 좌표계상의 위치를 로컬 좌표계로 투영하기 위한 부분이다. 이는 기준 좌표계와 로컬 좌표계 사이의 변환 행렬을 산출하고, 하나 이상의 정점 각각의 위치를 변환 행렬에 곱한 결과로서 얻어질 수 있다. The first speed field generation module 20 may include a first converter 21 and a first speed calculator 22. The first transform unit 21 is a portion for projecting a position on the reference coordinate system of one or more vertices generated by the setting module 10 in the local coordinate system at each time step. This can be obtained as a result of calculating the transformation matrix between the reference coordinate system and the local coordinate system, and multiplying the position of each of the one or more vertices by the transformation matrix.

제1 속도 산출부(22)는 로컬 좌표계로 변환된 각 정점의 위치를 이용하여 각 정점의 속도를 산출하기 위한 부분이다. 전술한 제1 변환부(21)는 각 시간 단계마다 하나 이상의 정점 각각의 기준 좌표계상의 위치를 로컬 좌표계로 투영한다. 이때 제1 속도 산출부(22)는, 현재 시간 단계에서 로컬 좌표계로 투영된 각 정점의 위치를 이전 시간 단계에서 로컬 좌표계로 투영된 위치와 비교하여 각 정점의 변위를 산출할 수 있다. 그리고 산출된 변위를 각 시간 단계 사이의 시간 간격으로 나누어 각 정점의 속도를 산출할 수 있다. 이상과 같은 방법에 의해, 캐릭터의 일부분의 움직임에 대응되는 하나 이상의 정점의 속도 필드를 생성할 수 있다.The first speed calculator 22 is a part for calculating the speed of each vertex using the position of each vertex converted into the local coordinate system. The aforementioned first transform unit 21 projects the position on the reference coordinate system of each of the one or more vertices in each local time step in the local coordinate system. In this case, the first speed calculator 22 may calculate the displacement of each vertex by comparing the position of each vertex projected to the local coordinate system in the current time step with the position projected to the local coordinate system in the previous time step. The calculated displacement may be divided by the time interval between each time step to calculate the speed of each vertex. By the above method, it is possible to generate the velocity field of one or more vertices corresponding to the movement of a part of the character.

도 3은 일 실시예에 따른 유체 시뮬레이션 형상 제어 시스템에서 제1 속도 산출부에 의해 산출된 속도 필드를 도시한 개략도이다. 도 3에서 각 정점의 속도는, 속도의 크기에 비례하는 길이 및 속도의 방향으로 연장되는 직선 형태로 도시되었다. 한편, 설정 모듈(10)에 의하여 생성된 시뮬레이션 그리드의 각 정점은 캐릭터의 표면에 인접하여 위치하므로, 표면으로부터 일정 거리 이상 이격된 캐릭터의 내부 영역(300)에는 정점이 존재하지 않아 속도가 정의되지 않을 수 있다. 3 is a schematic diagram illustrating a velocity field calculated by the first velocity calculator in a fluid simulation shape control system according to an exemplary embodiment. In Figure 3 the speed of each vertex is shown in a straight line extending in the direction of the length and speed proportional to the magnitude of the speed. On the other hand, since each vertex of the simulation grid generated by the setting module 10 is located adjacent to the surface of the character, the vertex does not exist in the internal region 300 of the character spaced more than a certain distance from the surface does not define the speed You may not.

이를 해결하기 위하여, 일 실시예에서, 제1 속도 필드 생성 모듈(20)은 속도 보정부(23)를 더 포함할 수 있다. 속도 보정부(23)는 제1 속도 산출부(22)에 의해 산출된 속도 필드에 포아송 방정식(Poisson equation)을 적용하여 연산함으로써, 캐릭터의 표면으로부터 일정 거리 이상 이격된 영역(300)의 속도 필드를 산출할 수 있다. 구체적으로 속도 보정부(23)에 의한 포아송 방정식의 연산 과정은 다음과 같다. In order to solve this problem, in one embodiment, the first speed field generation module 20 may further include a speed correction unit 23. The velocity correction unit 23 calculates the velocity field of the region 300 spaced apart from the character's surface by a distance by applying the Poisson equation to the velocity field calculated by the first velocity calculator 22. Can be calculated. Specifically, the calculation process of the Poisson equation by the speed correction unit 23 is as follows.

제1 속도 산출부(22)에서 산출된 속도 필드를 w, 속도 보정부(23)에 의해 산출하고자 하는 무발산(divergence-free)의 속도 필드를 u라 할 경우, 두 속도 필드는 헬름홀츠-하지 분해(Helmholtz-Hodge decomposition)에 따라 다음 수학식 1을 만족하게 된다. When the speed field calculated by the first speed calculating unit 22 is w and the divergence-free speed field to be calculated by the speed correcting unit 23 is u , the two speed fields are Helmholtz-low. According to Helmholtz-Hodge decomposition, the following Equation 1 is satisfied.

Figure 112010005931384-pat00001
Figure 112010005931384-pat00001

상기 수학식 1에서 q는 특정한 스칼라(scalar) 값이며, q를 구할 경우 q 값을 수학식 1에 대입함으로써 u를 구할 수 있다. 이를 위하여, 먼저 수학식 1의 양변에 발산(divergence)을 취하면 하기 수학식 2를 얻을 수 있다. In Equation 1, q is a specific scalar value, and when q is obtained, u may be obtained by substituting q in Equation 1. To this end, first, by applying divergence to both sides of Equation 1, Equation 2 can be obtained.

Figure 112010005931384-pat00002
Figure 112010005931384-pat00002

상기 수학식 2에서 u는 무발산 필드이므로 ▽?u는 0이 되며, 따라서 수학식 2는 하기 수학식 3과 같은 포아송 방정식이 된다. In the above Equation 2, u is a no divergence field, so? u becomes 0, and thus Equation 2 becomes a Poisson equation such as Equation 3 below.

Figure 112010005931384-pat00003
Figure 112010005931384-pat00003

수치 해석을 이용하면 상기 수학식 3에서 q의 값을 구할 수 있으며, 구해진 q의 값을 수학식 1에 대입하여 속도 필드 u를 산출할 수 있다. 이때 속도 필드 u는 전술한 것과 같이 물체 표면으로부터 일정 거리 이상 이격된 영역의 속도까지도 포함하는 속도 필드가 된다. 이상과 같이 산출된 속도 필드 u는, 캐릭터의 일부분의 움직임을 로컬 좌표계로 투영한 것에 대응되는 유체의 속도 필드로서, 제1 속도 필드로 지칭한다.Using numerical analysis, the value of q can be obtained from Equation 3, and the velocity field u can be calculated by substituting the obtained value of q into Equation 1. In this case, as described above, the velocity field u becomes a velocity field including a velocity of an area spaced apart from the surface of the object by a predetermined distance or more. The velocity field u calculated as described above is a velocity field of the fluid corresponding to the projection of the movement of a part of the character in the local coordinate system, and is referred to as a first velocity field.

도 4은 일 실시예에 따른 유체 시뮬레이션 형상 제어 시스템에서 산출된 제1 속도 필드를 도시한 개략도이다. 도 3 및 도 4를 비교하면, 속도 보정부(23)에 의한 연산의 결과 캐릭터의 표면으로부터 일정 거리 이상 이격된 내부 영역(300)에 대해서까지 속도 필드가 정의된 것을 확인할 수 있다. 4 is a schematic diagram illustrating a first velocity field calculated in a fluid simulation shape control system according to an embodiment. Comparing FIG. 3 and FIG. 4, it can be seen that the velocity field is defined up to the inner region 300 spaced a predetermined distance or more from the character's surface as a result of the calculation by the velocity correction unit 23.

다시 도 1을 참조하면, 제2 속도 필드 생성부(30)는 유체로 표현하고자 하는 캐릭터 전체의 이동에 대응되는 유체의 속도 필드인 제2 속도 필드를 생성하기 위한 부분이다. 예를 들어, 유체로 이루어진 캐릭터가 특정 방향으로 이동하였을 경우, 캐릭터 표면의 유체가 이동 방향과 반대 방향으로 흐르는 등의 움직임이 이에 해당된다. Referring back to FIG. 1, the second velocity field generator 30 is a portion for generating a second velocity field, which is a velocity field of a fluid corresponding to movement of the entire character to be represented by the fluid. For example, when a character made of a fluid moves in a specific direction, the motion such as fluid flowing in a direction opposite to the moving direction corresponds to this.

제2 속도 필드 생성부(30)는 제2 속도 산출부(31) 및 제2 변환부(32)를 포함할 수 있다. 먼저 제2 속도 산출부(31)는 기준 좌표계상에서 하나 이상의 정점의 위치를 이용하여 각 정점의 속도를 산출할 수 있다. 제2 속도 산출부(31)는 기준 좌표계에서 각 정점의 현 시간 단계에서의 위치를 이전 시간 단계에서의 위치와 비교하여 변위를 산출하고, 산출된 변위를 각 시간 단계 사이의 시간 간격으로 나누어 속도를 산출할 수 있다. The second speed field generator 30 may include a second speed calculator 31 and a second converter 32. First, the second speed calculator 31 may calculate the speed of each vertex using the positions of one or more vertices in the reference coordinate system. The second speed calculator 31 calculates the displacement by comparing the position at the current time step of each vertex in the reference coordinate system with the position at the previous time step, and divides the calculated displacement by the time interval between each time step. Can be calculated.

제2 변환부(32)는, 제2 속도 산출부(31)에서 산출된 하나 이상의 정점의 속도를 로컬 좌표계로 투영하기 위한 부분이다. 각 정점의 속도를 로컬 좌표계로 투영하는 것은, 제1 변환부(21)와 관련하여 전술한 것과 유사하게, 기준 좌표계와 로컬 좌표계 사이의 변환 행렬을 각 정점의 속도에 곱한 결과에 의해 얻어질 수 있다. 그 결과, 캐릭터의 기준 좌표계상의 움직임에 대응되는 유체의 속도 필드인 제2 속도 필드를 얻을 수 있다. The 2nd conversion part 32 is a part for projecting the speed | rate of the 1 or more vertices computed by the 2nd speed calculating part 31 to a local coordinate system. Projecting the velocity of each vertex to a local coordinate system can be obtained by multiplying the velocity of each vertex by a transformation matrix between the reference coordinate system and the local coordinate system, similar to the one described above with respect to the first transform unit 21. have. As a result, a second velocity field which is a velocity field of the fluid corresponding to the movement on the reference coordinate system of the character can be obtained.

도 5는 일 실시예에 따른 유체 시뮬레이션 형상 제어 시스템에서 산출된 제2 속도 필드를 도시한 개략도이다. 도시되는 바와 같이, 기준 좌표계상에서 캐릭터 전체가 한 방향으로 이동한 결과, 캐릭터의 표면과 인접하여 위치하는 정점들에 대해 속도 필드가 생성된 것을 확인할 수 있다. 5 is a schematic diagram illustrating a second velocity field calculated in a fluid simulation shape control system according to one embodiment. As shown, as a result of moving the entire character in one direction on the reference coordinate system, it can be seen that the velocity field is generated for the vertices located adjacent to the surface of the character.

다시 도 1을 참조하면, 시뮬레이션 모듈(40)은, 제1 속도 필드 생성 모듈(20) 및 제2 속도 필드 생성 모듈(30)에서 각각 생성된 제1 속도 필드 및 제2 속도 필드를 이용하여 비압축성 유체 유동(incompressible fluid flow) 시뮬레이션을 수행할 수 있다. 예를 들어, 시뮬레이션 모듈(40)은 제1 속도 필드 및 제2 속도 필드를 합산한 속도 필드에 기초하여 각 정점의 위치를 시간 단계별로 갱신할 수 있다. Referring back to FIG. 1, the simulation module 40 is incompressible using the first speed field and the second speed field generated by the first speed field generation module 20 and the second speed field generation module 30, respectively. Incompressible fluid flow simulation can be performed. For example, the simulation module 40 may update the position of each vertex in time steps based on the speed field obtained by adding up the first speed field and the second speed field.

비압축성 유체 유동 시뮬레이션은, 전술한 과정에 의해 산출된 유체의 속도 필드를 나비어나비어-스톡스(Navier-Stokes) 방정식에 적용하여 연산함으로서 각 정점의 위치를 시간 단계별로 갱신해내가는 과정일 수 있다. 시뮬레이션 모듈(40)에 의한 유체 시뮬레이션의 구체적인 연산 과정은 당업자에게 잘 알려져 있으므로 이에 대한 자세한 설명은 생략한다. 예를 들어, 시뮬레이션 모듈(40)은 공지된 유체 시뮬레이터(fluid simulator)를 이용하여 유체 시뮬레이션을 수행할 수도 있다. Incompressible fluid flow simulation may be a process of updating the position of each vertex in a time step by calculating the velocity field of the fluid calculated by the above-described process to the Navier-Stokes equation. . Since a detailed calculation process of fluid simulation by the simulation module 40 is well known to those skilled in the art, a detailed description thereof will be omitted. For example, the simulation module 40 may perform fluid simulations using known fluid simulators.

일 실시예에서, 유체 시뮬레이션 형상 제어 시스템은 파티클(particle) 모듈(50)을 더 포함할 수도 있다. 파티클 모듈(50)은 전술한 과정에 의해 생성된 제1 속도 필드 및 제2 속도 필드에 기초하여 하나 이상의 유체 파티클을 생성하기 위한 부분이다. 유체 파티클은 하나 이상의 정점에 의해 표현될 수 있다. In one embodiment, the fluid simulation shape control system may further include a particle module 50. The particle module 50 is a part for generating one or more fluid particles based on the first velocity field and the second velocity field generated by the above-described process. Fluid particles may be represented by one or more vertices.

예를 들어, 파티클 모듈(50)은 속도 필드에서 속도의 크기가 미리 설정된 임계값 이상인 부분이 있을 경우, 해당 부분에 인접하여 새로운 정점을 생성할 수 있다. 그 결과, 물로 이루어진 캐릭터가 빠르게 움직일 때 캐릭터의 표면에서 물 입자가 튀는 스플래시(splash) 형상을 표현할 수 있다. 파티클 모듈(50)에서 파티클을 생성하기 위한 동작은 전술한 스플래시에 기초한 방법 이외에도 버블(bubble) 또는 폼(foam) 형상으로 파티클을 생성하는 방법이 있다. 스플래시, 버블 및/또는 폼 형상으로 파티클을 생성하기 위한 구체적인 방법에 대해서는 당업자에게 잘 알려져 있으므로 자세한 설명을 생략한다. For example, if there is a portion of the velocity field in which the magnitude of the velocity is greater than or equal to a preset threshold value, the particle module 50 may generate a new vertex adjacent to the portion. As a result, it is possible to express a splash shape in which water particles splash on the surface of the character when the character made of water moves fast. An operation for generating particles in the particle module 50 includes a method for generating particles in a bubble or foam shape in addition to the above-described splash based method. Specific methods for generating particles in a splash, bubble, and / or foam shape are well known to those skilled in the art, and thus detailed descriptions thereof will be omitted.

도 6은 일 실시예에 따른 유체 시뮬레이션 형상 제어 방법을 도시한 순서도이다. 6 is a flowchart illustrating a fluid simulation shape control method according to an exemplary embodiment.

도 6을 참조하면, 먼저 유체로 표현하고자 하는 캐릭터에 대해 미리 저장된 각 시간 단계별 형상 정보를 이용하여, 캐릭터상에 위치하는 로컬 좌표계 및 시뮬레이션 그리드를 생성할 수 있다(S1). 이때 캐릭터의 형상은 시뮬레이션 그리드의 각 꼭지점에 해당되는 하나 이상의 정점에 의해 표현될 수 있다.Referring to FIG. 6, first, a local coordinate system and a simulation grid positioned on a character may be generated using shape information stored in advance for each character to be represented by a fluid (S1). In this case, the shape of the character may be represented by one or more vertices corresponding to each vertex of the simulation grid.

다음으로, 현재의 시간 단계가 첫 번째 시간 단계인지 여부를 판단한다(S2). 현재 시간 단계가 첫 번째 시간 단계일 경우에는 아무런 동작을 수행하지 않으며, 현재 시간 단계가 마지막 시간 단계인지 여부를 판단하는 단계(S10)를 거쳐 바로 다음 단계로 넘어가게 된다. Next, it is determined whether the current time step is the first time step (S2). If the current time step is the first time step, no operation is performed, and the process proceeds directly to the next step after step S10 of determining whether the current time step is the last time step.

현재 시간 단계가 첫 번째 시간 단계가 아닐 경우에는, 전술한 단계(S1)에서 생성된 각 정점의 위치를 캐릭터상의 로컬 좌표계로 투영할 수 있다(S3). 이는 기준 좌표계와 로컬 좌표계 사이의 변환 행렬을 산출하고, 산출된 변환 행렬을 하나 이상의 정점 각각의 위치에 곱한 결과로서 얻어질 수 있다. If the current time step is not the first time step, the position of each vertex generated in the above-described step S1 may be projected to the local coordinate system on the character (S3). This can be obtained as a result of calculating a transformation matrix between the reference coordinate system and the local coordinate system, and multiplying the calculated transformation matrix by each position of one or more vertices.

다음으로, 로컬 좌표계에서 각 정점의 위치를 이전 시간 단계에서의 위치와 비교하여 변위를 산출하고, 산출된 변위를 각 시간 단계 사이의 시간 간격으로 나누어 각 정점의 속도를 산출할 수 있다(S4). 이때 각 정점은 캐릭터의 표면에 인접하여 위치하므로, 캐릭터의 표면으로부터 일정 간격 이상 이격된 내부 영역에는 속도가 정의되지 않을 수 있다. Next, the displacement is calculated by comparing the position of each vertex in the local coordinate system with the position in the previous time step, and the speed of each vertex may be calculated by dividing the calculated displacement by the time interval between each time step (S4). . At this time, since each vertex is located adjacent to the surface of the character, the speed may not be defined in the inner region spaced more than a predetermined distance from the surface of the character.

따라서, 캐릭터 내부 영역의 속도를 정의하기 위하여, 전술한 단계(S4)에서 산출된 각 정점의 속도를 이용하여 캐릭터의 전체 영역의 속도를 산출함으로써 제1 속도 필드를 생성할 수 있다(S5). 제1 속도 필드는 단계(S4)에서 산출된 각 정점의 속도에 포아송 방정식(Poisson equation)을 적용하여 연산함으로써 산출되는 무발산의 속도 필드일 수 있다. Therefore, in order to define the velocity of the character internal region, the first velocity field may be generated by calculating the velocity of the entire region of the character using the velocity of each vertex calculated in step S4 described above (S5). The first velocity field may be a no-dispersion velocity field calculated by applying the Poisson equation to the velocity of each vertex calculated in step S4.

전술한 단계들(S3 내지 S5)에 의해 생성되는 제1 속도 필드는 캐릭터의 일부분의 움직임에 대응되는 유체의 속도 필드이다. 예를 들어, 인간 또는 동물 형상의 캐릭터를 유체로 표현하고자 하는 경우, 인간 또는 동물의 팔다리의 움직임에 대응되는 유체의 움직임 등이 이에 해당된다.The first velocity field generated by the above-described steps S3 to S5 is the velocity field of the fluid corresponding to the movement of the portion of the character. For example, when a character of human or animal shape is to be represented by a fluid, the movement of a fluid corresponding to the movement of a limb of a human or an animal corresponds to this.

한편, 캐릭터 전체의 이동에 대응되는 유체의 속도 필드를 별도로 산출할 수 있다. 이를 위하여, 먼저 기준 좌표계에서 하나 이상의 정점 각각의 위치를 이전 시간 단계에서의 위치와 비교하여 각 정점의 변위를 산출하고, 산출된 변위를 각 시간 단계 사이의 시간 간격으로 나누어 각 정점의 속도를 산출할 수 있다(S6). Meanwhile, the velocity field of the fluid corresponding to the movement of the entire character may be separately calculated. To do this, first calculate the displacement of each vertex by comparing the position of each of the one or more vertices in the reference coordinate system with the position in the previous time step, and calculate the velocity of each vertex by dividing the calculated displacement by the time interval between each time step. It may be (S6).

다음으로, 전술한 단계(S6)에서 산출된 각 정점의 속도를 캐릭터상에 위치하는 로컬 좌표계로 투영하여, 제2 속도 필드를 생성할 수 있다(S7). 이와 같이 산출된 제2 속도 필드는 캐릭터 전체의 움직임에 대응되는 유체의 속도 필드로서, 예컨대 유체로 이루어진 캐릭터가 한쪽 방향으로 이동하는 경우 캐릭터 표면의 유체가 이동 방향과 반대 방향으로 흐르는 움직임 등이 이에 해당된다.Next, the second velocity field may be generated by projecting the velocity of each vertex calculated in the above-described step S6 to a local coordinate system located on the character (S7). The second velocity field calculated as described above is a velocity field of a fluid corresponding to the movement of the entire character. For example, when a character made of fluid moves in one direction, the fluid flowing on the surface of the character in a direction opposite to the movement direction may be used. Yes.

이상에서 설명한 실시예에서는, 캐릭터의 일부분의 움직임에 대응되는 제1 속도 필드를 생성하는 단계들(S3 내지 S5)이 먼저 수행된 후 캐릭터 전체의 움직임에 대응되는 제2 속도 필드를 생성하는 단계들(S6, S7)이 수행되었다. 그러나 이는 예시적인 것으로서, 제1 속도 필드를 생성하는 단계들(S3 내지 S5)과 제2 속도 필드를 생성하는 단계들(S6, S7)의 순서는 바뀔 수도 있으며, 또는 동시에 수행되는 것도 가능하다. In the above-described embodiment, steps S3 to S5 of generating the first velocity field corresponding to the movement of the portion of the character are first performed, and then generating the second velocity field corresponding to the movement of the entire character. (S6, S7) was performed. However, as an example, the order of generating the first speed field (S3 to S5) and generating the second speed field (S6, S7) may be changed or may be performed simultaneously.

제1 속도 필드 및 제2 속도 필드가 산출되면, 제1 속도 필드 및 제2 속도 필드를 이용하여 비압축 유체 유동 시뮬레이션을 수행할 수 있다(S8). 예를 들어, 제1 속도 필드 및 제2 속도 필드를 합산한 속도 필드를 이용하여 비압축 유체 유동 시뮬레이션을 수행할 수 있다. 비압축 유체 유동 시뮬레이션은 속도 필드에 나비어-스톡스(Navier-Stokes) 방정식을 적용하여 연산함으로써 각 정점의 위치를 시간 단계별로 갱신하는 과정일 수 있다. 구체적인 유체 유동 시뮬레이션의 연산 과정은 당업자들에게 잘 알려져 있으므로 자세한 설명을 생략한다.When the first velocity field and the second velocity field are calculated, an uncompressed fluid flow simulation may be performed using the first velocity field and the second velocity field (S8). For example, an uncompressed fluid flow simulation can be performed using the velocity field, which is the sum of the first velocity field and the second velocity field. Uncompressed fluid flow simulation may be a process of updating the position of each vertex in a time step by applying a Navier-Stokes equation to a velocity field. Detailed computation of fluid flow simulation is well known to those skilled in the art, and thus detailed description thereof will be omitted.

일 실시예에서는, 유체 유동 시뮬레이션이 수행된 후 제1 속도 필드 및 제2 속도 필드에 기초하여 하나 이상의 유체 파티클을 생성할 수도 있다(S9). 생성되는 유체 파티클은 하나 이상의 정점에 의해 표현될 수 있다. 이는 스플래시(splash), 버블(bubble) 또는 폼(foam) 등과 같은 유체 형상을 표현하기 위한 것이며, 구체적인 파티클 생성 방법에 대해서는 당업자들에게 잘 알려져 있으므로 자세한 설명을 생략한다.In one embodiment, after the fluid flow simulation is performed, one or more fluid particles may be generated based on the first velocity field and the second velocity field (S9). The resulting fluid particle may be represented by one or more vertices. This is for expressing a fluid shape such as a splash, bubble, or foam, and the detailed description of the specific particle generation method is well known to those skilled in the art.

현재의 시간 단계에서 전술한 각 단계(S3 내지 S9)가 완료되면, 해당 시간 단계가 마지막 시간 단계인지 판단한다(S10). 마지막 시간 단계가 아닐 경우에는 현재 시간 단계에서 산출된 각 정점의 위치를 초기값으로 하여 다음 시간 단계에서 전술한 각 단계(S3 내지 S9)를 반복적으로 수행하며, 마지막 시간 단계일 경우에는 시뮬레이션을 종료한다.When each of the above-described steps S3 to S9 in the current time step is completed, it is determined whether the corresponding time step is the last time step (S10). If it is not the last time step, the above-described steps (S3 to S9) are repeatedly performed in the next time step with the position of each vertex calculated in the current time step as an initial value, and the simulation is terminated in the last time step. do.

본 명세서에서 실시예들에 따른 유체 시뮬레이션 형상 제어 방법은 도면에 제시된 순서도를 참조로 하여 설명되었다. 간단히 설명하기 위하여 상기 방법은 일련의 블록들로 도시되고 설명되었으나, 본 발명은 상기 블록들의 순서에 한정되지 않고, 몇몇 블록들은 다른 블록들과 본 명세서에서 도시되고 기술된 것과 상이한 순서로 또는 동시에 일어날 수도 있으며, 동일한 또는 유사한 결과를 달성하는 다양한 다른 분기, 흐름 경로, 및 블록의 순서들이 구현될 수 있다. 또한, 본 명세서에서 기술되는 방법의 구현을 위하여 도시된 모든 블록들이 요구되지 않을 수도 있다.The fluid simulation shape control method according to the embodiments herein has been described with reference to the flowchart shown in the drawings. Although the method is shown and described in a series of blocks for the sake of simplicity, the invention is not limited to the order of the blocks, and some blocks may occur in different order or simultaneously with other blocks than those shown and described herein. Various other branches, flow paths, and blocks may be implemented in order to achieve the same or similar results. In addition, not all illustrated blocks may be required for the implementation of the methods described herein.

이상에서 살펴본 본 발명은 도면에 도시된 실시예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.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.

Claims (10)

복수 개의 시간 단계별로 미리 설정된 형상 정보를 이용하여 로컬 좌표계 및 하나 이상의 정점을 생성하는 설정 모듈;
상기 로컬 좌표계에서 상기 하나 이상의 정점의 위치 변화를 이용하여 제1 속도 필드를 생성하는 제1 속도 필드 생성 모듈;
기준 좌표계상의 상기 하나 이상의 정점의 위치 변화를 이용하여 상기 각 정점의 속도를 산출하고, 산출된 속도를 상기 로컬 좌표계로 투영하여 제2 속도 필드를 생성하는 제2 속도 필드 생성 모듈; 및
상기 제1 속도 필드 및 상기 제2 속도 필드에 기초하여 상기 하나 이상의 정점의 위치를 각 시간 단계별로 산출하는 시뮬레이션 모듈을 포함하는 것을 특징으로 하는 유체 시뮬레이션 형상 제어 시스템.
A setting module for generating a local coordinate system and at least one vertex using shape information preset in a plurality of time steps;
A first velocity field generation module for generating a first velocity field using a change in position of the one or more vertices in the local coordinate system;
A second velocity field generation module for calculating a velocity of each vertex using a change in position of the one or more vertices in a reference coordinate system and generating a second velocity field by projecting the calculated velocity into the local coordinate system; And
And a simulation module for calculating the position of the one or more vertices in each time step based on the first velocity field and the second velocity field.
제 1항에 있어서,
상기 제1 속도 필드 생성 모듈은,
상기 하나 이상의 정점의 기준 좌표계상의 위치를 상기 로컬 좌표계상의 위치로 변환하는 제1 변환부; 및
변환된 상기 각 정점의 위치를 이전 시간 단계에서의 위치와 비교하여 상기 각 정점의 속도를 산출하는 제1 속도 산출부를 포함하는 것을 특징으로 하는 유체 시뮬레이션 형상 제어 시스템.
The method of claim 1,
The first speed field generation module,
A first converter converting a position on a reference coordinate system of the one or more vertices into a position on the local coordinate system; And
And a first speed calculator for calculating the speed of each of the vertices by comparing the converted positions of the respective vertices with the positions of the previous time steps.
제 2항에 있어서,
상기 제1 속도 필드 생성 모듈은,
상기 하나 이상의 정점의 속도를 무발산 속도 필드로 변환하는 속도 보정부를 더 포함하는 것을 특징으로 하는 유체 시뮬레이션 형상 제어 시스템.
The method of claim 2,
The first speed field generation module,
And a velocity correction unit for converting the velocity of the one or more vertices into a no-dissipation velocity field.
제 1항에 있어서,
상기 제2 속도 필드 생성 모듈은,
상기 하나 이상의 정점의 기준 좌표계상의 위치를 이전 시간 단계에서의 위치와 비교하여 상기 각 정점의 속도를 산출하는 제2 속도 산출부; 및
산출된 상기 각 정점의 속도를 상기 로컬 좌표계상의 속도로 변환하는 제2 변환부를 포함하는 것을 특징으로 하는 유체 시뮬레이션 형상 제어 시스템.
The method of claim 1,
The second speed field generation module,
A second speed calculator configured to calculate a speed of each of the vertices by comparing the position of the one or more vertices on a reference coordinate system with a position in a previous time step; And
And a second transform unit converting the calculated velocities of the vertices into velocities on the local coordinate system.
제 1항에 있어서,
상기 제1 속도 필드 및 상기 제2 속도 필드에 기초하여 하나 이상의 정점을 생성하는 파티클 모듈을 더 포함하는 것을 특징으로 하는 유체 시뮬레이션 형상 제어 시스템.
The method of claim 1,
And a particle module that generates one or more vertices based on the first velocity field and the second velocity field.
복수 개의 시간 단계별로 미리 설정된 형상 정보를 이용하여 로컬 좌표계 및 하나 이상의 정점을 생성하는 단계;
상기 하나 이상의 정점의 상기 로컬 좌표계상의 위치 변화를 이용하여 제1 속도 필드를 생성하는 단계;
기준 좌표계상의 상기 하나 이상의 정점의 위치 변화를 이용하여 상기 각 정점의 속도를 산출하고, 산출된 속도를 상기 로컬 좌표계로 투영하여 제2 속도 필드를 생성하는 단계; 및
상기 제1 속도 필드 및 상기 제2 속도 필드를 이용하여 상기 하나 이상의 정점의 위치를 각 시간 단계별로 산출하는 단계를 포함하는 것을 특징으로 하는 유체 시뮬레이션 형상 제어 방법.
Generating a local coordinate system and one or more vertices using shape information preset in a plurality of time steps;
Generating a first velocity field using a change in position of the one or more vertices on the local coordinate system;
Calculating a speed of each of the vertices using a change in position of the one or more vertices on a reference coordinate system, and generating a second velocity field by projecting the calculated speed into the local coordinate system; And
And calculating positions of the one or more vertices in each time step by using the first velocity field and the second velocity field.
제 6항에 있어서,
상기 제1 속도 필드를 생성하는 단계는,
상기 하나 이상의 정점의 기준 좌표계상의 위치를 로컬 좌표계상의 위치로 변환하는 단계; 및
변환된 상기 각 정점의 위치를 이전 시간 단계에서의 위치와 비교하여 상기 각 정점의 속도를 산출하는 단계를 포함하는 것을 특징으로 하는 유체 시뮬레이션 형상 제어 방법.
The method of claim 6,
Generating the first velocity field may include:
Converting a location on a reference coordinate system of the one or more vertices to a location on a local coordinate system; And
And calculating the velocity of each vertex by comparing the transformed position of each vertex with a position in a previous time step.
제 7항에 있어서,
상기 제1 속도 필드를 생성하는 단계는,
산출된 상기 각 정점의 속도를 이용하여 무발산 속도 필드를 생성하는 단계를 더 포함하는 것을 특징으로 하는 유체 시뮬레이션 형상 제어 방법.
The method of claim 7, wherein
Generating the first velocity field may include:
And generating a no-dissipation velocity field using the calculated velocities of the respective vertices.
제 6항에 있어서,
상기 제2 속도 필드를 생성하는 단계는,
상기 하나 이상의 정점의 위치를 이전 시간 단계에서의 위치와 비교하여 상기 각 정점의 속도를 산출하는 단계; 및
산출된 상기 각 정점의 속도를 상기 로컬 좌표계상의 속도로 변환하는 단계를 포함하는 것을 특징으로 하는 유체 시뮬레이션 형상 제어 방법.
The method of claim 6,
Generating the second velocity field may include:
Calculating the speed of each vertex by comparing the position of the one or more vertices with a position in a previous time step; And
And converting the calculated velocity of each vertex into a velocity on the local coordinate system.
제 6항에 있어서,
상기 제1 속도 필드 및 상기 제2 속도 필드에 기초하여 하나 이상의 정점을 생성하는 단계를 더 포함하는 것을 특징으로 하는 유체 시뮬레이션 형상 제어 방법.
The method of claim 6,
Generating one or more vertices based on the first velocity field and the second velocity field.
KR1020100007761A 2010-01-28 2010-01-28 System and method for shape controllable fluid simulation KR101110342B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100007761A KR101110342B1 (en) 2010-01-28 2010-01-28 System and method for shape controllable fluid simulation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100007761A KR101110342B1 (en) 2010-01-28 2010-01-28 System and method for shape controllable fluid simulation

Publications (2)

Publication Number Publication Date
KR20110088041A KR20110088041A (en) 2011-08-03
KR101110342B1 true KR101110342B1 (en) 2012-03-13

Family

ID=44926712

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100007761A KR101110342B1 (en) 2010-01-28 2010-01-28 System and method for shape controllable fluid simulation

Country Status (1)

Country Link
KR (1) KR101110342B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101358037B1 (en) * 2012-11-28 2014-02-05 한국과학기술정보연구원 Record medium recorded in a structure of file format and directory for massive cfd(computational fuid dynamics) data visualization in parallel, and method for transforming structure of data file format thereof
KR101626754B1 (en) * 2014-10-07 2016-06-02 한국과학기술정보연구원 System and method for visualization of time-varying data

Citations (2)

* Cited by examiner, † Cited by third party
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
KR100588000B1 (en) 2004-12-13 2006-06-08 한국전자통신연구원 Apparatus and method for capturing free surface of fluid in computer animation

Patent Citations (2)

* Cited by examiner, † Cited by third party
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
KR100588000B1 (en) 2004-12-13 2006-06-08 한국전자통신연구원 Apparatus and method for capturing free surface of fluid in computer animation

Also Published As

Publication number Publication date
KR20110088041A (en) 2011-08-03

Similar Documents

Publication Publication Date Title
Smith et al. Towards a generalised GPU/CPU shallow-flow modelling tool
Lacasta et al. An optimized GPU implementation of a 2D free surface simulation model on unstructured meshes
KR101244826B1 (en) System and method for fluid simulation using interaction between grid and particle
Luo et al. A reconstructed discontinuous Galerkin method for the compressible Navier–Stokes equations on arbitrary grids
US10311180B2 (en) System and method of recovering Lagrange multipliers in modal dynamic analysis
CN111768502A (en) Non-structural grid two-dimensional flood simulation system based on GPU acceleration technology
CN107330972B (en) Real-time soft tissue deformation method and system for simulating biomechanical characteristics
KR101214903B1 (en) System and method for fluid simulation using interaction between particles
Berger Cut cells: Meshes and solvers
Gatzhammer et al. A coupling environment for partitioned multiphysics simulations applied to fluid-structure interaction scenarios
Lesser et al. Loki: a unified multiphysics simulation framework for production
Chen et al. Improvements in the reliability and element quality of parallel tetrahedral mesh generation
Antonya et al. Design evaluation and modification of mechanical systems in virtual environments
KR101110342B1 (en) System and method for shape controllable fluid simulation
Arjmandi et al. Computing mode shapes of fluid-structure systems using subspace iteration methods
Brock et al. Adjoint-based design optimization using CAD parameterization through CAPRI
KR101170909B1 (en) System and method for fluid simulation using moving grid
Cetinaslan Position‐based simulation of elastic models on the GPU with energy aware gauss‐seidel algorithm
CN104992046A (en) Computing system and method of fluid mechanics
Va et al. Real-time volume preserving constraints for volumetric model on GPU
Junior et al. PolyMPS—An open source CFD solver based on Polygon walls in Moving Particle Semi-implicit (MPS) method
WO2011093541A1 (en) Fluid simulation shape control system and method
US10504269B2 (en) Inertial damping for enhanced simulation of elastic bodies
Johnson Paper IV-GPU-Accelerated Solver for Coupled Approaches to Navier-Stokes GASCANS
CN117724798A (en) Parameter determination method, device and equipment of three-dimensional finite difference forward modeling method

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: 20150116

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160111

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170110

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180111

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190110

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20200113

Year of fee payment: 9