KR102399671B1 - 객체들을 모델링하는 방법 및 장치 - Google Patents

객체들을 모델링하는 방법 및 장치 Download PDF

Info

Publication number
KR102399671B1
KR102399671B1 KR1020150059496A KR20150059496A KR102399671B1 KR 102399671 B1 KR102399671 B1 KR 102399671B1 KR 1020150059496 A KR1020150059496 A KR 1020150059496A KR 20150059496 A KR20150059496 A KR 20150059496A KR 102399671 B1 KR102399671 B1 KR 102399671B1
Authority
KR
South Korea
Prior art keywords
particles
modeling
grid
particle
fluid
Prior art date
Application number
KR1020150059496A
Other languages
English (en)
Other versions
KR20160024738A (ko
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 CN201510463552.0A priority Critical patent/CN105389855B/zh
Priority to JP2015153329A priority patent/JP6663183B2/ja
Priority to US14/825,755 priority patent/US9953109B2/en
Priority to EP15181926.5A priority patent/EP2990971A1/en
Publication of KR20160024738A publication Critical patent/KR20160024738A/ko
Application granted granted Critical
Publication of KR102399671B1 publication Critical patent/KR102399671B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T90/00Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)

Abstract

입자(particle)로 모델링 된 제1 객체와 입자로 모델링 된 제2 객체 간의 인접 영역을 검출하고, 인접 영역에 대하여 정의(define)한 격자(Grid)의 격자점들에 저장된 정보를 이용하여 인접 영역에서의 제1 객체와 제2 객체 간의 작용력을 산출하며, 작용력에 기초하여 제1 객체와 제2 객체를 모델링하는, 객체들을 모델링하는 방법을 제공할 수 있다.

Description

객체들을 모델링하는 방법 및 장치{METHOD AND APPARATUS FOR MODELING OBJECTS}
아래의 실시예들은 객체들을 모델링하는 방법 및 장치에 관한 것이다.
컴퓨터 그래픽스(Computer Graphics; CG) 분야, 특히 시각 효과(Visual Effects; VFX) 분야의 유체 시뮬레이션과 관련하여, 유체의 유동을 수치적으로 풀어내려는 연구가 계속 진행되고 있다. 내비어-스톡스 방정식(Navier-Stokes Equation)은 유체를 매우 작은 입자들(particles)의 합으로 보고, 각각의 입자들이 서로 어떻게 상호 작용하면서 움직이는지를 나타낸 것이다. 내비어-스톡스 방정식은 이상적인 상황을 가정하는 경우, 보다 간단한 베르누이 방정식(Bernoulli's principle)으로 바뀔 수 있다. 내비어-스톡스 방정식에 기반한 유체 모델링의 사실적 재현을 위해서는, 비압축성 조건(Incompressible condition)을 만족해야 한다.
또한, 변형체(Deformable Object)에 대한 시뮬레이션은 모델의 반응이 실시간으로 이루어지는 동시에, 눈으로 보기에 자연스러운 정도의 계산의 정확성이 보장되어야 한다. 이를 위하여 변형체의 물리적 특성, 경계 조건, 외부에서 작용하는 힘 등을 고려한 모델이 주로 이용되고 있다.
컴퓨터 그래픽스 분야에서 유체에 대한 시뮬레이션 및 변형체에 대한 시뮬레이션이 각각 개별적으로 이루어지지만, 유체 및 변형체가 혼재되어 서로에게 영향을 미치는 환경이 일반적이다.
일 실시예에 따르면, 객체들을 모델링하는 방법은, 입자(particle)로 모델링 된 제1 객체와 입자로 모델링 된 제2 객체 간의 인접 영역을 검출하는 단계; 상기 인접 영역에 대하여 격자(Grid)를 정의(define)하는 단계; 상기 격자의 격자점들에 저장된 정보를 이용하여 상기 인접 영역에서의 상기 제1 객체와 상기 제2 객체 간의 작용력을 산출하는 단계; 및 상기 작용력에 기초하여 상기 제1 객체와 상기 제2 객체를 모델링하는 단계를 포함할 수 있다.
상기 격자를 정의하는 단계는, 상기 인접 영역에서 상기 제1 객체 또는 상기 제2 객체의 윤곽과 상기 윤곽에 인접한 상기 격자의 격자점들과의 거리값을 추출하는 단계; 및 상기 추출된 거리값을 상기 격자점들에 저장하는 단계를 포함할 수 있다.
상기 작용력을 산출하는 단계는, 상기 인접 영역에서 상기 제1 객체의 입자들과 상기 제2 객체의 입자들 간에 충돌이 발생했는지 여부를 판단하는 단계; 및 상기 판단 결과에 기초하여, 상기 제1 객체의 입자들과 상기 제2 객체의 입자들 간의 작용력을 산출하는 단계를 포함할 수 있다.
상기 충돌이 발생했는지 여부를 판단하는 단계는, 상기 제1 객체의 입자들의 위치에 인접한 격자점들에 저장된 거리값을 이용하여 상기 충돌이 발생했는지 여부를 판단하는 단계를 포함할 수 있다.
상기 충돌이 발생했는지 여부를 판단하는 단계는, 상기 제1 객체의 입자들이 부피 보존 조건을 만족하는지 여부를 더 고려할 수 있다.
상기 작용력을 산출하는 단계는, 상기 충돌이 발생했다고 판단되는 경우, 상기 인접 영역에서 상기 제1 객체의 입자들과 상기 제2 객체의 입자들 중 충돌이 발생한 제1 객체의 입자를 검출하는 단계; 상기 검출된 제1 객체의 입자의 위치를 재정의하는 단계; 및 상기 제1 객체의 입자의 재정의된 위치에 기초하여, 상기 충돌로 인하여 상기 제2 객체에 미치는 작용력을 산출하는 단계를 포함할 수 있다.
상기 검출된 제1 객체의 입자의 위치를 재정의하는 단계는, 상기 검출된 제1 객체의 입자의 위치를 상기 제2 객체를 관통(penetrate)하지 않는 위치로 재정의하는 단계를 포함할 수 있다.
상기 검출된 제1 객체의 입자의 위치를 재정의하는 단계는, 상기 검출된 제1 객체의 입자를 포함하는 셀에 해당하는 격자점들에 저장된 거리값들 및 경사도(gradient)를 이용하여, 상기 제2 객체를 관통(penetrate)하지 않는 상기 제1 객체의 입자의 이동 방향 및 최단 이동 거리를 산출하는 단계; 및 상기 산출된 이동 방향 및 최단 이동 거리에 따라 상기 제1 객체의 입자의 위치를 이동시키는 단계를 포함할 수 있다.
상기 격자점들에 저장된 거리값들 및 상기 산출된 최단 이동 거리를 이용하여 상기 제1 객체의 입자의 이동 속도를 산출하는 단계; 및 상기 산출된 이동 속도를 상기 검출된 제1 객체의 입자를 포함하는 셀에 해당하는 격자점들에 저장하는 단계를 더 포함할 수 있다.
상기 충돌로 인하여 상기 제2 객체에 미치는 작용력을 산출하는 단계는, 상기 제1 객체의 입자의 재정의된 위치에서 상기 제1 객체의 입자가 상기 제2 객체로부터 받는 것으로 추정되는 힘(force)을 산출하는 단계; 및 상기 추정되는 힘에 기초하여 상기 충돌로 인하여 상기 제2 객체에 미치는 작용력을 산출하는 단계를 포함할 수 있다.
상기 산출된 작용력을, 상기 제1 객체의 입자의 재정의된 위치에 해당하는 격자의 격자점들에 저장하는 단계를 더 포함할 수 있다.
상기 제1 객체와 상기 제2 객체는 서로 동종 또는 이종일 수 있다.
상기 제1 객체는 유체이고, 상기 제2 객체는 변형체일 수 있다.
일실시예에 따르면, 객체들을 모델링하는 장치는 입자(particle)로 모델링 된 제1 객체와 입자로 모델링 된 제2 객체 간의 인접 영역을 검출하고, 상기 인접 영역에 대하여 격자(Grid)를 정의하는 격자 변환 모듈; 상기 격자의 격자점에 저장된 정보를 이용하여 상기 인접 영역에서의 상기 제1 객체와 상기 제2 객체 간의 작용력을 산출하고, 상기 작용력에 기초하여 상기 제1 객체와 상기 제2 객체를 모델링하는 객체 모델링 모듈; 및 상기 격자 변환 모듈 및 상기 객체 모델링 모듈을 제어하는 프로세서를 포함할 수 있다.
상기 격자 변환 모듈은, 상기 인접 영역에서 상기 제1 객체 또는 상기 제2 객체의 윤곽과 상기 윤곽에 인접한 상기 격자의 격자점들과의 거리값을 추출하고, 상기 추출된 거리값을 상기 격자의 격자점들에 저장할 수 있다.
상기 객체 모델링 모듈은, 상기 인접 영역에서 상기 제1 객체의 입자들과 상기 제2 객체의 입자들 간에 충돌이 발생했는지 여부를 판단하는 판단부, 상기 판단 결과에 기초하여, 상기 인접 영역에서 상기 제1 객체의 입자들과 상기 제2 객체의 입자들 중 충돌이 발생한 제1 객체의 입자를 검출하는 검출부; 상기 검출된 제1 객체의 입자의 위치를 재정의하는 재정의부; 및 상기 제1 객체의 입자의 재정의된 위치에 기초하여, 상기 충돌로 인하여 상기 제2 객체에 미치는 작용력을 산출하는 산출부를 포함할 수 있다.
상기 재정의부는, 상기 검출된 제1 객체의 입자를 포함하는 셀에 해당하는 격자점들에 저장된 거리값들 및 경사도(gradient)를 이용하여, 상기 제2 객체를 관통(penetrate)하지 않는 상기 제1 객체의 입자의 이동 방향 및 최단 이동 거리를 산출하고, 상기 산출된 이동 방향 및 최단 이동 거리에 따라 상기 제1 객체의 입자의 위치를 이동시킬 수 있다.
상기 산출부는, 상기 제1 객체의 입자의 재정의된 위치에서 상기 제1 객체의 입자가 상기 제2 객체로부터 받는 것으로 추정되는 힘(force)을 산출하고, 상기 추정되는 힘에 기초하여 상기 충돌로 인하여 상기 제2 객체에 미치는 작용력을 산출하며, 상기 산출된 작용력을, 상기 충돌이 발생한 제1 객체의 입자를 포함하는 셀에 해당하는 격자의 격자점들에 저장할 수 있다.
일실시예에 따르면, 객체들을 모델링하는 장치는, 상기 모델링하는 장치의 동작을 제어하는 프로그램을 기록하는 메모리; 및 상기 프로그램을 구동시키는 하나 이상의 프로세서를 포함하고, 상기 프로그램은, 입자(particle)로 모델링 된 제1 객체와 입자로 모델링 된 제2 객체 간의 인접 영역을 검출하고, 상기 인접 영역에 대하여 복수의 셀들을 포함하는 격자(Grid)를 정의(define)하며, 상기 격자의 격자점에 저장된 정보를 이용하여 상기 인접 영역에서의 산출한 상기 제1 객체와 상기 제2 객체 간의 작용력에 기초하여 상기 제1 객체와 상기 제2 객체를 모델링할 수 있다.
도 1은 일실시예에 따른 객체들을 모델링하는 방법이 사용되는 인접 영역을 나타낸 도면이다.
도 2는 일실시예에 따른 객체들을 모델링하는 방법을 나타낸 플로우 차트이다.
도 3은 일실시예에 따른 객체들을 모델링하는 방법에 따라 인접 영역에 대하여 격자(Grid)를 정의(define)하는 방법을 설명하기 위한 도면이다.
도 4는 일실시예에 따른 객체들을 모델링하는 방법에 따라 제1 객체와 제2 객체 간의 작용력을 산출하는 방법을 나타낸 플로우 차트이다.
도 5는 일실시예에 따른 객체들을 모델링하는 방법에 따라 제1 객체와 제2 객체 간의 작용력을 산출하는 방법을 설명하기 위한 도면이다.
도 6은 일실시예에 따른 객체들을 모델링하는 장치의 블록도이다.
도 7은 다른 실시예에 따른 모델링 장치의 블록도이다.
도 8은 다른 실시예에 따라 객체들을 모델링하는 방법을 나타낸 도면이다.
도 9는 다른 실시예에 따른 모델링 장치에서 인접 영역 및 작용력을 처리하는 과정을 각 모듈의 동작 순서에 따라 나타낸 도면이다.
도 10은 다른 실시예에 따른 모델링 장치에서 격자 모듈(Grid Module)의 중계를 통해 유체와 변형체 간의 상호 작용을 처리하는 과정을 설명하기 위한 도면이다.
도 11은 다른 실시예에 따른 모델링 장치의 동작 방법을 나타낸 플로우 차트이다.
도 12는 다른 실시예에 따른 모델링 장치에서 유체 모델링 모듈의 동작 방법을 나타낸 플로우 차트이다.
도 13은 다른 실시예에 따른 모델링 장치에서 변형체 모델링 모듈의 동작 방법을 나타낸 플로우 차트이다.
도 14는 다른 실시예에 따른 모델링 장치에서 격자 모듈의 동작 방법을 나타낸 플로우 차트이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일실시예에 따른 객체들을 모델링하는 방법이 사용되는 인접 영역을 나타낸 도면이다.
도 1을 참조하면, 물 또는 기름과 같은 유체(130)에 떠 있는 변형체(예를 들어, 오리 인형)(110)가 도시된다. 이때, 변형체(110)와 유체(130)는 각각 입자들에 의해 모델링될 수 있으며, 이하에서 변형체(110)는 변형체 입자를, 유체(130)는 유체 입자를 포함하는 의미로 사용될 수 있다. '변형체(Deformable Object)(110)'는 강체(Rigid body) 및 연체(Soft Body)를 모두 포함하는 의미로 이해될 수 있다. 또한, 변형체(110)와 유체(130)의 윤곽을 포함하는 일정 영역을 '인접 영역' 또는 '상호 작용 영역'이라고 부르기로 한다.
일실시예에서는 변형체(110)와 유체(130)가 함께 존재하는 경우에 인접 영역에 대하여 격자(Grid)(150)를 정의(define)하고, 격자(150)를 기반으로 물리 법칙을 적용함으로써 변형체(110)와 유체(130) 간의 상호 작용이 정밀하게 반영되도록 할 수 있다. 격자(150)는 일정한 연결 관계를 가진 메시(Mesh) 형태의 자료 구조일 수 있으며, 변형체(110)와 유체(130)가 상호 간의 물리량을 주고 받는 통로일 수 있다. 격자(150)는 복수 개의 셀(151)들을 포함할 수 있으며, 격자(150)의 격자점들에는 변형체(110)의 레벨 셋(Level set) 정보가 스칼라(Scalar) 값으로 저장될 수 있다. 레벨 셋 정보는 격자(150)에서 부호가 있는 거리값으로 격자(150) 내에서의 변형체(110)의 위치를 나타내는 데에 이용될 수 있다. 레벨 셋 정보는 변형체(110)의 윤곽을 기준으로 변형체(110)의 격자점이 외부에 있는지 아니면 내부에 있는지를 나타낼 수 있다.
예를 들어, 변형체(110)와 유체(130)가 서로 충돌하는 경우, 변형체(110)는 유체(130)와의 충돌에 의해 모양이 찌그러지거나 속도가 줄어들 수 있고, 유체(130)에는 물보라가 발생할 수 있다. 이때, 유체(130)는 변형체(110)가 차지하는 공간을 비켜서 유동하게 된다. 격자(150)는 변형체(110)와 유체(130)의 충돌 영역, 유체(130)에서 물보라가 발생할 만한 영역, 및 변형체(110)가 찌그러져서 공간에서 새로이 차지하는 영역 등과 같이 변형체(110)와 유체(130) 간의 상호 작용이 발생하는 영역을 모두 포함할 수 있다. 이상에서 설명한 상호 작용은 유체와 변형체와 같이 이종(heterogeneous) 객체뿐만 아니라, 물과 기름과 같은 동종(homogeneous) 객체에도 동일하게 적용될 수 있다. 일실시예에서는 입자 기반으로 모델링된 객체들 간의 윤곽을 포함하는 인접 영역에 대하여 격자(150)를 이용하여 작용력을 산출함으로써 상호 작용에 의한 운동량이 정밀하게 보존되도록 할 수 있다.
도 2는 일실시예에 따른 객체들을 모델링하는 방법을 나타낸 플로우 차트이다.
도 2를 참조하면, 일실시예에 따른 객체들을 모델링하는 장치(이하, 모델링 장치)는 입자로 모델링 된 제1 객체와 입자로 모델링 된 제2 객체 간의 인접 영역을 검출할 수 있다(210). 입자 기반으로 객체를 모델링하는 경우, 모델링 장치는 어느 하나의 입자의 주변 입자들을 검색할 수 있다. 검색된 주변 입자들이 서로 다른 물리량을 가지는 서로 다른 객체에 해당하는 경우, 모델링 장치는 어느 하나의 입자 및 서로 다른 객체라고 판단된 입자를 포함하는 영역을 인접 영역으로 정의할 수 있다. 모델링 장치는 인접 영역을 검출할 수 있다.
모델링 장치는 단계(210)에서 검출된 인접 영역에 대하여 격자(Grid)를 정의(define)할 수 있다(220). 예를 들어, 검출된 인접 영역에 포함된 객체 입자들은 복수의 셀들을 포함하는 격자로 나누어 질 수 있다. 단계(220)에서, 모델링 장치는 인접 영역에서 제1 객체 또는 제2 객체의 윤곽과, 윤곽에 인접한 격자의 격자점들과의 수직 거리(값)을 추출할 수 있다. 모델링 장치는 추출된 거리값을 격자점에 저장할 수 있다. 격자점에 저장된 거리값을 레벨 셋(level set) 정보라고도 부를 수 있다. 일실시예에서 격자를 정의하는 구체적인 방법은 도 3을 참조하여 설명한다.
모델링 장치는 격자의 격자점들에 저장된 정보를 이용하여 인접 영역에서의 제1 객체와 제2 객체 간의 작용력을 산출할 수 있다(230). 단계(230)에서, 모델링 장치는 인접 영역에서 격자의 셀 단위로 제1 객체의 입자들과 제2 객체의 입자들 간에 충돌이 발생했는지 여부를 판단할 수 있다. 모델링 장치는 판단 결과에 기초하여, 제1 객체의 입자들과 제2 객체의 입자들 간의 작용력을 산출할 수 있다. 여기서, 제1 객체는 유체이고, 제2 객체는 변형체일 수 있다. 또한, 제1 객체와 제2 객체는 서로 동종일 수도 있고, 이종일 수도 있다. 일실시예에서 제1 객체와 제2 객체 간의 작용력을 산출하는 구체적인 방법은 도 4 및 도 5를 참조하여 설명한다.
모델링 장치는 단계(230)에서 산출한 작용력에 기초하여 제1 객체와 제2 객체를 모델링할 수 있다(240). 단계(240)에서, 모델링 장치는 단계(230)에서 산출한 작용력을 이용하여 입자로 모델링된 제1 객체 및 제2 객체의 형상 또는 움직임을 보다 정밀하게 보정할 수 있다.
도 3은 일실시예에 따른 객체들을 모델링하는 방법에 따라 인접 영역에 대하여 격자를 정의하는 방법을 설명하기 위한 도면이다.
입자로 모델링 된 변형체(301)와 입자로 모델링 된 유체(303) 간의 인접 영역(305)을 검출(310)한 후, 모델링 장치는 검출된 인접 영역(305)에 대하여 격자(307)를 정의하거나 격자 구조로 나타내는 격자화를 수행할 수 있다(330). 격자화에 의해, 예를 들어, 2D의 경우, 하나의 셀에는 4개의 입자들이 포함될 수 있고, 3D의 경우에는 하나의 셀에 8개의 입자들이 포함될 수 있다.
격자(307)의 격자점들(309)에는 각 격자점에서 가장 가까운 변형체(301)의 윤곽까지의 거리값인 레벨 셋 정보가 저장될 수 있다. 예를 들어, 격자점(311)에는 변형체(301)의 윤곽에서 격자점(311)까지의 수직 거리값인 d1이 저장되고, 격자점(313)에는 변형체(301)의 윤곽에서 격자점(313)까지의 수직 거리값인 d2가 저장될 수 있다. 격자점들(309)에 저장된 거리값이 +인 경우는 해당 격자점이 변형체(301)의 외부에 있음을 나타내고, 저장된 거리값이 - 인 경우에는 해당 격자점이 변형체(301)의 내부에 있음을 나타낼 수 있다. 모델링 방법에 따라 + 와 - 는 반대로 정의될 수도 있다. 모델링 장치는 레벨 셋 정보를 기반으로 경사도(gradient)를 계산하여 필요에 따라 레벨 셋 정보를 기하학적 정규화(Geometric Normal) 정보로 변환할 수 있다.
격자(307)의 각 격자점(309)에는 레벨 셋 정보와는 별도로, 유체(303) 입자가 변형체(301)로부터 받은 작용력이 선형 보간(linear Interpolation)을 통해 계산되어 저장될 수 있다. 저장된 작용력은 추후에 변형체(301)의 입자들을 모델링하는 데에 이용될 수 있다. 또한, 각 격자점(309)에는 유체(303) 입자들의 속도값이 저장될 수 있고, 저장된 속도값은 유체(303) 입자들 받는 항력(Drag Force)을 계산하는 데에 이용할 수 있다.
도 3을 통해 설명한 과정을 통해 모델링 장치는 격자점이 객체의 윤곽에서 얼마만큼 떨어져 있으며, 윤곽의 내부 또는 외부에 있는지 여부를 알 수 있다.
도 4는 일실시예에 따른 객체들을 모델링하는 방법에 따라 제1 객체와 제2 객체 간의 작용력을 산출하는 방법을 나타낸 플로우 차트이다.
도 4를 참조하면, 일실시예에 따른 모델링 장치는 인접 영역에서 제1 객체의 입자들과 제2 객체의 입자들 간에 충돌이 발생했는지 여부를 판단할 수 있다(410). 단계(410)에서, 모델링 장치는 제1 객체의 입자들의 위치에 인접한 격자점들에 저장된 거리값을 이용하여 충돌이 발생했는지 여부를 판단할 수 있다. 이때, 모델링 장치는 격자의 셀 단위로 충돌이 발생했는지 여부를 판단할 수 있다.예를 들어, 제1 객체(유체)의 입자와 제2 객체(변형체)의 입자가 동일한 위치에 오버랩핑(overlapping)된 상태, 다시 말해, 유체 입자가 변형체 입자를 관통하는 위치에 있으면 입자들간에 충돌이 발생했다고 판단할 수 있다.
또한, 단계(410)에서, 모델링 장치는 제1 객체의 입자들이 부피 보존 조건을 만족하는지 여부를 더 고려할 수 있다.예를 들어, 제1 객체가 유체이고, 제2 객체가 변형체라고 하면, 충돌에 의해 제1 객체와 제2 객체 간에 변화가 발생하더라도 제1 객체인 유체의 전체적인 부피는 보존되어야 한다. 따라서, 일실시예에서는 충돌 시에 격자점에 저장된 거리값 이외에도 유체의 전체적인 부피가 충돌 이전과 동일하게 유지되는지를 함께 고려할 수 있다.
단계(410)에서, 충돌이 발생하지 않았다고 판단되는 경우, 모델링 장치는 충돌 처리를 위한 420 내지 440 단계의 수행을 스킵(skip)할 수 있다.
단계(410)에서, 충돌이 발생했다고 판단되는 경우, 모델링 장치는 인접 영역에서 제1 객체의 입자들과 제2 객체의 입자들 중 충돌이 발생한 제1 객체의 입자를 검출할 수 있다(420). 이때, 충돌이 발생한 제1 객체의 입자는 단수 또는 복수 개일 수 있다. 모델링 장치는 단계(420)에서 검출된 제1 객체의 입자의 위치를 재정의(redefine)할 수 있다(430). 모델링 장치는 검출된 제1 객체의 입자의 위치를 제2 객체(의 입자)를 관통하지 않는 위치로 재정의할 수 있다. 예를 들어, 제1 객체가 유체이고, 제2 객체가 변형체라면, 이들의 충돌 시에 유체 입자는 변형체 (입자)를 관통하지 않고, 피하여 유동해야 한다. 따라서, 모델링 장치는 유체 입자와 변형체 입자 간에 충돌이 발생한 경우, 유체 입자가 변형체 입자를 관통하지 않는 위치에 있도록 모델링할 수 있다.
단계(430)에서, 모델링 장치는 단계(420)에서 검출된 제1 객체의 입자를 포함하는 셀에 해당하는 격자점들에 저장된 거리값들 및 경사도를 이용하여, 제2 객체를 관통하지 않는 제1 객체의 입자의 이동 방향 및 최단 이동 거리를 산출할 수 있다. 모델링 장치는 산출된 이동 방향 및 최단 이동 거리에 따라 제1 객체의 입자의 위치를 이동시킬 수 있다. 이때, 모델링 장치는 격자점들에 저장된 거리값들 및 산출된 최단 이동 거리를 이용하여 제1 객체의 입자의 이동 속도를 산출하고, 산출된 이동 속도를 검출된 제1 객체의 입자를 포함하는 셀에 해당하는 격자점들에 저장할 수 있다.
모델링 장치는 제1 객체의 입자의 재정의된 위치에 기초하여, 충돌로 인하여 제2 객체에 미치는 작용력을 산출할 수 있다(440). 단계(440)에서, 모델링 장치는 제1 객체의 입자의 재정의된 위치에서 제1 객체의 입자가 제2 객체로부터 받는 것으로 추정되는 힘을 산출하고, 추정되는 힘에 기초하여 충돌로 인하여 제2 객체에 미치는 작용력을 산출할 수 있다. 모델링 장치는 산출된 작용력을, 제1 객체의 입자의 재정의된 위치에 해당하는 격자의 격자점들에 나누어 저장할 수 있다.
도 5는 일실시예에 따른 객체들을 모델링하는 방법에 따라 제1 객체와 제2 객체 간의 작용력을 산출하는 방법을 설명하기 위한 도면이다.
도 5에서 510의 각 격자점에는 + 또는 - 와 같은 부호가 표시된 것을 볼 수 있다. 모델링 장치는 격자점에 저장된 값을 보간(Interpolation)해서 제1 객체의 입자, 다시 말해, 유체 입자의 위치에서 변형체 윤곽까지의 거리 값을 계산(Estimate)한다. 계산된 값의 부호가 -는 충돌 상태를 나타내고 +는 충돌이 발생하지 않은 상태를 나타낸다. 이와 같이, 격자점에 저장되어 있는 거리값이 유체 입자의 위치에서 어떤 값을 가지는지 보간을 통해 계산하는 과정을 해내는 과정을 '격자값 쿼리(query)'라고 부를 수 있다.
모델링 장치는 각 격자점에 저장된 부호 값에 의해 제1 객체(예를 들어, 유체)와 제2 객체(예를 들어, 변형체) 간의 충돌이 발생했는지를 판단할 수 있다. 모델링 장치는 각 유체 입자의 위치에서 주변의 4개의 격자점들에 저장된 거리 값들을 샘플링할 수 있다. 모델링 장치는 각 유체 입자의 주변에 있는 격자점들에 저장된 값을 선형 보간하여 유체 입자와 변형체 윤곽의 입자와의 거리를 파악할 수 있다. 이때, 샘플링된 거리 값이 예를 들어, + 0.5 ㎚라고 가정하면, 이는 유체 입자의 중심이 변형체의 윤곽에서 0.5㎚ 떨어져 있음을 의미한다.만약 유체 입자의 반지름이 0.5㎚ 라면, 유체 입자는 변형체 윤곽과 맞닿아 있는 상태이고, 유체 입자의 반지름이 1.0㎚ 라면, 유체 입자는 변형체와 충돌한 상태, 다시 말해 유체 입자가 변형체 입자를 관통하는 위치에 있을 수 있다. 이러한 경우, 모델링 장치는 해당 유체 입자의 위치를 변형체 입자를 관통하지 않는 위치로 재정의하여 유체 입자의 충돌을 처리할 수 있다.
예를 들어, 변형체 입자와 유체 입자의 충돌에 의해 530와 같이 유체 입자가 변형체의 내부에 해당하는 제1 위치(531)에 있음을 검출한 경우, 모델링 장치는 유체 입자를 제1 위치(531)에서 변형체 입자를 관통하지 않는 제2 위치(533)로 이동시킬 수 있다. 이때, 모델링 장치는 입자를 포함하는 셀에 해당하는 격자점들에 저장된 거리값들 및 경사도를 이용하여, 변형체 입자를 관통하지 않는 유체 입자의 이동 방향 및 최단 이동 거리를 산출할 수 있다.
모델링 장치는 산출된 이동 방향 및 최단 이동 거리에 따라 유체 입자를 충돌이 발생하지 않는 위치로 이동시킬 수 있다. 모델링 장치는 예를 들어, 유체 입자를 포함하는 셀에 해당하는 격자점들에 저장된 거리값이 - 에서 +가 되는 경사 방향으로(여기서는 수평 방향으로 오른쪽에서 왼쪽 방향으로, 수직 방향으로 위에서 아래 방향으로) 최단 거리를 이동시켜 유체 입자와 변형체 입자 간에 충돌이 발생하지 않도록 할 수 있다.
모델링 장치는 유체 입자가 받는 충격량에 대칭되는 힘을 변형체에 전달함으로써 변형체와 유체 간의 충돌로 인해 유체 입자가 받은 것으로 추정되는 힘을 변형체에 대한 반작용력으로 반영할 수 있다. 550에서 유체 입자가 533의 위치로 이동된 경우, 유체 입자가 받은 것으로 추정되는 힘은 작용-반작용의 법칙에 의해 551과 같이 변형체에서 대칭되는 방향으로 동일한 크기로 작용할 수 있다. 이때, 유체 입자가 받는 것으로 추정되는 힘은 유체 입자의 초기 위치와 나중 위치, 이동 속도 등을 아는 경우, 일반적인 물리 공식들을 이용하여 산출할 수 있다.
변형체에 작용하는 반작용력에 의해 유체 입자 위에 변형체가 뜨도록 모델링될 수 있다. 모델링 장치는 변형체에 미치는 작용력을 유체 입자의 재정의된 위치(533)에 해당하는 셀의 격자점들에 저장할 수 있다. 이때, 변형체에 미치는 작용력은 격자점으로부터 해당 유체 입자까지의 거리에 따라 각 격자점에 다르게 저장될 수 있다. 예를 들어, 격자점(573)과 같이 해당 격자점으로부터 유체 입자까지의 거리가 먼 경우에는 가장 작은 값이 할당되고, 격자점(572)와 같이 해당 격자점으로부터 유체 입자까지의 거리가 가까운 경우에는 가장 큰 값이 할당될 수 있다. 또한, 격자점(571)과 격자점(574)에는 격자점(573)보다는 크고, 격자점(572)보다는 작은 값이 할당될 수 있다. 각 격자점에 할당되는 작용력은 화살표의 길이 또는 크기로 표현될 수 있다. 가장 큰 작용력이 작용하는 격자점(572)에서는 화살표의 길이 또는 크기가 크게 표현되고, 가장 작은 작용력이 작용하는 격자점(573)에서는 화살표의 길치 또는 크기가 작게 표현될 수 있다.
모델링 장치는 상술한 방식으로 변형체에 미치는 작용력을 해당 유체 입자를 포함하는 셀의 격자점들에 나누어 저장될 수 있다. 상술한 510 및 530의 과정을 통해 모델링 장치는 유체와 변형체 간의 외견 상의 충돌을 모델링할 수 있고, 550 과정을 통해 유체와 변형체 상호 간에 작용하는 작용력을 모델링할 수 있다.
도 6은 일실시예에 따른 객체들을 모델링하는 장치의 블록도이다.
도 6을 참조하면, 일실시예에 따른 모델링 장치(600)는 격자 변환 모듈(610), 객체 모델링 모듈(630) 및 프로세서(650)를 포함할 수 있다.
격자 변환 모듈(610)은 입자로 모델링 된 제1 객체와 입자로 모델링 된 제2 객체 간의 인접 영역을 검출하고, 인접 영역에 대하여 격자(Grid)를 정의할 수 있다. 격자 변환 모듈(610)은 인접 영역에서 제1 객체 또는 제2 객체의 윤곽과 윤곽에 인접한 격자의 격자점들과의 거리값을 추출하고, 추출된 거리값을 격자의 격자점들에 저장할 수 있다.
객체 모델링 모듈(630)은 격자의 격자점에 저장된 정보를 이용하여 인접 영역에서의 제1 객체와 제2 객체 간의 작용력을 산출하고, 작용력에 기초하여 제1 객체와 제2 객체를 모델링할 수 있다. 객체 모델링 모듈(630)은 판단부(631), 검출부(633), 재정의부(635) 및 산출부(637)를 포함할 수 있다. 판단부(631)는 인접 영역에서 제1 객체의 입자들과 제2 객체의 입자들 간에 충돌이 발생했는지 여부를 판단할 수 있다. 검출부(633)는 판단부(631)의 판단 결과에 기초하여, 인접 영역에서 제1 객체의 입자들과 제2 객체의 입자들 중 충돌이 발생한 제1 객체의 입자를 검출할 수 있다. 재정의부(635)는 검출부(633)에 의해 검출된 제1 객체의 입자의 위치를 재정의할 수 있다. 재정의부(635)는 검출된 제1 객체의 입자를 포함하는 셀에 해당하는 격자점들에 저장된 거리값들 및 경사도를 이용하여, 제2 객체를 관통하지 않는 제1 객체의 입자의 이동 방향 및 최단 이동 거리를 산출할 수 있다. 재정의부(635)는 산출된 이동 방향 및 최단 이동 거리에 따라 제1 객체의 입자의 위치를 이동시킬 수 있다.
산출부(637)는 제1 객체의 입자의 재정의된 위치에 기초하여, 충돌로 인하여 제1 객체가 제2 객체에 미치는 작용력을 산출할 수 있다. 산출부(637)는 제1 객체의 입자의 재정의된 위치에서 제1 객체의 입자가 제2 객체로부터 받는 것으로 추정되는 힘을 산출하고, 추정되는 힘에 기초하여 충돌로 인하여 제2 객체에 미치는 작용력을 산출할 수 있다. 산출부(637)는 산출된 작용력을, 충돌이 발생한 제1 객체의 입자를 포함하는 셀에 해당하는 격자의 격자점들에 저장할 수 있다.
프로세서(650)는 격자 변환 모듈(610) 및 객체 모델링 모듈(630)을 제어할 수 있다. 실시예에 따라서, 객체 모델링 모듈(630)은 변형체를 모듈링하는 모듈과 유체를 모듈링하는 모듈로 각각 나누어 구성될 수도 있으며, 이러한 실시예는 도 9를 참조하여 설명한다.
도 7은 다른 실시예에 따른 모델링 장치의 블록도이다.
도 7을 참조하면, 다른 실시예에 따른 모델링 장치(700)는 메모리(710), 프로세서(730) 및 통신부(750)를 포함할 수 있다.
메모리(710)는 입자로 모델링 된 객체들을 모델링하는 장치(700)의 동작을 제어하는 프로그램을 기록할 수 있다.
프로세서(730)는 메모리(710)에 저장된 프로그램을 구동시킬 수 있으며, 하나 또는 복수 개일 수 있다. 이때, 프로그램은 입자로 모델링 된 제1 객체와 입자로 모델링 된 제2 객체 간의 인접 영역을 검출하고, 인접 영역에 대하여 복수의 셀들을 포함하는 격자를 정의할 수 있다. 프로그램은 격자의 격자점에 저장된 정보를 이용하여 인접 영역에서의 산출한 제1 객체와 제2 객체 간의 작용력에 기초하여 제1 객체와 제2 객체를 모델링할 수 있다.
통신부(750)는 입자로 모델링 된 객체들을 모델링하는 장치(700)의 동작에 필요한 정보들을 송, 수신할 수 있다.
도 8은 다른 실시예에 따라 객체들을 모델링하는 방법을 나타낸 도면이다.
도 8을 참조하면, 유체와 변형체의 입자가 분포된 경우, 유체와 변형체 간의 상호 작용 영역에 대한 연산을 통해 상호 작용된 입자 분포를 결과로 얻는 과정이 도시된다. 상호 작용 영역에 대한 연산은 다음과 같은 과정을 통해 수행될 수 있다.
모델링 장치는 유체와 변형체 간의 인접 영역을 검출하고(810), 인접 영역에 대하여 격자를 정의할 수 있다(830). 모델링 장치는 격자의 격자점들에 저장된 정보를 이용하여 인접 영역에서의 유체와 변형체 간의 상호 작용력을 처리할 수 있다(850).
일실시예에서 유체와 변형체 간의 상호 작용력을 처리하는 과정은 다음과 같다.모델링 장치는 제1 객체의 입자와 제2 객체의 입자 간에 충돌이 발생한 경우, 예를 들어, 도 5의 510 및 530을 통해 설명한 것과 같은 방식으로 제1 객체의 입자를 제2 객체를 서로 관통하지 않는 위치로 이동시킴으로써 충돌을 처리할 수 있다(851). 모델링 장치는 유체에 작용하는 작용력을 처리하고(853), 유체에 대한 처리 결과를 이용하여 변형체에 작용하는 작용력을 처리할 수 있다(855). 모델링 장치는 유체에 작용하는 작용력을 유체 모델링 모듈을 이용하여 처리하고, 변형체에 작용하는 작용력을 변형체 모델링 모듈을 이용하여 처리할 수 있다.
도 9는 다른 실시예에 따른 모델링 장치에서 인접 영역 및 및 작용력을 처리하는 과정을 각 모듈의 동작 순서에 따라 나타낸 도면이다.
도 9를 참조하면, 다른 실시예에 따른 모델링 장치는 타입 스텝 선택부(910), 격자 모듈(Grid Module)(920), 변형체 모델링 모듈(Deformable Object Modeling Module)(930), 및 유체 모델링 모듈(Fluid Modeling Module)(940)을 포함할 수 있다.
타입 스텝 선택부(910)는 유체 입자들과 변형체 입자들 간의 상호 작용을 모델링하는 타임 스텝(time step)을 선택할 수 있다. 예를 들어, 모델링이 수행되는 1 주기를 1초라고 가정하면, 모델링 장치는 1초 동안의 변형체 및 유체 간의 상호 작용을 한번에 모델링 하는 것이 아니라, 0.5 초 혹은 0.3초 단위와 같이 점진적으로 모델링할 수 있다. 여기서, 타임 스텝은 1 주기를 0.5 초 혹은 0.3초 단위와 같이 몇 번의 스텝으로 나눌 것인가를 결정하는 과정일 수 있다. 타임 스텝은 타입 스텝 선택부(910) 혹은 모델링 장치의 사용자에 의해 적절한 값으로 선택될 수 있다.
또한, 타입 스텝 선택부(910)는 변형체 모델링 모듈(930) 및 유체 모델링 모듈(940)에 대해 각각 개별적으로 타임 스텝을 설정할 수 있다. 모델링 장치는 타입 스텝 선택부(910)를 통해 어느 시간에서의 유체 입자들 또는 변형체 입자들의 움직임을 모델링 할 것인지를 선택할 수 있다.
격자 모듈(920)은 타입 스텝 선택부(910)에서 선택된 타입 스텝에 따라 유체 모델링 모듈(940)로부터 정보를 수신할 수 있다. 이때, 격자 모듈(920)이 유체 모델링 모듈(940)로부터 수신하는 정보는 예를 들어, 유체 입자들이 받는 작용력 및 유체 입자들의 최종 속도 등을 포함할 수 있다. 여기서, 유체 입자들이 받는 작용력은 제약력(Constrained Force)으로도 표현할 수 있다.
격자 모듈(920)은 유체 모델링 모듈(940)로부터 수신한 정보를 가공하여 변형체 모델링 모듈(930)에게 제공할 수 있다. 격자 모듈(920)이 가공하여 변형체 모델링 모듈(930)에게 제공한 정보는 유체장에 포함된 유체 입자들과 변형체 간의 상호 작용력일 수 있다. 여기서, 상호 작용력은 예를 들어, 변형체에 대한 유체 입자들의 반작용력(reaction force) 및 항력(drag) 등과 같이 변형체에 대한 유체 입자들의 작용력으로 이해할 수 있다.
변형체 모델링 모듈(930)은 격자 모듈(920)로부터 수신한 상호 작용력을 변형체에 대한 형상 모델에 반영할 수 있다. 변형체 모델링 모듈(930)은 상호 작용력이 반영된 형상 모델로부터 변형체의 형상 정보를 생성할 수 있다. 변형체 모델링 모듈(930)은 격자 모듈(920)에게 변형체의 형상 정보를 제공할 수 있다.
격자 모듈(920)은 변형체의 형상 정보로부터 변형체의 윤곽에 대한 정보를 파악할 수 있다. 격자 모듈(920)은 형상 정보를 이용하여 변형체에 대한 유체 입자들의 작용력을 산출할 수 있다. 격자 모듈(920)은 유체 모델링 모듈(940)에게 형상 정보를 전송할 수 있다.
유체 모델링 모듈(940)은 형상 정보를 이용하여 유체 입자들과 변형체 간의 충돌에 의해 유체 입자들이 받는 제약력 및 유체 입자들의 최종 속도를 산출할 수 있다. 유체 모델링 모듈(940)은 유체 입자들이 받는 제약력 및 유체 입자들의 최종 속도를 다시 격자 모듈(920)에게 제공할 수 있다.
일실시예에서는 상대 모델링 모듈(예를 들어, 유체의 경우에는 변형체 모델링 모듈(930), 변형체의 경우에는 유체 모델링 모듈(940))이 격자 모듈(920)에 저장한 정보를 피드백(feedback)하여 자신의 객체 입자의 모델링 시에 반영함으로써 변형체 및 유체 간의 상호 작용을 실시간으로 처리할 수 있다.
일실시예에 따르면, 변형체 및 유체 간의 상호 작용을 실시간으로 처리함으로써 고품질의 사실적 영상 재현을 필요로 하는 영화의 특수 효과뿐만 아니라 실시간성이 중요한 게임이나 모바일 UI 분야에서 유체 및 유체와 혼합된 변형체의 사실적인 모델링이 가능하다.
도 10은 다른 실시예에 따른 모델링 장치에서 격자 모듈의 중계를 통해 유체와 변형체 간의 상호 작용을 처리하는 과정을 설명하기 위한 도면이다.
도 10을 참조하면, 유체 모델링 모듈(1010), 격자 모듈(1030) 및 변형체 모델링 모듈(1050)이 도시된다.
유체 모델링 모듈(1010)은 모델링 스텝에서 예를 들어, 중력(gravity)과 같은 외력을 처리하고, 유체장의 점성(viscosity)을 모델링한 뒤, 유체 입자의 위치(position)를 갱신할 수 있다. 유체 모델링 모듈(1010)은 유체장에 포함된 각 유체 입자가 변형체와 충돌했는지 여부 및 유체 입자들의 부피 또는 밀도가 부피 보존(volume preservation) 조건을 만족하는지 판단하여 유체 입자들을 모델링할 수 있다. 예를 들어, 유체장에 포함된 각 유체 입자가 변형체와 충돌하고, 충돌 시의 유체 입자들의 부피가 부피 보존 조건을 만족한다고 가정하자. 유체 모델링 모듈(1010)은 유체 입자들이 받는 제약력 및 유체 입자들의 최종 속도를 산출할 수 있다. 유체 모델링 모듈(1010)은 예를 들어, 충돌 및 부피 보존 조건이 없을 때 유체 입자들에 작용하는 힘과 충돌 및 부피 보존 조건이 있을 때 유체 입자들에 작용하는 힘을 비교하여 유체 입자들이 받는 제약력을 산출할 수 있다. 유체 모델링 모듈(1010)은 앞에서 산출한 제약력 및 유체 입자들의 최종 속도에 대한 정보를 격자 모듈(1030)로 제공할 수 있다.
격자 모듈(1030)은 유체 모델링 모듈(1010)과 변형체 모델링 모듈(1050)이 상대방 모델링 모듈의 존재를 비명시적으로 인식하도록 도와줄 수 있다. 격자 모듈(1030)은 유체 입자들의 작용력을 변형체 모델링 모듈(1050)에게 제공하고, 변형체의 형상 정보를 유체 모델링 모듈(1010)에게 제공할 수 있다. 유체 입자들의 작용력은 변형체에 대한 유체 입자들의 반작용력 및 항력을 포함할 수 있다. 격자 모듈(1030)은 유체 입자와 변형체가 미리 설정된 거리 이내로 인접하는 경우에, 제약력 및 유체 입자들의 최종 속도를 기초로 작용력을 산출할 수 있다.
격자 모듈(1030)은 유체 입자들에게는 변형체의 형상 정보를 전달하고, 변형체의 형상 모델에는 유체가 받은 상호 작용과 저항력을 전송하여 각 모델링 모듈들(1010, 1050)이 물리적으로 올바른 상호 작용 결과를 도출하도록 할 수 있다. 격자 모듈(1030)은 상호 작용이 올바르게 전송되도록 최소한 유체와 변형체가 인접하는 영역을 대상으로 동작을 수행할 수 있다.
변형체 모델링 모듈(1050)은 유체와 유사하게 중력, 탄성력 등을 모델링 한 뒤, 격자 모듈(1030)을 참조해서 유체와의 상호 작용 영역에서 발생한 힘들을 추가적으로 반영할 수 있다. 변형체 모델링 모듈(1050)은 거리장에서, 형상 모델에 작용력을 적용하여 형상 모델의 최종 위치를 결정할 수 있다. 이때, 작용력은 변형체에 대한 유체 입자들의 작용력을 고려한 것으로서, 작용력에 의해 유체 입자들에 의한 마찰력과 저항을 변형체에 반영할 수 있다. 변형체 모델링 모듈(1050)은 형상 모델의 최종 위치에서 변형체 및 유체 입자들 간의 충돌을 고려하여, 형상 모델 및 유체 입자들을 제외한 변형체 장애물이 부피 보존 조건을 만족하도록 변형체의 형상 정보를 생성할 수 있다. 변형체 모델링 모듈(1050)은 변형체의 형상 모델 및 변형체 장애물이 부피 보존 조건을 만족하도록 변형체의 형상 정보를 생성할 수 있다. 이때, 변형체의 형상 모델은 변형체에 대한 유체 입자들의 작용력이 반영된 것일 수 있다. 변형체 모델링 모듈(1050)은 형상 정보를 예를 들어, 격자에서 부호가 있는 거리값으로 자신의 위치를 나타내는 레벨 세트 정보로 격자 모듈(1030)에게 전송할 수 있다.
일실시예에서는, 유체 모델링 모듈(1010) 및 변형체 모델링 모듈(1050)을 분리하여 변형체 및 유체 각각의 입자 모델링 시에 요구되는 부피 보존 등과 같은 제약 조건을 개별적으로 달성하도록 할 수 있다.
또한, 일실시예에서 유체 모델링 모듈(1010) 및 변형체 모델링 모듈(1050)은 각각의 모델링을 독자적으로 수행하면서 변형체와 유체 간의 상호 작용 영역에 대하여는 격자 모듈(1030)을 통해 융합 처리할 수 있다. 실시예에 따라서는 격자 모듈(1030) 이외에 가상 격자화가 이용될 수도 있다.
도 11은 다른 실시예에 따른 모델링 장치의 동작 방법을 나타낸 플로우 차트이다.
도 11을 참조하면, 일실시예에 따른 모델링 장치는 유체장(fluid field)에 포함된 유체 입자들과 변형체 입자들 간의 충돌 및 유체 입자들이 제1 제약 조건인 부피 보존 조건을 만족하는지 여부를 판단할 수 있다(1110).
단계(1110)의 판단 결과에 따라, 모델링 장치는 유체 입자들이 받는 제약력 및 유체 입자들의 최종 속도를 산출할 수 있다(1120). 유체 입자들과 변형체 입자들이 충돌하는 경우, 모델링 장치는 유체 입자들을 변형체를 관통하지 않는 최종 위치로 이동시킬 수 있다. 모델링 장치는 최종 위치에서 유체 입자들이 부피 보존 조건을 만족하도록 모델링한 후, 유체 입자들이 받는 제약력 및 유체 입자들의 최종 속도를 산출할 수 있다. 또한, 모델링 장치는 형상 정보를 이용하여 제약력 및 유체 입자들의 최종 속도를 산출할 수 있다.
모델링 장치는 단계(1120)에서 산출된 제약력 및 최종 속도를 이용하여 변형체에 대한 유체 입자들의 작용력을 산출할 수 있다(1130). 작용력은 반작용력 및 항력을 포함할 수 있다. 단계(1130)에서, 모델링 장치는 제약력에 기초하여 변형체에 대한 유체 입자들의 반작용력을 산출할 수 있다. 이때, 반작용력은 형상 정보를 더 이용하여 산출될 수 있다. 모델링 장치는 제약력을 반영한 유체 입자들의 최종 위치에서의 최종 속도를 기초로 변형체에 대한 유체 입자들의 항력을 산출할 수 있다. 이 밖에도, 모델링 장치는 유체 입자와 변형체 입자가 미리 설정된 거리 이내로 인접하는지 여부를 판단하고, 판단 결과에 따라, 작용력을 산출할 수 있다.
모델링 장치는 변형체의 형상 모델 및 유체 입자들을 제외한 변형체 장애물이 부피 보존 조건을 만족하도록 변형체의 형상 정보를 생성할 수 있다(1140). 변형체의 형상 모델은 변형체에 대한 유체 입자들의 작용력이 반영된 것일 수 있다. 단계(1140)에서, 모델링 장치는 형상 모델에 작용력을 적용하고, 작용력을 적용한 결과에 따라 형상 모델의 최종 위치를 결정할 수 있다. 모델링 장치는 형상 모델의 최종 위치에서 형상 모델 및 변형체 장애물이 부피 보존 조건을 만족하도록 변형체의 형상 정보를 생성할 수 있다.
도 12는 다른 실시예에 따른 모델링 장치에서 유체 모델링 모듈의 동작 방법을 나타낸 플로우 차트이다.
도 12를 참조하면, 일실시예에 따른 유체 모델링 모듈은 유체장에서 유체 입자들에 영향을 주는 외력 및 유체장의 점성을 반영하여 유체 입자들의 위치를 산출할 수 있다(1210). 단계(1210)에서, 유체 모델링 모듈은 유체 입자들 간의 운동량 보존 방정식(momentum equation)을 계산할 수 있다. 유체 모델링 모듈은 예를 들어, 제1 입자에 이웃하는 제2 입자를 고려하여 제1 입자에 대한 운동량 보존 방정식을 산출하고, 제1 입자 및 제2 입자를 포함하는 모든 입자들에 대한 밀도(density), 외력(external forces) 및 점성 등을 계산할 수 있다. 유체 모델링 모듈은 운동량 보존 방정식의 계산 결과를 이용하여 제1 입자 및 제2 입자 각각에 대하여 비압축성 제약 조건(Incompressible condition)을 만족하는 변화량을 산출할 수 있다. 비압축성 제약 조건은 유체 내부 부피의 불변 조건을 의미하며, 일정 유체장 내에서 입자 속도를 반영한 입자들 간의 출입량 제어 및 유체와 변형체 간의 상호 작용에 의한 윤곽의 고정밀한 모델링이 가능하도록 한다. 유체 모델링 모듈은 유체 입자들 각각의 유체장에서의 다이버전스(divergence)를 구하고, 다이버전스가 '0' 이 되도록 하여 비압축성 제약 조건을 만족시킬 수 있다. 유체 모델링 모듈은 산출된 변화량에 의해 유체 입자들의 위치를 산출할 수 있다.
단계(1210)에 앞서, 유체 모델링 모듈은 유체를 모델링 하기 위한 입자들을 초기화할 수 있다. 초기화 과정에서 모델링 장치는 예를 들어, 일정 공간 또는 영역에 있는 유체를 나타내는 입자들의 양(mass), 밀도(density), 속도(velocity) 및 위치(position) 등의 정보를 초기화할 수 있다.
유체 모델링 모듈은 유체장에 포함된 유체 입자들과 변형체 간의 충돌이 발생했는지를 판단할 수 있다(1220).
단계(1220)에서 충돌이 발생했다고 판단된 경우, 유체 모델링 모듈은 유체 입자들의 위치를 변형체를 관통하지 않는 최종 위치로 이동시킬 수 있다(1230). 유체 모델링 모듈은 최종 위치에서 유체 입자들이 제1 제약 조건(예를 들어, 부피 보존 조건)을 만족하도록 모델링할 수 있다(1240). 유체 모델링 모듈은 충돌에 의해 유체 입자들이 받는 제약력을 산출하고(1250), 최종 위치에서 유체 입자들의 최종 속도를 산출할 수 있다(1260). 단계(1250) 및 단계(1260)에서, 유체 모델링 모듈은 격자 모듈로부터 수신한, 변형체의 형상 정보를 이용하여 제약력 및 유체 입자들의 최종 속도를 산출할 수 있다. 유체 모델링 모듈은 유체 입자들이 받는 제약력 및 유체 입자들의 최종 속도에 대한 정보를 격자 모듈에게 제공할 수 있다(1270).
단계(1220)에서 충돌이 발생하지 않았다고 판단된 경우, 유체 모델링 모듈은 동작을 종료하거나 또는 단계(1210)에서 산출된 유체 입자들의 위치를 격자 모듈에게 제공할 수 있다.
도 13은 다른 실시예에 따른 모델링 장치에서 변형체 모델링 모듈의 동작 방법을 나타낸 플로우 차트이다.
도 13을 참조하면, 일실시예에 따른 변형체 모델링 모듈은 외력을 반영하여 변형체에 대한 입자 기반의 형상 모델을 모델링할 수 있다(1310). 변형체 모델링 모듈은 단계(1310)에서 모델링된 형상 모델에, 변형체에 대한 유체 입자들의 작용력을 반영할 수 있다(1320). 변형체 모델링 모듈은 작용력 적용 결과에 따라 형상 모델의 최종 위치를 결정할 수 있다(1330).
변형체 모델링 모듈은 변형체와 유체 입자들 간의 충돌이 발생했는지를 판단할 수 있다(1340).
단계(1340)에서 충돌이 발생했다고 판단된 경우, 변형체 모델링 모듈은 형상 모델의 최종 위치에서 형상 모델 및 변형체 장애물이 제2 제약 조건을 만족하도록 모델링할 수 있다(1350). 변형체 모델링 모듈은 단계(1350)에서 모델링된 변형체의 형상 모델에 대한 형상 정보를 생성할 수 있다(1360). 변형체 모델링 모듈은 단계(1360)에서 생성된 형상 정보를 격자 모듈로 전송할 수 있다(1370).
단계(1340)에서 충돌이 발생하지 않았다고 판단된 경우, 변형체 모델링 모듈은 형상 모델에 대한 형상 정보를 생성하고(1360), 형상 정보를 격자 모듈로 전송할 수 있다(1370).
도 14는 다른 실시예에 따른 모델링 장치에서 격자 모듈의 동작 방법을 나타낸 플로우 차트이다.
도 14를 참조하면, 일실시예에 따른 격자 모듈은 변형체 모델링 모듈로부터 변형체의 형상 정보를 수신할 수 있다(1410). 격자 모듈은 변형체의 형상 정보를 유체 모델링 모듈에게 제공할 수 있다(1420). 격자 모듈은 유체 모델링 모듈로부터, 유체 입자들이 받는 제약력 및 유체 입자들의 최종 속도를 수신할 수 있다(1430). 격자 모듈은 변형체의 형상 정보 및 유체 입자들이 받는 제약력을 이용하여 변형체에 대한 유체 입자들의 반작용력을 산출할 수 있다(1440). 격자 모듈은 입자들의 최종 위치에서의 최종 속도를 기초로 변형체에 대한 유체 입자들의 항력을 산출할 수 있다(1450). 격자 모듈은 반작용력 및 항력을 포함하는 유체 입자들의 작용력을 변형체 모델링 모듈로 제공할 수 있다(1460).
이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 비록 한정된 도면에 의해 실시예들이 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
700: 모델링 장치
710: 메모리
730: 프로세서
750: 통신부

Claims (20)

  1. 하나 이상의 프로세서를 포함하는 모델링 장치가 객체들을 모델링하는 방법에 있어서,
    입자(particle)로 모델링 된 제1 객체와 입자로 모델링 된 제2 객체 간의 인접 영역을 검출하는 단계;
    상기 인접 영역에 대하여 격자(Grid)를 정의(define)하는 단계;
    상기 격자의 격자점들에 저장된 정보를 이용하여 상기 인접 영역에서의 상기 제1 객체와 상기 제2 객체 간의 작용력을 산출하는 단계; 및
    상기 작용력에 기초하여 상기 제1 객체와 상기 제2 객체를 모델링하는 단계
    를 포함하고,
    상기 격자를 정의하는 단계는,
    상기 인접 영역에서 상기 제1 객체 또는 상기 제2 객체의 윤곽과 상기 윤곽에 인접한 상기 격자의 격자점들과의 거리값을 추출하는 단계; 및
    상기 추출된 거리값을 상기 격자점들에 저장하는 단계
    를 포함하는, 객체들을 모델링하는 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 작용력을 산출하는 단계는,
    상기 인접 영역에서 상기 제1 객체의 입자들과 상기 제2 객체의 입자들 간에 충돌이 발생했는지 여부를 판단하는 단계; 및
    상기 판단 결과에 기초하여, 상기 제1 객체의 입자들과 상기 제2 객체의 입자들 간의 작용력을 산출하는 단계
    를 포함하는, 객체들을 모델링하는 방법.
  4. 제3항에 있어서,
    상기 충돌이 발생했는지 여부를 판단하는 단계는,
    상기 제1 객체의 입자들의 위치에 인접한 격자점들에 저장된 거리값을 이용하여 상기 충돌이 발생했는지 여부를 판단하는 단계
    를 포함하는, 객체들을 모델링하는 방법.
  5. 제4항에 있어서,
    상기 충돌이 발생했는지 여부를 판단하는 단계는,
    상기 제1 객체의 입자들이 부피 보존 조건을 만족하는지 여부를 더 고려하는, 객체들을 모델링하는 방법.
  6. 제3항에 있어서,
    상기 작용력을 산출하는 단계는,
    상기 충돌이 발생했다고 판단되는 경우, 상기 인접 영역에서 상기 제1 객체의 입자들과 상기 제2 객체의 입자들 중 충돌이 발생한 제1 객체의 입자를 검출하는 단계;
    상기 검출된 제1 객체의 입자의 위치를 재정의하는 단계; 및
    상기 제1 객체의 입자의 재정의된 위치에 기초하여, 상기 충돌로 인하여 상기 제2 객체에 미치는 작용력을 산출하는 단계
    를 포함하는, 객체들을 모델링하는 방법.
  7. 제6항에 있어서,
    상기 검출된 제1 객체의 입자의 위치를 재정의하는 단계는,
    상기 검출된 제1 객체의 입자의 위치를 상기 제2 객체를 관통(penetrate)하지 않는 위치로 재정의하는 단계
    를 포함하는, 객체들을 모델링하는 방법.
  8. 제7항에 있어서,
    상기 검출된 제1 객체의 입자의 위치를 재정의하는 단계는,
    상기 검출된 제1 객체의 입자를 포함하는 셀에 해당하는 격자점들에 저장된 거리값들 및 경사도(gradient)를 이용하여, 상기 제2 객체를 관통(penetrate)하지 않는 상기 제1 객체의 입자의 이동 방향 및 최단 이동 거리를 산출하는 단계; 및
    상기 산출된 이동 방향 및 최단 이동 거리에 따라 상기 제1 객체의 입자의 위치를 이동시키는 단계
    를 포함하는, 객체들을 모델링하는 방법.
  9. 제8항에 있어서,
    상기 격자점들에 저장된 거리값들 및 상기 산출된 최단 이동 거리를 이용하여 상기 제1 객체의 입자의 이동 속도를 산출하는 단계; 및
    상기 산출된 이동 속도를 상기 검출된 제1 객체의 입자를 포함하는 셀에 해당하는 격자점들에 저장하는 단계
    를 더 포함하는, 객체들을 모델링하는 방법.
  10. 제6항에 있어서,
    상기 충돌로 인하여 상기 제2 객체에 미치는 작용력을 산출하는 단계는,
    상기 제1 객체의 입자의 재정의된 위치에서 상기 제1 객체의 입자가 상기 제2 객체로부터 받는 것으로 추정되는 힘(force)을 산출하는 단계; 및
    상기 추정되는 힘에 기초하여 상기 충돌로 인하여 상기 제2 객체에 미치는 작용력을 산출하는 단계
    를 포함하는, 객체들을 모델링하는 방법.
  11. 제10항에 있어서,
    상기 산출된 작용력을, 상기 제1 객체의 입자의 재정의된 위치에 해당하는 격자의 격자점들에 저장하는 단계
    를 더 포함하는, 객체들을 모델링하는 방법.
  12. 제1항에 있어서,
    상기 제1 객체와 상기 제2 객체는
    서로 이종인, 객체들을 모델링하는 방법.
  13. 제12항에 있어서,
    상기 제1 객체는 유체이고,
    상기 제2 객체는 변형체인, 객체들을 모델링하는 방법.
  14. 제1항, 제3항 내지 제13항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  15. 입자(particle)로 모델링 된 제1 객체와 입자로 모델링 된 제2 객체 간의 인접 영역을 검출하고, 상기 인접 영역에 대하여 격자(Grid)를 정의하는 격자 변환 모듈;
    상기 격자의 격자점에 저장된 정보를 이용하여 상기 인접 영역에서의 상기 제1 객체와 상기 제2 객체 간의 작용력을 산출하고, 상기 작용력에 기초하여 상기 제1 객체와 상기 제2 객체를 모델링하는 객체 모델링 모듈; 및
    상기 격자 변환 모듈 및 상기 객체 모델링 모듈을 제어하는 프로세서
    를 포함하고,
    상기 격자 변환 모듈은
    상기 인접 영역에서 상기 제1 객체 또는 상기 제2 객체의 윤곽과 상기 윤곽에 인접한 상기 격자의 격자점들과의 거리값을 추출하고, 상기 추출된 거리값을 상기 격자의 격자점들에 저장하는, 객체들을 모델링하는 장치.
  16. 삭제
  17. 제15항에 있어서,
    상기 객체 모델링 모듈은
    상기 인접 영역에서 상기 제1 객체의 입자들과 상기 제2 객체의 입자들 간에 충돌이 발생했는지 여부를 판단하는 판단부;
    상기 판단 결과에 기초하여, 상기 인접 영역에서 상기 제1 객체의 입자들과 상기 제2 객체의 입자들 중 충돌이 발생한 제1 객체의 입자를 검출하는 검출부;
    상기 검출된 제1 객체의 입자의 위치를 재정의하는 재정의부; 및
    상기 제1 객체의 입자의 재정의된 위치에 기초하여, 상기 충돌로 인하여 상기 제2 객체에 미치는 작용력을 산출하는 산출부
    를 포함하는, 객체들을 모델링하는 장치.
  18. 제17항에 있어서,
    상기 재정의부는,
    상기 검출된 제1 객체의 입자를 포함하는 셀에 해당하는 격자점들에 저장된 거리값들 및 경사도(gradient)를 이용하여, 상기 제2 객체를 관통(penetrate)하지 않는 상기 제1 객체의 입자의 이동 방향 및 최단 이동 거리를 산출하고, 상기 산출된 이동 방향 및 최단 이동 거리에 따라 상기 제1 객체의 입자의 위치를 이동시키는, 객체들을 모델링하는 장치.
  19. 제17항에 있어서,
    상기 산출부는
    상기 제1 객체의 입자의 재정의된 위치에서 상기 제1 객체의 입자가 상기 제2 객체로부터 받는 것으로 추정되는 힘(force)을 산출하고, 상기 추정되는 힘에 기초하여 상기 충돌로 인하여 상기 제2 객체에 미치는 작용력을 산출하며, 상기 산출된 작용력을, 상기 충돌이 발생한 제1 객체의 입자를 포함하는 셀에 해당하는 격자의 격자점들에 저장하는, 객체들을 모델링하는 장치.
  20. 객체들을 모델링하는 장치에 있어서,
    상기 모델링하는 장치의 동작을 제어하는 프로그램을 기록하는 메모리; 및
    상기 프로그램을 구동시키는 하나 이상의 프로세서
    를 포함하고,
    상기 프로그램은,
    입자(particle)로 모델링 된 제1 객체와 입자로 모델링 된 제2 객체 간의 인접 영역을 검출하고, 상기 인접 영역에 대하여 복수의 셀들을 포함하는 격자(Grid)를 정의(define)하며, 상기 격자의 격자점에 저장된 정보를 이용하여 상기 인접 영역에서의 산출한 상기 제1 객체와 상기 제2 객체 간의 작용력에 기초하여 상기 제1 객체와 상기 제2 객체를 모델링하고,
    상기 인접 영역에서 상기 제1 객체 또는 상기 제2 객체의 윤곽과 상기 윤곽에 인접한 상기 격자의 격자점들과의 거리값을 추출하고, 상기 추출된 거리값을 상기 격자점들에 저장함으로써 상기 격자를 정의하는, 객체들을 모델링하는 장치.
KR1020150059496A 2014-08-26 2015-04-28 객체들을 모델링하는 방법 및 장치 KR102399671B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201510463552.0A CN105389855B (zh) 2014-08-26 2015-07-31 对对象进行建模的方法和设备
JP2015153329A JP6663183B2 (ja) 2014-08-26 2015-08-03 オブジェクトをモデリングする方法及び装置
US14/825,755 US9953109B2 (en) 2014-08-26 2015-08-13 Object modeling method and apparatus
EP15181926.5A EP2990971A1 (en) 2014-08-26 2015-08-21 Object modeling method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20140111467 2014-08-26
KR1020140111467 2014-08-26

Publications (2)

Publication Number Publication Date
KR20160024738A KR20160024738A (ko) 2016-03-07
KR102399671B1 true KR102399671B1 (ko) 2022-05-20

Family

ID=55540187

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150059496A KR102399671B1 (ko) 2014-08-26 2015-04-28 객체들을 모델링하는 방법 및 장치

Country Status (2)

Country Link
JP (1) JP6663183B2 (ko)
KR (1) KR102399671B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102611430B1 (ko) * 2018-06-22 2023-12-08 삼성전자주식회사 반도체 설계 시뮬레이션을 위한 명령들을 포함하는 저장 매체, 반도체 설계 시스템, 그리고 반도체 설계 시뮬레이션의 방법
KR102245898B1 (ko) * 2019-06-27 2021-04-29 한국과학기술원 촉감 피드백 제공 방법 및 장치
KR102286160B1 (ko) * 2019-12-12 2021-08-05 한국과학기술원 촉감 피드백 제공 방법 및 장치
KR102200443B1 (ko) * 2019-12-13 2021-01-08 이에이트 주식회사 Lbm 기반의 유체 해석 시뮬레이션 장치, 방법 및 컴퓨터 프로그램

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120330628A1 (en) * 2011-06-24 2012-12-27 Siemens Corporation Boundary Handling for Particle-Based Simulation
KR101219534B1 (ko) 2008-12-22 2013-01-08 한국전자통신연구원 유체 시뮬레이션에서 섞이지 않으려는 성질을 가진 유체간 상호 작용 시 경계면에 작용하는 힘 산출 방법
WO2013042234A1 (ja) * 2011-09-21 2013-03-28 富士通株式会社 物体運動解析装置、物体運動解析方法、及び物体運動解析プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101214903B1 (ko) * 2011-03-04 2012-12-24 (주)에프엑스기어 입자간의 상호 작용을 이용한 유체 시뮬레이션 시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101219534B1 (ko) 2008-12-22 2013-01-08 한국전자통신연구원 유체 시뮬레이션에서 섞이지 않으려는 성질을 가진 유체간 상호 작용 시 경계면에 작용하는 힘 산출 방법
US20120330628A1 (en) * 2011-06-24 2012-12-27 Siemens Corporation Boundary Handling for Particle-Based Simulation
WO2013042234A1 (ja) * 2011-09-21 2013-03-28 富士通株式会社 物体運動解析装置、物体運動解析方法、及び物体運動解析プログラム

Also Published As

Publication number Publication date
KR20160024738A (ko) 2016-03-07
JP6663183B2 (ja) 2020-03-11
JP2016045945A (ja) 2016-04-04

Similar Documents

Publication Publication Date Title
US9953109B2 (en) Object modeling method and apparatus
KR102399671B1 (ko) 객체들을 모델링하는 방법 및 장치
KR102205845B1 (ko) 입자에 기반한 모델링 방법 및 장치
CN103699715A (zh) 一种基于光滑粒子流体动力学和非线性有限元的流固耦合方法
KR101328739B1 (ko) 형상 제어가 가능한 다상유체 시뮬레이션 장치 및 방법
US10503561B2 (en) Particle simulation apparatus and computer resource allocating method
KR101853059B1 (ko) 가상 모델 제어 시스템, 방법 및 컴퓨터 판독 가능한 기록 매체
KR101533946B1 (ko) 원의 보로노이 다이어그램의 업데이트 방법과 이를 이용한 입자 간 충돌 시뮬레이션 방법
KR102026154B1 (ko) 천수흐름에서 천해파의 수치모의 방법
KR102459848B1 (ko) 입자에 기반하여 대상 객체를 고속으로 모델링하는 방법 및 장치
KR102263096B1 (ko) 입자로 구성된 객체들을 모델링하는 방법 및 장치
KR20170067374A (ko) 유체 입자에 기반하여 공기 방울의 움직임을 모델링하는 방법 및 장치
KR100779993B1 (ko) 압력장에 제어값을 적용하는 유체 시뮬레이션 방법, 그기록 매체 및 그 장치
Sanderasagran et al. Real-time computational fluid dynamics flow response visualisation and interaction application based on augmented reality
CN104318599A (zh) 一种基于几何特征的高精度流体动画建模方法
US10789750B2 (en) Modeling method and apparatus using fluid animation graph
KR101170909B1 (ko) 이동 그리드를 이용한 유체 시뮬레이션 시스템 및 방법
McIntyre et al. The immersed boundary method for water entry simulation
KR100729149B1 (ko) 제어가능한 다상 기체 시뮬레이션 방법, 그 기록 매체 및그 장치
KR101068675B1 (ko) 물의 교란을 시뮬레이션하는 방법 및 장치
KR102399601B1 (ko) 효율적인 제약 조건 처리를 위한 입자 기반 모델링 방법 및 장치
KR20170074560A (ko) 유체와의 상호 작용에 의한 대상 객체의 움직임을 모델링하는 방법 및 장치
Neuhauser et al. Coupling of the meshless SPH-ALE method with a finite volume method
Asao et al. Trans-Mesh method and its application to simulations of incompressible fluid-rigid bodies interaction
JP7395456B2 (ja) シミュレーション装置、及びプログラム

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