KR101068673B1 - 충돌 스플래쉬 시뮬레이션 방법 및 장치 - Google Patents

충돌 스플래쉬 시뮬레이션 방법 및 장치 Download PDF

Info

Publication number
KR101068673B1
KR101068673B1 KR1020100077394A KR20100077394A KR101068673B1 KR 101068673 B1 KR101068673 B1 KR 101068673B1 KR 1020100077394 A KR1020100077394 A KR 1020100077394A KR 20100077394 A KR20100077394 A KR 20100077394A KR 101068673 B1 KR101068673 B1 KR 101068673B1
Authority
KR
South Korea
Prior art keywords
collision
splash
emitter
collision object
particles
Prior art date
Application number
KR1020100077394A
Other languages
English (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 KR1020100077394A priority Critical patent/KR101068673B1/ko
Application granted granted Critical
Publication of KR101068673B1 publication Critical patent/KR101068673B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects

Landscapes

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

Abstract

본 발명에 따른 스플래쉬 시뮬레이션 방법은 폴리곤으로 구현된 충돌 물체 및 피충돌 물체의 충돌에 따른 스플래쉬 시뮬레이션 방법으로서, 충돌 물체에 스플래쉬 가중치들을 부가하는 단계, 충돌 물체와 피충돌 물체의 충돌을 감지하는 단계, 충돌이 감지되면 파티클들을 방출하는 에미터의 속성들을 스플래쉬 가중치들의 값을 기초로 설정하는 단계 및 설정된 에미터 속성에 따라 에미터로부터 파티클들을 방출함으로써 스플래쉬 효과를 얻는 단계를 포함할 수 있다.

Description

충돌 스플래쉬 시뮬레이션 방법 및 장치{METHOD AND APPARATATUS FOR SIMULATING COLLISION SPLASH}
본 발명은 컴퓨터 유체 역학 시뮬레이션에 관한 것으로, 더욱 상세하게는, 충돌로 인한 유체의 스플래쉬를 시뮬레이션 하는 기술에 관한 것이다.
최근 TV 프로그램이나 영화에서 컴퓨터 그래픽스를 이용한 유체 시뮬레이션의 사용이 잦아지고 유체 시뮬레이션의 수요가 증가하면서 그 필요성 및 중요성이 점차 부각되고 있다. 특히 영화 제작에 있어서 발전된 유체 시뮬레이션 기술의 비중이 높아져, 미니어처나 실제 세트를 촬영하는 방식과 함께 사용되고 있는 상황이다. 그러나 시뮬레이션 기술이 모든 효과를 표현해주지 못하기 때문에, 유체 효과 표현에 있어서 아티스트의 수작업이 필요하게 된다. 아티스트에 의해 만들어진 유체 효과 장면들은 복잡한 물리적 현상을 수작업을 통해 현실적으로 재현해야하기 때문에 반복되는 작업이 수반되고 결과적으로 많은 제작시간과 막대한 제작비 상승을 초래한다. 따라서 유체 효과 표현 기술 분야에서는 아티스트의 작업흐름에 입각한 제작한 인터페이스 기술이 요구되고 있는 상황이다.
현업에서는 물리 기반 시뮬레이션 기술 외에, 아티스트가 유체 효과 장면의 제작을 돕기 위한 다양한 기술이 존재한다. 그 중에서 Particle System은 물의 흐름, 떨어지는 물, 스플래쉬(splash) 등 유체 현상을 표현 하는 데에 범용적으로 사용된다. 기존에는 사용자들이 스플래쉬를 만들기 위해서는 모든 입자 방출 에미터(emitter)의 생성과 설정을 수작업으로 해야 했다. 일반적으로 물체가 유체에 충돌하는 지점을 직접 찾아 유체의 충돌 위치에 NURBS(Non Uniform Rational B-Spline) 표면을 만든 후, 그 NURBS 표면에서 분출하는 에미터를 만들었다. 하지만 수백 개의 충돌 물체에 대하여 일일이 에미터를 만들고 그 값을 조정하는 것은 매우 비효율적인 일이다.
한편, 영화 제작 등에서 고도의 현실성이 요구되는 장면에서는 Realflow™와 같은 툴이 이용되고 있다. Realflow™는 동적 파티클 시스템의 일종으로, 세밀한 물리 엔진 기반의 유체 시뮬레이션이 가능하지만, 연산 시간과 비용이 너무 높고, 사용자가 충돌하는 물체들의 속성을 제어할 수 없어 원하는 효과를 얻기 어려우며, 작업 결과를 Maya와 같은 통상적인 3D 에니메이션 어플리케이션에서 불러들이는 데에 애로가 있다.
이렇듯, 스플래쉬를 표현하기 위해, 시뮬레이션 시간 및 비용이 적게 들고, 통상적인 3D 어플리케이션과 함께 작업하기 쉬우며, 사용자가 직관적으로 충돌 효과를 제어할 수 있는 방법이 절실하게 필요하다.
본 발명이 해결하고자 하는 과제는 스플래쉬를 표현하기 위해 시뮬레이션 시간 및 비용이 적게 들고, 통상적인 3D 어플리케이션과 함께 작업하기 쉬우며, 사용자가 직관적으로 충돌 효과를 제어할 수 있는 방법 및 장치를 제공하는 데에 있다.
본 발명의 일 측면에 따른 스플래쉬 시뮬레이션 방법은 폴리곤으로 구현된 충돌 물체 및 피충돌 물체의 충돌에 따른 스플래쉬 시뮬레이션 방법으로서,
상기 충돌 물체에 스플래쉬 가중치들을 부가하는 단계;
상기 충돌 물체와 상기 피충돌 물체의 충돌을 감지하는 단계;
충돌이 감지되면, 파티클들을 방출하는 에미터의 속성들을 상기 스플래쉬 가중치들의 값을 기초로 설정하는 단계; 및
상기 설정된 에미터 속성에 따라 상기 에미터로부터 파티클들을 방출함으로써 스플래쉬 효과를 얻는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 스플래쉬 효과를 얻는 단계에 앞서,
상기 에미터에서 방출될 파티클들의 행동을 제어하는 적어도 하나의 필드의 속성을 설정하는 단계를 더 포함하며,
상기 스플래쉬 효과는 상기 설정된 에미터 속성에 따라 상기 에미터로부터 파티클들을 방출하고 방출된 파티클들의 행동을 상기 설정된 필드의 속성에 따라 제어함으로써 얻어질 수 있다.
일 실시예에 따르면, 상기 스플래쉬 가중치들은 사용자가 충돌 물체의 표면에 매핑되는 값으로써 부가되거나, 또는 사용자가 선택한 텍스쳐의 색상 값으로써 부가될 수 있다.
일 실시예에 따르면, 상기 에미터가 속하는 표면의 크기는 상기 충돌 물체의 크기, 질량, 충돌 속도, 상기 스플래쉬 가중치들의 전체 패턴의 크기 중 적어도 어느 한 요소에 기초하여 결정될 수 있다.
일 실시예에 따르면, 상기 충돌 물체와 상기 피충돌 물체의 충돌을 감지하는 단계는,
상기 피충돌 물체의 표면에 평행하도록 상기 충돌 물체에 생성한 제1 원을 상기 피충돌 물체의 표면에 투영하여 제2 원을 생성하는 단계; 및
상기 제1 원 및 제2 원 각각의 중심 사이의 거리가 소정의 허용치 이하로 되면 상기 충돌 물체와 상기 피충돌 물체 사이의 충돌이 있는 것으로 판정하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 제1 원은 상기 피충돌 물체의 표면의 법선 벡터와 직교하면서 상기 충돌 물체의 중심점을 지나는 평면이 상기 충돌 물체의 표면와 교차함으로써 생성될 수 있다.
일 실시예에 따르면, 상기 에미터가 속하는 표면의 크기는 상기 제2 원의 반지름에 비례하는 값으로 설정될 수 있다.
일 실시예에 따르면, 상기 에미터를 설정하는 단계는,
상기 스플래쉬 가중치들의 패턴을 상기 에미터의 에미터 텍스쳐 레이트로 설정하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 충돌 물체와 상기 피충돌 물체가 각각 복수일 경우에는, 상기 충돌 물체 중 하나와 상기 피충돌 물체 중 하나로 이루어진 쌍을 서로소 합집합(disjoint union)의 원소로 정함으로써 각각의 충돌을 구별할 수 있다.
일 실시예에 따르면, 상기 충돌 물체는 구(sphere)일 수 있다.
일 실시예에 따르면, 상기 방출된 파티클들이 상기 피충돌 물체 표면 밑에 배치된 소멸 감지면과 충돌할 때에, 상기 파티클들을 소멸시키는 단계를 더 포함하는 것을 특징으로 하는 스플래쉬 시뮬레이션 방법.
본 발명의 다른 측면에 따른 스플래쉬 시뮬레이션 방법은 폴리곤으로 구현된 충돌 물체 및 피충돌 물체의 충돌에 따른 스플래쉬 시뮬레이션 방법으로서
상기 충돌 물체의 충돌 부위에 생성된 비가시성의 충돌 구체에 스플래쉬 가중치들을 부가하는 단계;
상기 충돌 구체와 상기 피충돌 물체의 충돌을 감지하는 단계;
충돌이 감지되면, 파티클들을 방출하는 에미터의 속성들을 상기 스플래쉬 가중치들의 값을 기초로 설정하는 단계; 및
상기 설정된 에미터 속성에 따라 상기 에미터로부터 파티클들을 방출함으로써 스플래쉬 효과를 얻는 단계를 포함할 수 있다.
본 발명의 일 측면에 따른 컴퓨터 장치로 읽을 수 있는 기록 매체는,
컴퓨터 장치에서 본 발명의 실시예들에 따른 스플래쉬 시뮬레이션 방법의 각 단계들을 실행시키기 위한 프로그램을 기록한 기록 매체일 수 있다.
본 발명의 일 측면에 따른 스플래쉬 시뮬레이션 장치는
폴리곤으로 구현된 충돌 물체 및 피충돌 물체의 충돌에 따른 스플래쉬 시뮬레이션을 수행하는 스플래쉬 시뮬레이션 장치로서,
사용자 인터페이스를 통해 입력된 사용자의 지시에 따라 상기 충돌 물체에 스플래쉬 가중치들을 부가하고, 상기 충돌 물체의 질량과 크기를 설정하는 충돌 설정부;
상기 충돌 물체와 상기 피충돌 물체의 충돌을 감지하는 충돌 감지부; 및
충돌이 감지되면, 파티클들을 방출하는 에미터의 속성들을 상기 스플래쉬 가중치들의 값을 기초로 설정하는 에미터 설정부를 포함할 수 있다.
일 실시예에 따르면, 상기 사용자 인터페이스를 통해 입력된 사용자의 지시에 따라, 상기 에미터에서 방출될 파티클들의 행동을 제어하는 적어도 하나의 필드의 속성을 설정하는 필드 설정부를 더 포함할 수 있다.
일 실시예에 따르면, 상기 설정된 에미터 속성에 따라 상기 에미터로부터 파티클들을 방출시키고, 상기 설정된 필드의 속성에 따라 상기 방출된 파티클들의 행동을 제어하는 3D 애니메이션부를 더 포함할 수 있다.
일 실시예에 따르면, 상기 에미터 설정부는,
상기 충돌 물체의 크기, 질량, 충돌 속도, 상기 스플래쉬 가중치들의 전체 패턴의 크기 중 적어도 어느 한 요소에 기초하여 상기 에미터가 속하는 표면의 크기를 결정하도록 동작할 수 있다.
일 실시예에 따르면, 상기 에미터 설정부는,
상기 스플래쉬 가중치들의 패턴을 상기 에미터의 에미터 텍스쳐 레이트로 설정하도록 동작할 수 있다.
일 실시예에 따르면, 상기 방출된 파티클들이 상기 피충돌 물체 표면 밑에 배치된 소멸 감지면과 충돌하는 것을 감지하고, 상기 소멸 감지면과 충돌한 파티클들을 소멸시키도록 동작하는 파티클 소멸 감지부를 더 포함할 수 있다.
본 발명의 다른 측면에 따른 컴퓨터 장치로 읽을 수 있는 기록 매체는, 컴퓨터 장치를 청구항 본 발명의 실시예들에 따른 스플래쉬 시뮬레이션 장치로서 기능시키기 위한 프로그램을 기록한 기록 매체일 수 있다.
본 발명의 스플래쉬 시뮬레이션 방법 및 장치에 따르면, 스플래쉬를 표현하기 위해, 시뮬레이션 시간 및 비용이 적게 들고, 통상적인 3D 어플리케이션과 함께 작업하기 쉬우며, 사용자가 직관적으로 충돌 효과를 제어할 수 있는 방법을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 스플래쉬 시뮬레이션의 프로세스를 대략적으로 예시한 순서도이다.
도 2는 본 발명의 일 실시예에 따라 폴리곤으로 구현된 충돌 물체에 매핑할 스플래쉬 가중치 패턴과, 스플래쉬 가중치 패턴이 매핑된 충돌 물체를 개념적으로 예시한 도면이다.
도 3은 본 발명의 일 실시예에 따라 충돌 물체에 페인팅된 스플래쉬 가중치 패턴에 기초하여 피충돌 유체 표면의 충돌 위치에 생성되는 에미터의 텍스쳐 레이트(texture rate)를 예시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 스플래쉬 시뮬레이션에서 적용되는 필드의 종류에 따라 스플래쉬 파티클의 생성 형태를 대비한 도면이다.
도 5는 본 발명의 일 실시예에 따라 스플래쉬 가중치 패턴의 페인팅, 충돌 전 및 충돌 후 단계 별로 스플래쉬 시뮬레이션을 예시한 도면이다.
도 6은 본 발명의 일 실시예에 따라, 충돌 물체와 피충돌 유체 표면이 충돌할 때에 충돌의 감지를 예시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 스플래쉬 시뮬레이션 장치를 예시한 블록도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 스플래쉬 시뮬레이션의 프로세스를 대략적으로 예시한 순서도이다.
도 1을 참조하면, 단계(S11)에서, 충돌 물체(colliding object)의 폴리곤에 충돌 시 생성되는 스플래쉬의 생성 정도와 형상을 결정하는 스플래쉬 가중치들(weight)을 부여한다. 상기 스플래쉬 가중치들은 소정의 스플래쉬 가중치 패턴을 이룰 수 있다. 이때, 스플래쉬 가중치 패턴은 폴리곤에 스플래쉬 가중치들로 구성된 패턴을 매핑한 것으로서, 폴리곤에 텍스쳐를 입히는 통상적인 방법과 유사하게 스플래쉬 가중치 패턴을 폴리곤에 입히거나, 또는 폴리곤 상에 브러시로 페인팅하는 통상적인 방법과 유사하게 브러시의 페인팅 동작에 상응하는 스플래쉬 가중치들을 충돌 물체의 표면에 할당할 수 있다.
실시예에 따라서, 스플래쉬 가중치들은 시간에 따라 가변하도록 설정되어 충돌 물체의 표면에 매핑될 수 있다. 사용자는 스플래쉬 가중치 패턴으로서 시간에 따라 가변하는 텍스쳐를 이용할 수도 있다.
다른 실시예에서는, 스플래쉬 가중치들은 피충돌 물체(collided object)의 종류, 물리적 특성(점성, 탄성, 비압축성, 밀도 등)에 따라 가변하도록 충돌 물체의 표면에 매핑될 수 있다.
한편, 충돌 시에는, 충돌 물체의 표면에 입혀진 스플래쉬 가중치 패턴과, 피충돌 물체의 충돌 부위에 형성되는 에미터들을 위한 텍스쳐 사이에 일대일 대응이 이루어지면서, 스플래쉬 가중치 패턴에 포함된 스플래쉬 가중치 값들이 에미터 텍스쳐 레이트의 에미터 속성 설정 정보로 전달된다.
통상적으로 3D 애니메이션에서 에미터는 파티클을 방출하는 가상의 위치로서, 점, 면, 입체 등으로 설정될 수 있다. 어떤 면의 형태로 에미터를 배치하고 파티클들을 방출하는 양, 속도, 방향, 파티클들의 크기 등을 설정하면, 에미터에서 설정된 대로 파티클들이 방출된다. 어떤 면에서 파티클을 방출시키고자 할 경우에 에미터가 속하는 표면 상의 각 위치에서 동일한 강도로 파티클을 방출시킬 수도 있지만 다르게 하고 싶을 경우도 있을 것이다. 이러한 경우에 에미터는 어떤 텍스쳐에 의해 파티클 방출의 속성들을 설정할 수 있다. 에미터 면에 씌운 텍스쳐의 색상 값에 따라 각 위치에서 파티클의 방출 정도를 결정할 수 있고 통상적으로 이렇게 텍스쳐(texture)로 파티클의 방출 속도(rate)를 설정하므로 텍스쳐 레이트(texture rate)라고 부른다.
실시예에 따라서는, 충돌 물체의 스플래쉬 가중치 패턴과 피충돌 물체의 에미터 텍스쳐 패턴 사이의 대응이 원활할 수 있도록, 충돌 물체 자체가 표준화된 형상, 예를 들어 구(sphere)인 것이 바람직할 수 있다. 이 경우에, 구 형태가 아닌 임의 형상의 충돌 물체들에 대해서는, 충돌 부위에 일정한 크기의 충돌 구체를 생성하고 사용자가 이 충돌 구체에 스플래쉬 가중치 패턴을 입힘으로써 충돌 구체에 의해 피충돌 물체에 스플래쉬를 생성할 수 있다. 충돌 구체가 원본 충돌 물체를 대신하여 충돌 구체에 충돌하는 것으로 처리되지만, 시각적으로는 원래의 원본 충돌 물체가 충돌하는 것처럼 보여야 하므로, 충돌 구체는 시인성(visibility) 값이 오프(off)된 상태로 충돌을 처리한다.
사용자는 마치 3D 편집 어플리케이션에서 물체 표면에 브러시로 색상 데이터를 페인팅하듯이 충돌 물체 또는 충돌 구체의 표면에 스플래쉬 가중치 데이터들을 일일이 할당하거나, 또는 폴리곤에 일정한 텍스쳐를 입히는 방식을 그대로 이용하여 일정 영역의 폴리곤들에 미리 만들어둔 텍스쳐를 스플래쉬 가중치 패턴으로 할당할 수 있다.
실시예에 따라, 스플래쉬 가중치 패턴은 각각 기본적 형태인 하나 이상의 부분 패턴들을 결합한 형태로 만들어질 수 있다. 예를 들어, 도 2의 (a)는 비교적 복잡한 패턴인데, 이를 생성하기 위해 (b), (c), (d)와 같은 다수의 래디얼 램프(radial ramp) 패턴들, 즉 중심에서의 각도에 따라 값이 점진적으로 가변하는 방사형 패턴들을 서로 반지름을 달리하여 합성할 수 있다.
이렇게 부분 패턴들을 결합한 스플래쉬 가중치 패턴은 충돌의 양상을 반영하는 데에 좀더 유리하게 이용될 수 있다. 예를 들어, 물체가 수면에 충돌하는 것을 느리게 시뮬레이션하는 경우에, 충돌 시에 수면에 맨 먼저 서로 닿는 부분이 있고 이후에 시간이 지나면서 순차적으로 접촉하는 부분들이 생길 것인데, 충돌 시 수면에 접촉하는 부분은 충돌 즉시 스플래쉬를 발생시킬 것이며, 그 다음 시간 프레임에서는 수면 밑으로 잠기므로 스플래쉬가 생길 수 없을 것이다. 마찬가지로 충돌 물체의 나머지 부분들도 순차적으로 수면에 접촉하는 시간 프레임에서만 스플래쉬가 생성된다. 스플래쉬 가중치 패턴을 이러한 순차적인 접촉을 고려하여 분할할 경우, 좀더 현실적인 스플래쉬 시뮬레이션이 가능할 것이다.
양상에 따라, 충돌 시점에는 맨 먼저 서로 닿은 부분에 해당하는 스플래쉬 가중치 패턴 중 첫 부분 패턴에 의해 에미터가 설정되고, 이어서 다음 시간 프레임에서 접촉하는 스플래쉬 가중치 패턴 중 각 부분 패턴들에 의해 순차적으로 에미터가 설정되도록 할 수 있다.
이어서, 단계(S12)에서는, 충돌 물체와 피충돌 물체 사이에서 충돌을 감지한다. 구체적으로, 충돌 물체와 피충돌 물체에 각각 서로 평행한 원(circle)이 형성되고, 두 원 사이의 거리가 소정 값 이하로 되면 충돌이 일어난 것으로 판정한다.
예를 들어 피충돌 물체는 물과 같은 유체이고, 충돌 물체는 일정한 질량을 가진 공이라고 하면, 피충돌 물체와 충돌 물체 사이의 거리는 수면과 공의 중심점 사이의 거리로 표현할 수 있다. 피충돌 물체의 표면, 즉 수면에 수직인 법선 벡터(normal vector)를 이용하여 충돌 물체의 중심점을 중심으로 하면서 상기 법선 벡터와 직교하는 제1 원을 생성할 수 있다.
이때, 일 실시예에서는 제1 원의 반지름은 충돌 물체의 질량에 의해 결정될 수 있다. 다른 실시예에서는 제1 원의 반지름은 구형의 충돌 물체의 반지름과 동일하게 결정될 수 있다.
이어서 제1 원을 피충돌 물체의 표면에 투영하면 제2 원이 생성된다. 제2 원은 충돌 물체가 시간에 따라 이동하면 충돌 물체의 움직임의 수평 성분의 방향을 따라 피충돌 물체의 표면 위에서 이동할 것이다. 충돌 물체가 피충돌 물체에 다가가서 충돌이 일어날 때에는 제1 원 및 제2 원은 소정 거리 이하로 가까워질 것이다. 따라서, 제1 원 및 제2 원 사이의 거리가 소정 값 이하로 되면 충돌이 일어난 것으로 판정한다.
스플래쉬 가중치 패턴에 의해 스플래쉬가 발생하도록 만들어야 하므로, 스플래쉬 가중치 패턴이 부가된 충돌 물체의 부위가 피충돌 물체와 충돌하여야 한다. 예를 들어, 표준적인 구형의 충돌 물체에서 통상적으로 하부 극점 주변에 해당하는 부위에 스플래쉬 가중치 패턴을 부가하고, 그러한 하부 극점 주변이 피충돌 물체와 충돌한다. 따라서, 제1 원은 구형의 충돌 물체의 적도(equator)에 해당하고, 구형의 충돌 물체는 피충돌 물체의 표면의 법선 벡터가 구형의 충돌 물체의 하부 극점, 중심점 및 상부 극점을 통과하도록 자세를 잡는 것이 바람직할 수 있다.
나아가, 복수의 충돌 물체들과 피충돌 물체들이 충돌하는 경우, 예를 들어 각각의 충돌 물체와 피충돌 물체를 서로소 합집합(disjoint union)으로 묶음으로써, 서로 다른 충돌을 구분하여 감지할 수 있고, 그 때마다 동일하거나 다른 스플래쉬를 형성하도록 할 수 있다.
본 발명의 다른 실시예에서는 종래에 알려진 거리 기반(distance-based) 충돌 감지 또는 중첩 기반(intersection-based) 충돌 감지 알고리즘 등을 이용할 수도 있다.
단계(S13)에서는, 충돌에 따른 스플래쉬를 파티클의 방출로써 표현하기 위해, 파티클들을 방출하는 에미터의 크기와 설정 속성들이 스플래쉬 가중치들에 기초하여 설정된다. 에미터의 설정 속성들은 파티클 방출 위치 또는 텍스쳐, 속도, 방향, 시작 시간 및 지속 시간 등을 포함한다.
에미터의 크기는 스플래쉬의 형태와 양에 영향을 미치는데, 또한 스플래쉬는 충돌 시의 충돌 물체의 크기, 질량, 충돌 속도, 스플래쉬 가중치 패턴 등에 의해 영향을 받으므로, 에미터의 크기는 이러한 요소에 의해 설정될 수 있다.
예를 들어, 일 실시예에서는 에미터가 속하는 표면의 크기가 충돌 물체의 질량 및 충돌 속도에 의해 결정될 수 있다. 이때, 제1 원의 크기가 충돌 물체의 질량 및 충돌 속도에 의해 결정되고 제2 원의 크기는 제1 원의 크기에 의해 결정되며, 에미터가 속하는 표면의 크기는 제2 원의 크기에 의해 결정되도록 할 수 있다.
다른 실시예에서는, 에미터가 속하는 표면의 크기는 충돌 물체의 크기에 의해 결정될 수 있다. 예를 들어, 제1 원의 크기가 구형의 충돌 물체의 크기, 즉 반지름에 의해 결정되고 제2 원의 크기는 제1 원의 크기에 의해 결정되며, 에미터가 속하는 표면의 크기는 제2 원의 크기에 의해 결정되도록 한다면, 에미터가 속하는 표면의 크기는 충돌 물체의 절단면 크기와 같을 수 있다.
또 다른 실시예에서는, 에미터가 속하는 표면의 크기는 스플래쉬 가중치 패턴의 크기에 의해 결정될 수 있다.
에미터 텍스쳐 레이트(texture rate)는 스플래쉬 가중치 패턴이 그대로 반영되어 설정될 수 있다. 에미터 텍스쳐 레이트를 이용하는 경우에는 스플래쉬 가중치 패턴의 텍스쳐 모양에 따라 에미터에서 파티클이 방출되는 강도가 결정될 수 있다. 예를 들어, 스플래쉬 가중치 패턴의 흑백 텍스쳐 중에 흰색(0xFF)에 해당하는 에미터는 가장 강렬하게 파티클을 방출하고 검은색(0x00)에 해당하는 에미터는 파티클을 전혀 방출하지 않는 식으로 에미터가 설정될 수 있다.
한편, 에미터가 포함되는 표면은 반드시 피충돌 물체의 표면 상에 있을 필요는 없으며, 충돌의 양상에 따라 적절한 위치에 설정될 수 있다. 예를 들어, 큰 물체가 수면에 추락하는 경우에 스플래쉬가 충돌 물체의 아래쪽에서 밀려나와 퍼지듯이 보이도록, 예를 들어 피충돌 물체의 표면에 대하여 비스듬하게 기울어져 충돌 물체의 아래 부분으로부터 충돌 물체가 차지하는 공간을 피해 파티클들이 방출되도록 설정될 수도 있다.
실시예에 따라서, 스플래쉬 가중치 패턴이 각 시간 프레임마다 충돌 물체와 피충돌 물체가 접촉하기 시작하는 부분을 반영한 다수의 영역으로 분할되어 있어서, 각 시간 프레임마다 접촉이 시작되는 각 스플래쉬 가중치 패턴 분할 영역에 상응하는 에미터 표면들이 각각 설정될 수 있다.
또한, 에미터의 파티클 방출 시작 시점은 충돌 물체와 피충돌 물체의 접촉이 발생하는 시점에 초기화될 수 있고, 충돌의 양상에 따라 적절한 시간 동안 방출이 지속되도록 설정될 수 있다.
이렇게 하면, 어느 한 충돌 물체가 피충돌 물체와 여러 차례 충돌할 경우에,충돌마다 동일한 스플래쉬 가중치 패턴을 이용하더라도, 충돌 물체의 충돌 속도나 충돌 각도 등에 따라 에미터의 속성 설정이 동적으로 달라질 수 있고, 그에 따라 스플래쉬도 동적으로 달라질 수 있다. 다른 예에서, 동일한 폴리곤으로 이루어진 두 개의 충돌 물체에 동일한 스플래쉬 가중치 패턴을 할당할 경우에도, 두 충돌 물체의 중량이 서로 다르다면 서로 다른 스플래쉬를 얻을 수 있다.
단계(S14)에서는, 에미터에서 방출된 파티클들의 행동을 제어할 수 있도록 충돌 시의 충돌 물체의 속도와 질량 등에 근거하여 필드(field)들의 속성들을 결정한다. 여기서 필드는 파티클들에 가해지는 외력의 벡터장을 의미하며, 중력(gravity), 바람 즉 공기의 흐름(air), 난류(turbulence), 방출 지점으로부터 지정된 방위 내에서 방사상으로 퍼지게 하는 힘(radial) 등의 필드들이 스플래쉬를 표현하는 데에 적용될 수 있다.
단계(S15)에서는, 설정된 에미터 속성에 따라 에미터에서 파티클들을 방출하고, 설정된 필드 속성에 따라 방출된 파티클들을 움직여 스플래쉬 효과를 얻는다.
선택적으로 단계(S16)에서는, 스플래쉬를 표현하기 위한 파티클로서의 용도를 다한 파티클, 예를 들어 수면에 다시 떨어진 물방울과 같은 파티클을 소멸시키기 위해, 피충돌 물체의 표면 밑에 비가시성의 소멸 평면을 만들고, 파티클이 소멸 평면을 통과하는 것이 감지되면 해당 파티클을 흡수하여 소멸시킨다.
도 2는 본 발명의 일 실시예에 따라 폴리곤으로 구현된 충돌 물체에 매핑할 스플래쉬 가중치 패턴과, 스플래쉬 가중치 패턴이 매핑된 충돌 물체를 개념적으로 예시한 도면이다.
도 2를 참조하면, 패턴 (a)에서는 구형의 충돌 물체의 하부 극점을 중심으로 닻 모양의 스플래쉬 가중치 패턴이 부가되었다. 이 경우, 직접 브러시로 해당 스플래쉬 가중치 패턴의 형상을 구현하는 것도 가능하겠지만, 다수의 다른 패턴들을 결합하여 스플래쉬 가중치 패턴을 생성할 수도 있다. 예를 들어, 부분 패턴 (b), (c), (d), (e)는 구형 충돌 물체의 남극을 중심으로 한 동심원들 중 점차 반지름이 커지는 동심원에 각각 할당되는 방사형 램프의 패턴이다. 합성 패턴 (f)와 같이, 가장 작은 동심원 1에 부분 패턴 (b)를 배치하고 다음으로 큰 동심원 2에 부분 패턴 (c)를 배치하며, 다음으로 부분 패턴 (d), (e)를 각각 동심원 3과 4에 배치한 것을 하나의 패턴으로 결합하면 패턴 (a)와 같은 패턴을 얻을 수 있다.
한편, 구형 충돌 물체 (g)는 스플래쉬 가중치를 반영하는 색상을 브러시로 직접 페인팅한 구형 충돌 물체를 아래쪽에서 비스듬히 본 것이다. 밝은 색으로 칠해진 부분은 높은 스플래쉬 가중치를 의미하며, 충돌 시에 많은 스플래쉬를 발생시키는 부분이다. 현실적으로 공이 입수할 때에 공의 하부 주변으로 스플래쉬가 많이 발생할 것을 감안하여 하반구 중간 부분의 띠에 높은 값의 가중치들이 집중되어 있다.
도 3은 본 발명의 일 실시예에 따라 충돌 물체에 페인팅된 스플래쉬 가중치 패턴에 기초하여 피충돌 유체 표면의 충돌 위치에 생성되는 에미터의 텍스쳐 레이트(texture rate)를 예시한 도면이다.
도 3을 참조하면, 도 2의 패턴 (a)가 페인팅된 충돌 물체가 피충돌 물체에 충돌하면, 피충돌 물체와 충돌 위치에 에미터가 충돌 물체의 패턴 (a)에 의해 설정된다. 패턴 (a)에 따른 텍스쳐 레이트에 의해 피충돌 물체의 에미터가 설정되면, 위에서 보았을 때에 피충돌 물체의 표면에서는 도 3과 같이 파티클들이 방출된다.
도 4는 본 발명의 일 실시예에 따른 스플래쉬 시뮬레이션에서 적용되는 필드의 종류에 따라 스플래쉬 파티클의 생성 형태를 대비한 도면이다.
도 4를 참조하면, 각 장면에서 공 모양의 충돌 물체가 피충돌 물체인 수면에 낙하하는 장면에서 스플래쉬가 생성되는 형태를 나타내고 있다. 충돌 물체에 스플래쉬 가중치 패턴은 도 2의 패턴 (f)와 같이 설정되었다.
장면 (a)는 아무런 필드도 적용하지 않은 경우로서, 방출된 파티클들이 방출 시점의 초기 속도 및 방향 대로 퍼져 나가는 장면이다.
장면 (b)는 //충돌 물체가 충돌 물체의 낙하 움직임에 따른 공기의 흐름을 묘사하기 위해// 바람(air) 필드를 적용한 경우로서, 방출된 파티클들이 약간 옆으로 퍼지는 듯한 장면이다.
장면 (c)는 파티클에 중력이 작용하는 것을 나타내기 위해 중력(gravity) 필드를 적용한 경우로서, 방출된 파티클들이 비교적 높이 솟지 못하고 바로 수면으로 낙하하는 모습을 볼 수 있다.
장면 (d)에서는 충돌 시에 스플래쉬가 사방으로 솟구치며 퍼지는 것을 묘사하기 위해 파티클에 방사형 필드를 적용한 경우이다.
장면 (e)는 충돌 시에 생기는 물방울이 서로 간에 영향을 미쳐 불규칙하게 움직이는 것을 묘사하기 위해 파티클에 난류 필드를 적용한 경우이다.
장면 (h)는 앞의 모든 필드들, 즉 중력, 바람, 방사형, 난류 필드를 모두 적용한 경우로서, 비교적 사실적인 스플래쉬를 묘사할 수 있다.
도 5는 본 발명의 일 실시예에 따라 스플래쉬 가중치 패턴의 페인팅, 충돌 전 및 충돌 후 단계 별로 스플래쉬 시뮬레이션을 예시한 도면이다.
도 5를 참조하면, 장면 (a)는 두 개의 공에 스플래쉬 스플래쉬 가중치 패턴을 페인팅한 모습을 나타낸 장면이다. 위의 두 개 공은 시각적인 모습을 나타낸 것이고, 아래의 두 개 공은 동일한 스플래쉬 스플래쉬 가중치 패턴을 입힌 모습을 나타낸 것이다.
두 개의 공은 동일한 형태의 스플래쉬 스플래쉬 가중치 패턴으로 페인팅되었지만, 질량은 우측 공이 좌측 공보다 5 배 크게 설정되어 있다. 질량을 제외하면, 스플래쉬 가중치 패턴 및 필드들의 설정은 동일하다.
장면 (b)는 두 개의 공을 충돌 물체로 지정하고 수면을 피충돌 물체로 지정한 다음, 두 개의 공을 수면에 떨어뜨리기 직전의 장면이다.
장면 (c)는 두 공이 입수한 다음의 수면에 생긴 스플래쉬를 관찰한 장면이다. 질량이 큰 우측 공에 의한 스플래쉬가 좌측 공에 의한 스플래쉬보다 훨씬 많다. 동일한 충돌 물체 크기, 동일한 스플래쉬 가중치 패턴 및 동일한 필드 설정에서 질량만 다르지만 질량에 따라 다른 크기의 스플래쉬가 쉽고 간단하면서도 사실적으로 표현됨을 알 수 있다.
도 6은 본 발명의 일 실시예에 따라, 충돌 물체와 피충돌 유체 표면이 충돌할 때에 충돌의 감지를 예시한 도면이다.
도 6을 참조하면, 충돌 물체(61)는 피충돌 물체(62)에 비스듬하게 접근하다가 피충돌 물체(62)에 충돌하면서 충돌 위치에서 스플래쉬를 발생한다. 그런데, 통상적으로 마야(Maya)와 같은 3D 어플리케이션이 어떤 관심의 대상이 되는 두 물체 사이의 거리, 충돌 감지와 같은 정보를 제공하지는 않으므로, 사용자는 그러한 이용하고자 하는 기능을 본 플러그인에 추가하여야 한다.
충돌의 감지를 위해 다양한 방식이 이용될 수 있지만, 도 6의 예시에서는 충돌 물체(61)의 중심을 추종하는 제1 원(63)과 피충돌 물체(62) 표면 상에 제2 원(64)을 각각 서로 평행하게 생성하고, 제1 원(63) 및 제2 원(64) 사이의 최소 거리를 추적하는 방식을 예시한다. 제1 원(63) 및 제2 원(64) 사이의 거리가 소정 허용치보다 작아지면 충돌이 발생한 것으로 판정한다. 나아가, 그 시점에 피충돌 물체(62) 표면의 제2 원(64)이 있는 위치에 앞서 설명한 바와 같이 에미터를 설정한다.
본 발명에서는, 피충돌 물체에 생성되는 제2 원(64)은 충돌의 감지 뿐 아니라, 에미터를 설정하고 결과적으로 스플래쉬를 적절하게 생성하는 데에도 역할을 할 수 있다.
다시 설명하자면, 에미터가 속하는 표면의 크기 제2 원(64)의 크기에 의해 결정되는데, 제2 원(64)의 크기는 제1 원(63)의 크기와 동일하고 또한 제1 원(63)의 크기는 충돌 물체(61)의 크기, 질량, 충돌 속도, 스플래쉬 가중치 패턴의 크기 등에 의해 결정된다. 현실적으로 충돌 물체의 크기, 질량, 충돌 속도 등의 요소들은 스플래쉬의 양상에 영향을 주는데, 본 발명의 실시예들에서는 이러한 요소들이 제1 원(63), 제2 원(64) 및 에미터가 속하는 표면의 크기에 순차적으로 영향을 준다. 따라서 본 발명은 충돌 물체에 크기, 질량, 충돌 속도를 설정하는 것만으로 자동적으로 그러한 설정이 스플래쉬의 양상에 반영된다.
이때, 제1 원(63)은, 먼저 피충돌 물체(62)의 표면 상에서 정규화된 법선 벡터를 생성하고 그 법선 벡터와 직교하면서 구형 충돌 물체(61)의 중심점을 지나는 평면이 구형 충돌 물체(61)의 표면와 교차함으로써 만들어지는 원에 의해 결정될 수 있다.
물론, 본 발명의 다른 실시예에서는 도 6과 같은 방식의 충돌 감지를 이용하지 않고 종래에 알려진 거리 기반(distance-based) 충돌 감지 또는 중첩 기반(intersection-based) 충돌 감지 알고리즘 등을 이용할 수도 있다. 또한 에미터의 설정은 충돌 시에 충돌 물체의 크기, 질량, 속도, 스플래쉬 가중치 패턴 등을 기초로 이루어질 수 있다.
도 7은 본 발명의 일 실시예에 따른 스플래쉬 시뮬레이션 장치를 예시한 블록도이다.
도 7을 참조하면, 스플래쉬 시뮬레이션 장치(70)는 충돌 설정부(71), 필드 설정부(72), 충돌 감지부(73), 에미터 설정부(74), 파티클 소멸 감지부(75) 및 사용자 인터페이스(76)를 포함하며, 부가적으로 3D 애니메이션부(77)가 외부적으로 스플래쉬 시뮬레이션 장치(70)에 연결될 수 있다. 실시예에 따라서는, 3D 애니메이션부(77)는 스플래쉬 시뮬레이션 장치(70) 내에 포함될 수도 있다.
스플래쉬 시뮬레이션 장치(70)는 자체적으로 3D 애니메이션을 처리할 수 있는 3D 애니메이션부(77)를 내장한 컴퓨터 시스템 또는 소프트웨어 어플리케이션으로 구현될 수도 있지만, 상용 3D 애니메이션 어플리케이션에 부가하여 동작하는 플러그인으로 구현될 수도 있다.
충돌 설정부(71)는 사용자 인터페이스(76)를 통해 사용자로부터 명령을 입력받아 각각의 충돌에 관하여 충돌 물체 및 피충돌 물체를 지정하고, 충돌 물체의 질량 및 크기를 지정하며, 부가적으로 충돌이 일어나는 위치, 충돌시의 속도 및 방향을 결정한다.
또한, 충돌 설정부(71)는 사용자 인터페이스(76)를 통해 사용자가 입력한 텍스쳐를 스플래쉬 가중치 패턴으로서 충돌 물체의 폴리곤에 적용하거나, 또는 사용자 인터페이스(76)를 통해 사용자가 브러시로 페인팅한 채색 데이터들을 스플래쉬 가중치 패턴으로서 충돌 물체의 폴리곤에 적용한다.
필드 설정부(72)는 충돌 시에 에미터에서 방출될 파티클들에 작용할 필드들을 설정한다. 예를 들어 중력 필드를 위해 파티클들의 질량을 설정하고, 에어 필드를 위해 바람의 크기, 감쇄, 방향, 속도 등을 설정하며, 난류 필드를 위해 난류의 강도 등을 설정하고, 방사형 필드를 위해 방사상으로 퍼지는 힘의 크기와 감쇄, 방향 등을 설정할 수 있다.
충돌 감지부(73)는 기존의 충돌 감지 기술과 같이 충돌 물체와 피충돌 물체 사이의 거리를 측정하거나 또는 충돌 물체의 폴리곤과 피충돌 물체의 폴리곤이 겹치는 것을 감지하여 충돌을 감지하거나, 또는 상술한 바와 같이 충돌 물체와 피충돌 물체의 표면 상에 각각 서로 평행하도록 생성한 두 개의 원들의 중심 사이의 거리가 소정의 허용치 이하로 줄어들었을 때에 충돌로 판정할 수도 있다.
에미터 설정부(74)는, 충돌 감지부(73)에서 충돌 물체와 피충돌 물체의 충돌을 감지하였을 때에, 충돌 위치의 소정 영역에 충돌 물체의 폴리곤에 적용된 스플래쉬 가중치 패턴에 기초하여 에미터의 속성을 설정한다. 이때, 에미터 설정부(74)는 충돌 물체의 질량, 크기, 충돌 속도, 스플래쉬 가중치 패턴의 크기 중 적어도 어느 한 가지 요소에 의해 에미터가 속하는 표면의 크기를 결정하고, 에미터 텍스쳐 레이트에 스플래쉬 가중치 패턴을 입력한다.
파티클 소멸 감지부(75)는 에미터에서 방출된 파티클들이 스플래쉬로서 운명을 다하였을 경우, 예를 들어 피충돌 물체인 수면에 떨어져 흡수되는 경우를 감지하여 그러한 파티클들을 소멸시킨다.
사용자는 사용자 인터페이스(76)를 통해 충돌 물체의 속성들을 설정하고 시뮬레이션된 스플래쉬를 시각적으로 확인할 수 있다. 또한 사용자는 사용자 인터페이스(76)를 통해, 필드 설정치들을 미리 입력할 수 있다.
3D 애니메이션부(77)는 에미터 속성 설정에 따라 에미터로부터 파티클들을 방출하고 필드 속성 설정에 따라 방출된 파티클들의 움직임을 결정하고, 그러한 파티클들의 생성, 움직임과 소멸을 통해 표현되는 3D 스플래쉬 애니메이션을 디스플레이를 통해 사용자에게 표시할 수 있다.
스플래쉬 시뮬레이션 장치(70)는 자체적으로 3D 애니메이션부(77)를 포함하여 구성될 수도 있지만, 별도로 존재하는 3D 애니메이션 어플리케이션에 플러그인으로서 구현될 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명이 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이와 균등하거나 또는 등가적인 변형 모두는 본 발명 사상의 범주에 속한다 할 것이다.
또한, 본 발명에 따른 장치는 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, 광학 디스크, 자기 테이프, 플로피 디스크, 하드 디스크, 비휘발성 메모리 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
70 스플래쉬 시뮬레이션 장치 71 충돌 설정부
72 필드 설정부 73 충돌 감지부
74 에미터 설정부 75 파티클 소멸 감지부
76 사용자 인터페이스 77 3D 애니메이션부

Claims (20)

  1. 폴리곤으로 구현된 충돌 물체 및 피충돌 물체의 충돌에 따른 스플래쉬 시뮬레이션 방법에 있어서,
    상기 충돌 물체에 스플래쉬 가중치들을 부가하는 단계;
    상기 충돌 물체와 상기 피충돌 물체의 충돌을 감지하는 단계;
    충돌이 감지되면, 파티클들을 방출하는 에미터의 속성들을 상기 스플래쉬 가중치들의 값을 기초로 설정하는 단계; 및
    상기 설정된 에미터 속성에 따라 상기 에미터로부터 파티클들을 방출함으로써 스플래쉬 효과를 얻는 단계를 포함하는 스플래쉬 시뮬레이션 방법.
  2. 청구항 1에 있어서, 상기 스플래쉬 효과를 얻는 단계에 앞서,
    상기 에미터에서 방출될 파티클들의 행동을 제어하는 적어도 하나의 필드의 속성을 설정하는 단계를 더 포함하며,
    상기 스플래쉬 효과는 상기 설정된 에미터 속성에 따라 상기 에미터로부터 파티클들을 방출하고 방출된 파티클들의 행동을 상기 설정된 필드의 속성에 따라 제어함으로써 얻어지는 것을 특징으로 하는 스플래쉬 시뮬레이션 방법.
  3. 청구항 1에 있어서, 상기 스플래쉬 가중치들은 사용자가 충돌 물체의 표면에 매핑되는 값으로써 부가되거나, 또는 사용자가 선택한 텍스쳐의 색상 값으로써 부가되는 것을 특징으로 하는 스플래쉬 시뮬레이션 방법.
  4. 청구항 1에 있어서, 상기 에미터가 속하는 표면의 크기는 상기 충돌 물체의 크기, 질량, 충돌 속도, 상기 스플래쉬 가중치들의 전체 패턴의 크기 중 적어도 어느 한 요소에 기초하여 결정되는 것을 특징으로 하는 스플래쉬 시뮬레이션 방법.
  5. 청구항 1에 있어서, 상기 충돌 물체와 상기 피충돌 물체의 충돌을 감지하는 단계는,
    상기 피충돌 물체의 표면에 평행하도록 상기 충돌 물체에 생성한 제1 원을 상기 피충돌 물체의 표면에 투영하여 제2 원을 생성하는 단계; 및
    상기 제1 원 및 제2 원 각각의 중심 사이의 거리가 소정의 허용치 이하로 되면 상기 충돌 물체와 상기 피충돌 물체 사이의 충돌이 있는 것으로 판정하는 단계를 포함하는 것을 특징으로 하는 스플래쉬 시뮬레이션 방법.
  6. 청구항 5에 있어서, 상기 제1 원은 상기 피충돌 물체의 표면의 법선 벡터와 직교하면서 상기 충돌 물체의 중심점을 지나는 평면이 상기 충돌 물체의 표면와 교차함으로써 생성되는 것을 특징으로 하는 스플래쉬 시뮬레이션 방법.
  7. 청구항 5에 있어서, 상기 에미터가 속하는 표면의 크기는 상기 제2 원의 반지름에 비례하는 값으로 설정되는 것을 특징으로 하는 스플래쉬 시뮬레이션 방법.
  8. 청구항 1에 있어서, 상기 에미터를 설정하는 단계는,
    상기 스플래쉬 가중치들의 패턴을 상기 에미터의 에미터 텍스쳐 레이트로 설정하는 단계를 포함하는 것을 특징으로 하는 스플래쉬 시뮬레이션 방법.
  9. 청구항 1에 있어서, 상기 충돌 물체와 상기 피충돌 물체가 각각 복수일 경우에는, 상기 충돌 물체 중 하나와 상기 피충돌 물체 중 하나로 이루어진 쌍을 서로소 합집합(disjoint union)의 원소로 정함으로써 각각의 충돌을 구별하는 것을 특징으로 하는 스플래쉬 시뮬레이션 방법.
  10. 청구항 1에 있어서, 상기 충돌 물체는 구(sphere)인 것을 특징으로 하는 스플래쉬 시뮬레이션 방법.
  11. 청구항 1에 있어서, 상기 방출된 파티클들이 상기 피충돌 물체 표면 밑에 배치된 소멸 감지면과 충돌할 때에, 상기 파티클들을 소멸시키는 단계를 더 포함하는 것을 특징으로 하는 스플래쉬 시뮬레이션 방법.
  12. 폴리곤으로 구현된 충돌 물체 및 피충돌 물체의 충돌에 따른 스플래쉬 시뮬레이션 방법에 있어서,
    상기 충돌 물체의 충돌 부위에 생성된 비가시성의 충돌 구체에 스플래쉬 가중치들을 부가하는 단계;
    상기 충돌 구체와 상기 피충돌 물체의 충돌을 감지하는 단계;
    충돌이 감지되면, 파티클들을 방출하는 에미터의 속성들을 상기 스플래쉬 가중치들의 값을 기초로 설정하는 단계; 및
    상기 설정된 에미터 속성에 따라 상기 에미터로부터 파티클들을 방출함으로써 스플래쉬 효과를 얻는 단계를 포함하는 스플래쉬 시뮬레이션 방법.
  13. 컴퓨터 장치에서 청구항 1 내지 청구항 12 중 어느 한 청구항의 스플래쉬 시뮬레이션 방법의 각 단계들을 실행시키기 위한 프로그램을 기록한 컴퓨터 장치로 읽을 수 있는 기록 매체.
  14. 폴리곤으로 구현된 충돌 물체 및 피충돌 물체의 충돌에 따른 스플래쉬 시뮬레이션을 수행하는 스플래쉬 시뮬레이션 장치로서,
    사용자 인터페이스를 통해 입력된 사용자의 지시에 따라 상기 충돌 물체에 스플래쉬 가중치들을 부가하고, 상기 충돌 물체의 질량과 크기를 설정하는 충돌 설정부;
    상기 충돌 물체와 상기 피충돌 물체의 충돌을 감지하는 충돌 감지부; 및
    충돌이 감지되면, 파티클들을 방출하는 에미터의 속성들을 상기 스플래쉬 가중치들의 값을 기초로 설정하는 에미터 설정부를 포함하는 스플래쉬 시뮬레이션 장치.
  15. 청구항 14에 있어서, 상기 사용자 인터페이스를 통해 입력된 사용자의 지시에 따라, 상기 에미터에서 방출될 파티클들의 행동을 제어하는 적어도 하나의 필드의 속성을 설정하는 필드 설정부를 더 포함하는 것을 특징으로 하는 스플래쉬 시뮬레이션 장치.
  16. 청구항 15에 있어서, 상기 설정된 에미터 속성에 따라 상기 에미터로부터 파티클들을 방출시키고, 상기 설정된 필드의 속성에 따라 상기 방출된 파티클들의 행동을 제어하는 3D 애니메이션부를 더 포함하는 것을 특징으로 하는 스플래쉬 시뮬레이션 장치.
  17. 청구항 14에 있어서, 상기 에미터 설정부는,
    상기 충돌 물체의 크기, 질량, 충돌 속도, 상기 스플래쉬 가중치들의 전체 패턴의 크기 중 적어도 어느 한 요소에 기초하여 상기 에미터가 속하는 표면의 크기를 결정하도록 동작하는 것을 특징으로 하는 스플래쉬 시뮬레이션 장치.
  18. 청구항 14에 있어서, 상기 에미터 설정부는,
    상기 스플래쉬 가중치들의 패턴을 상기 에미터의 에미터 텍스쳐 레이트로 설정하도록 동작하는 것을 특징으로 하는 스플래쉬 시뮬레이션 장치.
  19. 청구항 14에 있어서, 상기 방출된 파티클들이 상기 피충돌 물체 표면 밑에 배치된 소멸 감지면과 충돌하는 것을 감지하고, 상기 소멸 감지면과 충돌한 파티클들을 소멸시키도록 동작하는 파티클 소멸 감지부를 더 포함하는 것을 특징으로 하는 스플래쉬 시뮬레이션 장치.
  20. 청구항 20은(는) 설정등록료 납부시 포기되었습니다.
    컴퓨터 장치를 청구항 14 내지 청구항 19 중 어느 한 청구항의 스플래쉬 시뮬레이션 장치로서 기능시키기 위한 프로그램을 기록한 컴퓨터 장치로 읽을 수 있는 기록 매체.
KR1020100077394A 2010-08-11 2010-08-11 충돌 스플래쉬 시뮬레이션 방법 및 장치 KR101068673B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100077394A KR101068673B1 (ko) 2010-08-11 2010-08-11 충돌 스플래쉬 시뮬레이션 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100077394A KR101068673B1 (ko) 2010-08-11 2010-08-11 충돌 스플래쉬 시뮬레이션 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101068673B1 true KR101068673B1 (ko) 2011-09-28

Family

ID=44958042

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100077394A KR101068673B1 (ko) 2010-08-11 2010-08-11 충돌 스플래쉬 시뮬레이션 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101068673B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040800A (ja) 2006-08-07 2008-02-21 Konami Digital Entertainment:Kk シミュレーション装置、シミュレーション方法、ならびに、プログラム
KR20100041510A (ko) * 2008-10-14 2010-04-22 한국전자통신연구원 파티클 유체 시뮬레이션에서의 강성체 상호작용 처리 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008040800A (ja) 2006-08-07 2008-02-21 Konami Digital Entertainment:Kk シミュレーション装置、シミュレーション方法、ならびに、プログラム
KR20100041510A (ko) * 2008-10-14 2010-04-22 한국전자통신연구원 파티클 유체 시뮬레이션에서의 강성체 상호작용 처리 방법

Similar Documents

Publication Publication Date Title
US9990816B2 (en) Virtual sensor in a virtual environment
US9342918B2 (en) System and method for using indirect texturing to efficiently simulate and image surface coatings and other effects
CN109857259B (zh) 碰撞体交互控制方法及装置、电子设备和存储介质
Chen et al. A heuristic approach to the simulation of water drops and flows on glass panes
KR101068673B1 (ko) 충돌 스플래쉬 시뮬레이션 방법 및 장치
CN105303601A (zh) 一种基于粒子系统的喷泉模拟实现方法
JP6486348B2 (ja) パーティクルを使用するプロシージャルテクスチャ生成システムおよび方法
García-Feal et al. Advanced fluid visualization with DualSPHysics and Blender
US12001656B2 (en) Digital imaging of granular media in graphics applications
Djado et al. Particle‐based drop animation on meshes in real time
Ashraf et al. Dust and water splashing models for hopping figures
US11417043B2 (en) Method for generating simulations of thin film interfaces for improved animation
Abdillah et al. Optimization of virtual reality-based flood simulation by manipulating particle system
Jung et al. GPU-based real-time on-surface droplet flow in X3D
Lei et al. Haptic decorating on the surface of virtual clay model
Huang et al. Study and implement about rendering of clouds in flight simulation
Guruprasad Object 3D Effect With Photometric Lighting With Real-Time View
McGuire A real-time, controllable simulator for plausible smoke
CN116736977A (zh) 基于虚拟仿真的火势模拟方法、设备及介质
Somasekaran Using Particle Systems to Simulate Real-Time Fire
JP5267905B2 (ja) 音データ生成装置およびプログラム
Lundberg Art Directed Fluid Flow With Secondary Water Effects
WO2021076125A1 (en) Training using rendered images
CN116912380A (zh) 一种基于尼亚加拉粒子系统的雨水动态模拟方法及装置
Puig-Centelles et al. Optimizing the management and rendering of rain

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140827

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150826

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee