KR100568563B1 - 입자동역학 해석기법과 볼륨렌더링 기법을 이용한 실시간 유체유동 시뮬레이션 및 렌더링 방법 - Google Patents

입자동역학 해석기법과 볼륨렌더링 기법을 이용한 실시간 유체유동 시뮬레이션 및 렌더링 방법 Download PDF

Info

Publication number
KR100568563B1
KR100568563B1 KR1020030077573A KR20030077573A KR100568563B1 KR 100568563 B1 KR100568563 B1 KR 100568563B1 KR 1020030077573 A KR1020030077573 A KR 1020030077573A KR 20030077573 A KR20030077573 A KR 20030077573A KR 100568563 B1 KR100568563 B1 KR 100568563B1
Authority
KR
South Korea
Prior art keywords
particles
fluid
rendering
simulation
particle
Prior art date
Application number
KR1020030077573A
Other languages
English (en)
Other versions
KR20050042916A (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 KR1020030077573A priority Critical patent/KR100568563B1/ko
Publication of KR20050042916A publication Critical patent/KR20050042916A/ko
Application granted granted Critical
Publication of KR100568563B1 publication Critical patent/KR100568563B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Generation (AREA)

Abstract

개시된 유체운동 시뮬레이션 및 렌더링 방법은, 입자 동역학 해석방법에 기초하여 유체 입자의 속도와 위치 등을 산출하는 시뮬레이션 단계와, 시뮬레이션 단계에서 얻어진 입자의 속도와 위치를 근거로 시간의 경과에 따른 입자의 분포 상태를 구하고 해당 유체가 빛이 투과되는 물체라는 가정 하에서 그 입자들로 구성된 유체의 입체감을 표현하기 위한 변수들을 구하여 렌더링을 수행하는 볼륨 렌더링 단계를 포함한다. 이와 같은 방법에 의하면, 입자시뮬레이션 단계와 렌더링 단계에 소요되는 시간이 기존에 비해 상당히 단축되기 때문에, 유체의 복잡한 운동을 묘사하는 동영상도 실시간으로 구현할 수 있다.

Description

입자동역학 해석기법과 볼륨렌더링 기법을 이용한 실시간 유체유동 시뮬레이션 및 렌더링 방법{A real-time simulation and rendering method for fluid flows using particle dynamics and volume rendering techniques}
도 1은 본 발명에 따른 유체 동영상 구현방법을 나타낸 플로우 챠트,
도 2는 Lennard-Jones potential과 적당한 간격에서 입자들 간에 작용하는 힘을 나타낸 그래프,
도 3 내지 도 5는 입자간 상호 작용 계산을 위한 3가지 접근 방식을 설명하기 위한 도면,
도 6 및 도 7은 입자의 개수 조정에 따라 렌더링 결과가 달라지는 예를 보인 도면,
도 8 및 도 9는 입자의 반지름 파라미터를 조정했을 때 렌더링 후의 결과를 보인 도면,
도 10과 도 11은 라운드 팩터를 조정하여 렌더링 후의 결과를 변화시킨 예를 보인 도면,
도 12와 도 13은 퐁 조명 모델의 각 변수를 설명하기 위한 도면,
도 14a 내지 도 18은 본 발명의 유체 동영상 구현방법에 의해 잔에 부어지는 물이 표현된 것을 보인 도면,
도 19는 본 발명의 유체 동영상 구현방법에 의해 표현된 진흙이 벽면을 타고 흘러내리는 효과를 보인 도면,
도 20과 도 21은 본 발명의 유체 동영상 구현방법에 의해 묘사된 불의 초기 모습과 연기가 많이 발생한 후의 모습을 각각 보인 도면.
본 발명은 유체 동영상 구현방법에 관한 것으로서, 더 상세하게는 입자시뮬레이션과 볼륨렌더링을 이용하여 유체의 움직임을 실시간으로 구현하는 방법에 관한 것이다.
최근 컴퓨터그래픽, 가상현실, 애니메이션 분야에 있어서 활발한 연구가 이루어지는 분야 중의 하나는 물이나 공기, 화염, 연기 및 눈과 비 등의 불규칙한 형태의 유체 자유운동을 사실감 있게 실제적으로 구현하는 분야이다. 그런데, 이러한 유체의 자유운동은 그 형태와 움직임이 매우 복잡하고 다양하여 기존의 수작업으로는 이를 손쉽게 표현하는데 한계가 존재하며, 정교한 표현을 위해서는 상당히 많은 노력과 경험이 필요하고 대규모의 비용이 소요된다. 그리고, 유체운동 시뮬레이션에는 기술적으로 다음과 같은 몇 가지 제약 요인들이 존재한다.
첫 번째 제약 요인은 유체 시뮬레이션과 관련된 연산 시간이다. 실시간이 아닌 경우의 유체 시뮬레이션을 위해 기존에는 네비어-스토크스(Navier-Stokes) 방정식을 이용한 계산 방식이 많이 쓰였다. 네비어-스토크스 방정식을 기반으로 하는 유동해석 기술 중 자유표면의 운동을 모사하는 기술은 크게 고정격자법 (fixed grid method)과 이동격자법 (moving grid method)이 주로 사용되는데, 각각 장단점을 가지고 있다. 이동격자법은 움직이는 유체 경계면의 위치가 기하학적으로 명료하게 표현되는 대신 복잡한 형상의 영역을 움직이는 유체의 운동을 표현하기 위해서는 지나치게 많은 격자와 오랜 계산시간을 필요로 하는 단점이 있다. 이에 반해 고정격자법은 계산영역 전체를 초기에 미리 정해진 해상도로 분해하여 구성한 뒤 유체가 움직임에 따라 각 미소체적이 유체에 의해 점유되는 부피분율을 시간에 따라 변화시키는 방식으로 유체의 운동을 표현하게 된다. 이 방법에 더불어 이동하는 대상물과 유체의 상호작용을 효과적으로 고려하기 위해 고체분율(solid fraction)을 정의하여 주어진 체적 내에서 고체가 차지하는 부피분율을 시간에 따라 변화시킴으로써 고체의 운동 및 그에 따른 유체의 교란현상을 보다 효율적으로 모사하는 방법이 개발되어 사용되고 있다. 그러나, 이 방법도 1프레임(frame)당 몇 분 정도의 연산 시간이 소요되므로 실시간 시뮬레이션에는 적합하지 않다.
두 번째 제약 요인은 렌더링 시간과 관련된 제약이다. 일반적인 광자 사상(photon mapping)등을 이용한 전역적 조명(global illumination)이나 광선추적법(Ray Tracing) 등의 방법은 사실적인 렌더링을 위해 계산 시간이 상당히 많이 소요된다. 이러한 렌더링 기법들은 3D Max나 Maya 등의 상용 소프트웨어에 많이 채택되고 있는데, 실제로 이런 소프트웨어를 사용하여 시뮬레이션 및 렌더링을 수행할 경우 오랜 시간이 소요된다. 예를 들어 이러한 소프트웨어를 사용하여 640*480 해상도의 유체효과 동영상 5초 분량을 만드는데 무려 20분이나 소요되며, 유체의 움직임이 복잡한 경우에는 몇 시간 이상이 소요된다. 이러한 두 제약 요인을 해결코자 최근의 DirectX SDK에서는 파동전파(wave propagation), 텍스쳐 사상(texture mapping), 높이장(height-field)과 같은 기법을 사용해서 실시간 유체 시뮬레이션을 시도하고 있지만, 이 방식은 표현의 범위가 매우 제한적이며 일반적인 유체 운동을 묘사하기에는 부족하여 아주 특정한 응용에만 적용이 되는 단점이 있다. 한편, 마야(Maya)나 맥스(Max) 등은 표준 툴의 플러그인 개념으로 에어(Air)와 클라우드(Cloud) 등과 같이 물리학을 기반으로 3차원의 대기와 구름 같은 환경효과를 만들어 주는 플러그인이 만들어져 있다. 이러한 플러그인 소프트웨어를 사용할 경우 특정한 몇 가지 유체 관련 효과를 사실적으로 표현할 수 있으나, 그러한 실사적인 영상 표현을 위해 소요되는 데이터 량이 매우 방대하므로 실시간 랜더링에는 적합하지 않다. 그 예로서 Nextlimit, Inc.에서 개발한 RealFlow, RealWave, RealTracer는 플러그인 형식으로 맥스, 마야, 라이트웨이브등에 소프트웨어에서 모두 사용이 가능한 유체관련 렌더링 소프트웨어이다. 최근 출시된 Maya 4.5의 fluid 모듈 역시 우수한 성능을 보여주고 있다. 그러나 이러한 프로그램들은 영상결과물의 품질이 우수하며 호환성이 뛰어나지만 기본적으로 입자(particle) 방식만을 채택하고 있으므로 모든 물리적 범위의 유동현상에 폭넓게 적용되기에 무리가 따르며, 실시간 렌더링을 지원하지 않는다. 실시간 가상현실 렌더링 툴(tool)로는 Java3D, OpenGL, DirectX 등의 다양한 표준들이 제작되고 있으며, 유체시뮬레이션을 적용한 일부 기능이 구현이 되고 있으나, 이러한 기술들은 그 결과물의 정밀도와 사실성이 현저히 떨어져 높은 영상품질을 요구하는 분야에는 적용될 수 없다. 따라서, 복잡한 유체유동이나 화염 등과 같이 부정형 유동을 실시간으로 효과적으로 시뮬레이션하기 위한 볼륨 렌더링 솔루션은 아직까지 개발 단계에 머무르고 있다. 지금까지 개발된 실시간용 유체시뮬레이션 렌더링 기술은 그 품질은 매우 원시적인 수준이며 입자 개수가 매우 제한적이어서 충분한 사실감을 구현할 수 없는 상태이다.
결과적으로 기존의 방법들은 시뮬레이션과 렌더링 시에 각각의 연산 시간 제약 및 물리적 근거의 결여로 인하여 기존의 방법을 사용하여 다양한 효과를 만들어 내는 것이 많은 시간을 요구할 뿐만 아니라 성공적인 구현이 어렵다. 또한, 사용자의 입력을 받아 실시간으로 반응하는 유동현상의 경우 기존의 어떤 방법을 사용하더라도 효과적인 표현이 불가능하다. 결국 복잡한 유체유동이나 화염 등과 같이 부정형 유동을 실시간으로 사용자의 상호작용을 입력으로 받으면서 애니메이션하기 위한 가상 현실 솔루션은 기존의 방법으로는 구현이 어렵다.
본 발명은 상기의 문제점을 감안하여 창출된 것으로서, 유체 자유 운동을 실시간으로 신속하게 구현할 수 있도록 개선된 유체운동 시뮬레이션 및 렌더링 방법을 제공하는데 그 목적이 있다.
상기의 목적을 달성하기 위한 본 발명의 유체운동 시뮬레이션 및 렌더링 방법은, 입자 동역학 해석방법에 기초하여 유체 입자의 속도와 위치 등을 산출하는 시뮬레이션 단계와, 상기 시뮬레이션 단계에서 얻어진 입자의 속도와 위치를 근거 로 시간의 경과에 따른 입자의 분포 상태를 구하고, 해당 유체가 빛이 투과되는 물체라는 가정 하에서 그 입자들로 구성된 유체의 입체감을 표현하기 위한 변수들을 구하여 렌더링을 수행하는 볼륨 렌더링 단계를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하면서 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.
본 발명에서는 다양한 물리적 영역의 유동현상 중 특히, 액체 및 기체, 화염 등의 불규칙한 운동을 일관된 방법으로 해석하고 이를 신속한 실시간 렌더링 환경에 접목하여 효율적으로 가시화하여 일체화한 실시간 시뮬레이션 프레임워크(framework) 을 제안하고자 한다. 본 방법은 인터액티브 속도와 일반적인 실시간 응용에서 적정한 이미지 품질을 보여준다.
본 발명의 방법은 도 1에 나타낸 바와 같이 크게 3단계로 나뉘어 진행되는데, 입자상호작용을 모델링하여 입자의 충돌 후 속도와 위치를 구하는 시뮬레이션 단계(S1)와, 그 입자들로 이루어진 유체의 입체감을 나타내기 위한 데이터를 산출하여 볼륨렌더링을 수행하는 단계(S2) 및, 보다 사실감 있는 유동효과를 부여하기 위해 사용자로 하여금 상기 시뮬레이션 단계를 위한 각종 파라미터를 조정할 수 있도록 해주는 유동효과 조정단계(S3)가 그것이다.
우선, 시뮬레이션 단계에서는 입자동역학(Particle dynamics)에 기반한 입자동역학 해석 방법을 시뮬레이션 방법으로 사용하였다. 이 방법은 물리적으로는 훨씬 단순한 형태의 운동방정식을 채택함으로써 비교적 쉬운 방식으로 입자의 유동을 빠르게 해석할 수 있다. 입자 방식의 장단점을 요약하면, 입자적인 특징이 두드러 진 시스템의 해석에 있어서는 상대적으로 빠른 연산이 가능하다. 실시간이 아닌 분야에서는 입자동역학을 적용한 시뮬레이션 및 렌더링 기법들이 기존의 소프트웨어에서도 사용되고 있으나, 입자의 성질을 연속적인 덩어리의 움직임으로 표현하는 부분에 있어 많은 문제점들이 발생한다. 물방울처럼 서로 떨어져 있는 입자의 움직임은 잘 표현할 수 있으나 한 덩어리로 움직이는 유체의 운동을 사실적으로 표현하기 위해서는 매우 많은 개수의 입자가 사용되어야 하며, 입자의 개수가 증가함에 따라 연산시간이 급격히 상승하는 문제가 존재한다.
이러한 입자 동역학 방식의 단점인 제한된 개수의 입자 혹은 격자점의 데이터로 인한 사실감의 결여를 보완하여 부드럽고 매끄러우면서도 세밀한 표면을 표현하기 위해서 본 발명에서는 상기한 볼륨 렌더링 단계를 복셀(voxel) 구조에 기반한 3차원 실시간 예비 적분 볼륨 렌더링(pre-integrated volume rendering) 방법을 사용하여 수행함으로써 보다 신속하고도 사실적인 영상을 얻을 수 있었다. 이 과정에서 입자 데이터를 볼륨 데이터로 변환하기 위해 셀(cell) 기법을 사용하였다. 이것을 기반으로 하여 시뮬레이션과 렌더링의 다양한 파라미터 조절과 다중 OTF (Opacity Transfer Function, 불투명도 전이 함수)의 사용을 병행하면 다양한 종류의 유체의 유동 표현이 실시간으로 가능해진다. 이와 같이 본 발명에서 응용한 볼륨 렌더링 방법은 Levoy에 의해 1990년에 제안된 ray casting 방법으로부터 시작되었다. 이 방법은 많은 양의 볼륨 데이터를 계산하기 때문에 속도가 느려서 공간 도약법과 조기 광선 중단법을 통해 가속화를 할 수 있다. 최근의 그래픽스 하드웨어의 발달로 실시간 볼륨 렌더링을 위한 하드웨어 텍스쳐를 이용한 가속법이 많이 연구되고 있다. Engel은 2001년에 하드웨어 텍스쳐를 이용한 가속화 방법에 더하여 OTF의 문제점을 보완한 pre-integration 방법을 제안하였다. 본 발명의 렌더링 방법은 기본적으로 이 Engel의 방법에 기초하고 있다.
이하, 상기한 시뮬레이션 단계부터 차례로 설명하기로 한다. 먼저, 본 발명에서는 입자동역학을 기본으로 시뮬레이션을 수행하였다. 입자에 기반한 동역학은 구형의 입자를 물체를 구성하는 기본 요소로 가정하고, 그 입자들간의 상호 작용을 모델링하는 것이다. 이것은 고체, 유체, 기체 상태 모두에 적용이 가능한 모델로서 가장 기본적인 모델이다.
N개의 구형 대칭인 입자들에 대해서 입자 내부의 위치함수는 E(rN)으로 표시될 수 있다. 여기서 rN은 입자들의 질량의 중심의 위치를 나타내는 벡터들의 집합으로 rN = {r1, r2, r3, ... rN} 표시될 수 있다. 총 입자간 위치에너지 E(rN)은 교환 법칙에 따라 각각의 입자들 간의 상호 작용의 합으로 다음의 수학식 1과 같이 구해질 수 있다.
Figure 112003041556301-pat00001
여기서, 각 기호들의 의미는 다음과 같다.
ri : 입자 i의 위치 벡터
rN : {r1, r2, r3, ... rN}
rij : 입자 i와 j간의 거리
u(rij) : 입자 i와 j 간의 기본적인 전위 에너지
입자 i와 j 간의 기본적인 위치에너지 u(rij)는 Lennard-Jones (LJ) potential을 이용하였다. 입자들 간에 작용하는 힘은 가까운 거리 내의 입자들 사이에서는 반발력이 작용하고, 어느 거리 이상에 위치한 입자들 사이에서는 인력이 작용하게 된다. 거리 rij 만큼 떨어진 입자 i와 j에 대해서 두 입자 사이의 위치에너지(potential energy) u(rij) 는 하기의 수학식 2와 같이 표현된다..
Figure 112003041556301-pat00002
여기서, 각 기호들의 의미는 다음과 같다.
rij = 입자 i와 j간의 거리,
Figure 112003041556301-pat00003
= 상호작용 강도를 나타내는 계수,
Figure 112003041556301-pat00004
= 길이 스케일,
u= 위치에너지
이때, 입자 i와 j 사이에 작용하는 힘 fij는 하기의 수학식 3과 같이 계산할 수 있다.
Figure 112003041556301-pat00005
입자들 간의 포텐샬 에너지에 의한 힘은 주어진 포텐샬 장 내에서 보존되므로, 입자 i에 작용하는 포텔샬 에너지에 의한 힘 Fi,p는 다음의 수학식 4와 같이 계산된다.
Figure 112003041556301-pat00006
여기서 mi는 입자 i의 질량을 나타낸다.
도 2는 Lennard-Jones potential과 적당한 간격에서 입자들 간에 작용하는 힘을 나타낸 그래프이다. 입자들 간에 작용하는 힘의 부호가 양에서 음으로 바뀌는 위치는 입자의 반지름으로 생각될 수 있다.
그리고, 입자 i에 작용하는 마찰력 Fi,f는 수학식 5와 같이 주어진다.
Figure 112003041556301-pat00007
여기서,
Figure 112003041556301-pat00008
는 마찰계수이다.
결과적으로 입자 i에 작용하는 힘들을 합한 운동 방정식은 아래의 수학식 6 과 같이 쓰여질 수 있다.
Figure 112003041556301-pat00009
이상의 식들은 입자를 연구(soft sphere)로 가정한 것으로, 이것은 입자의 지름보다 더 큰 거리만큼 떨어져 있는 입자들간의 상호작용을 고려할 때에는 유용하다. 그러나, 만일 입자들을 강구(hard sphere)로 가정하면, 입자들간의 충돌 후의 입자들의 속도가 수학식 7과 같이 주어진다.
Figure 112003041556301-pat00010
여기서, ui, vi, wi는 입자 i의 x, y, z 방향 속도 성분을 나타내며, m은 질량, e는 입자와 입자간의 복원계수를 나타낸다.
다음은 입자와 벽간의 상호작용에 대해서 고려한다.
입자 i가 벽k에 충돌할 때 입자의 속도는 벽에 평행한 성분과 수직한 성분으로 나뉠 수 있다. 그 중 수직한 성분의 x, y, z 성분인 Vn = un,i i +vn,i j + w n,i k은 다음과 같은 식으로부터 구해진다.
Figure 112003041556301-pat00011
여기서 ak, bk, ck는 벽 k를 나타내는 아래와 같은 평면의 방정식의 계수이다.
Figure 112003041556301-pat00012
또한, 벽과 평행한 접선 방향의 속도 성분 Vt = ut,i i +vt,i j + wt,i k 는 수학식 10과 같이 입자의 속도에서 수직 방향 성분을 빼주어서 구할 수 있다.
Figure 112003041556301-pat00013
그리고, 입자 i와 벽 k의 충돌 후에는 수직 속도의 방향은 반대가 되고, 그 크기는 복원계수 e만큼 감쇄되며, 접선 속도는 마찰 계수
Figure 112003041556301-pat00014
에 영향을 받게 된다. 따라서 다음의 수학식 11과 같이 표현된다.
Figure 112003041556301-pat00015
이러한 충돌 후의 속도 성분을 사용해서 벽에 부딪히는 입자들의 운동이 모델링되어 묘사될 수 있게 된다. 그리고, 이 속도 성분을 시간에 대해 적분하면 입자의 위치 데이터를 얻을 수 있게 되어, 다음의 렌더링 단계에서 임의의 시간과 위치에서의 유체 입자들의 분포를 예측할 수 있게 된다.
이러한 충돌 후의 속도와 위치 정보를 구하는 식을 바탕으로 입자 상호간의 작용을 계산하게 되는데, 이러한 입자간의 상호 작용 계산은 전체 시뮬레이션 시간의 큰 부분을 차지한다. 이러한 상호 작용 계산을 위한 기존의 접근 방법으로는 크게 세 가지 방식이 있다.
첫 번째로, 도 3에 개념적으로 도시된 바와 같이 각 입자들 간의 서로의 상호 작용을 모두 계산하는 방법이 있다. 이 방식은 구현이 가장 간단하긴 하지만, 상호 작용하는 범위가 우리가 관심 있는 영역의 선형 스케일보다 매우 작을 경우 불필요한 계산량이 많아져서 비효율적이다.
두 번째로, 도 4에 도시된 바와 같은 셀 분할(cell subdivision) 방식이 있다. 이것은, 우리가 시뮬레이션을 원하는 영역을 작은 셀의 집합으로 나누는 것으로, 입자들간의 상호 작용은 한 셀 내부에 입자 들 간에만 일어나거나 혹은, 바로 주위의 셀을 포함한 입자들 사이에서만 일어난다. 이 경우에 3D시뮬레이션의 경우 대칭성에 의해서 14개의 이웃하는 cell만 고려하면 된다.
마지막으로, 도 5에 도시된 바와 같은 인접 리스트 방식(Neighbor-list method)이 있다. 상기한 셀 분할 방식에 의하면, 셀 내부의 약 16% 정도의 입자만이 실제 상호 작용에 영향을 미친다. 그러나, 이 방식은 각 입자마다 상호작용이 일어날 가능성이 있는 입자들의 리스트를 유지하는 방식으로 기본적으로 셀 분할 방식에 의해 찾아진 입자들로 리스트를 초기화하고, 타임 스텝을 전진해나가면서 리스트를 지속적으로 수정해나가는 방법이다.
본 발명에서는 도 4에 도시된 셀 분할 방식을 기초로 하여, 입자 사이의 연계 가능성이 큰 인접범위 내의 섹션에 대해서 연산을 우선적으로 수행하고, 인접한 셀이 아닌 부분에 대해서는 도 5에 도시된 인접리스트 방식을 응용하여 영향력이 미치는 반경을 별도로 설정하고 그 반경 내에 존재하는 입자들 사이의 2차적인 상 호 작용을 고려하는 영역분할 방식(segmentation method)을 사용하였다. 이 반경은 셀의 기본 크기의 상대적인 비율의 형태로 정의되는 라운트 팩터(round factor)를 이용하여 변경할 수 있다. 이 방법을 사용할 경우 셀 방식의 높은 효율성을 유지하면서도 비교적 넓은 범위의 입자들 사이의 상호작용을 고려할 수 있어 높은 사실성을 얻을 수 있다.
이와 같은 입자 시뮬레이션 과정을 통해 입자들 상호간의 작용을 모델링한 후에는 볼륨렌더링을 수행하는 단계로 들어간다. 볼륨 렌더링은 유체 입자가 빛을 투과할 수 있는 물체로 가정하고 밝기, 불투명도, 색깔 등을 산출하여 입체감을 부여하는 과정이다.
공간 상을 자유롭게 움직이는 입자는 기본적으로 점 자료 구조(point data structure)의 형태를 가지고 있다. 이 데이터를 볼륨 렌더링에 적용하기 위해서는 먼저, 공간을 일정한 단위 격자 형태로 세분한다. 그리고, 각 격자에 해당하는 공간에 포함된 입자들의 개수를 세면, 그 개수는 단위 체적당 입자의 개수인 밀도에 비례한다고 볼 수 있다. 이 밀도 값을 단위 체적을 대표하는 복셀의 데이터라고 생각할 수 있으므로, 입자의 개수에 0에서 1까지의 실수값을 적절히 비례하게 대응시킨다면, 볼륨 렌더링을 위한 데이터가 만들어지게 된다.
여기서는 예비 적분(Pre-integration)을 이용한 볼륨 렌더링이 이루어지는데, 기본적인 볼륨 렌더링 식은 다음과 같은 형태로 주어진다.
먼저, 최종밝기값 I는 하기의 수학식 12와 같이 표현된다.
Figure 112003041556301-pat00016
Figure 112003041556301-pat00017
: 시점으로부터의 거리,
x: 3차원 공간 좌표,
s: 연속적인 스칼라 장,
Figure 112003041556301-pat00018
: 기본 칼라,
Figure 112003041556301-pat00019
: 감쇄도,
D: 시점으로부터의 최대 거리.
여기서, d = D/n이라고 할 때, 수학식 4의 지수 함수 내부는 다음의 수학식 13과 같이 근사될 수 있다.
Figure 112003041556301-pat00020
여기서
Figure 112003041556301-pat00021
는 i번째 광선 부분의 불투명도를 나타낸다.
결국, i 번째 광선 부분(ray segment) 의 불투명도
Figure 112003041556301-pat00022
는 다음의 수학식 14와 같이 근사될 수 있다.
Figure 112003041556301-pat00023
그리고, 수학식 12에서 i번째 광선 부분에서 방출되는 색깔
Figure 112003041556301-pat00024
는 수학식 15로 근사될 수 있다.
Figure 112003041556301-pat00025
결국, 수학식 12의 적분은 다음의 수학식 16과 같이 정리될 수 있다.
Figure 112003041556301-pat00026
따라서, 후면-전면 합성 알고리즘(back-to-front compositing algorithm) 은 다음의 수학식17과 같이 계산된다.
Figure 112003041556301-pat00027
Figure 112003041556301-pat00028
은 n번째 광선 부분에서부터 i번째 광선 부분까지의 밝기의 총합을 나타낸다.
또한,
Figure 112003041556301-pat00029
Figure 112003041556301-pat00030
로 교체될 수 있으므로, i번째 광선 부분에서 방출되는 색깔
Figure 112003041556301-pat00031
는 수학식 18과 같이 근사될 수 있다. 여기서
Figure 112003041556301-pat00032
로 정의된다.
Figure 112003041556301-pat00033
위 식을 이용하면, 수학식 12의 적분은 다음의 수학식 19와 같이 더 일반화된 형태로 표시될 수 있다.
Figure 112003041556301-pat00034
이 경우에 상기 수학식 19에 대응하는 후면-전면 합성 알고리즘은 다음과 같이 계산된다.
Figure 112003041556301-pat00035
i번째 부분(segment)에 대해서 segment의 앞쪽의 스칼라 값 (밀도 값) sf:=s(x(id))가 되고, 부분(segment)의 뒤쪽의 스칼라 값 sb:=s(x((i+1)d)) 가 된다. 이 값을 이용하면, i번째 부분(segment)의 불투명도는 수학식 21과 같이 근사 될 수 있다.
Figure 112003041556301-pat00036
w는 적분 파라미터를 의미한다.
결국
Figure 112003041556301-pat00037
는 sf, sb, d의 함수가 된다. 따라서, i번째 광선 부분에서 방출되는 색깔
Figure 112003041556301-pat00038
는 다음의 수학식 22와 같이 계산될 수 있다.
Figure 112003041556301-pat00039
여기서
Figure 112003041556301-pat00040
를 정의하면,
Figure 112003041556301-pat00041
를 수학식 23과 같이 T를 사용해서 나타낼 수 있다.
Figure 112003041556301-pat00042
비슷한 방법으로
Figure 112003041556301-pat00043
를 정의하면,
Figure 112003041556301-pat00044
를 K를 사용해서 수학식 24처럼 나타낼 수 있다.
Figure 112003041556301-pat00045
이와 같은 수식들을 이용하면 최종 밝기와 색깔 및 불투명도 등 볼륨을 표현하기 위한 데이터가 산출되며, 이 데이터를 바탕으로 실시간으로 렌더링이 진행되는 것이다.
다음으로, 사용자로 하여금 시뮬레이션 파라미터를 조정할 수 있도록 입력 환경을 제공하고, 그 입력값을 반영하여 렌더링 결과물에 다양한 유동 효과를 부여하는 유동효과 조정단계로 들어가게 된다. 이때 사용되는 파라미터에는 입자의 개수, 반지름, 밀도, 복원계수, 미끄럼계수, 라운드(round)팩터 등이 있으며, 이러한 파라미터를 사용자가 조정하면 그에 상응하는 시뮬레이션 결과가 실시간으로 얻어 지게 된다.
먼저, 입자의 개수는 전술한 수학식 1에서의 N을 조정하는 것으로서, 개수가 적을 경우 물방울이 튀기는 효과가 커지고, 많을 경우 물이 흐르는 효과가 커진다. 도 6은 입자개수를 100개로 설정했을 때의 렌더링 결과를 보인 것이고, 도 7은 입자개수를 5000개로 설정했을 때의 렌더링 후의 결과를 보인 것이다.
입자의 반경 파라미터는 도 2의 그래프에 나타난 척력과 인력의 경계선을 이루는 수직선에 해당되는 것으로, 수학식 4의 포텐샬 에너지에 의한 힘을 구하는 데 반영된다. 도 8과 도 9는 입자의 반지름 파라미터를 5mm로 했을 때와 50mm로 했을 때의 렌더링 후의 결과를 각각 보인 것이다.
또한, 입자의 밀도는 수학식 4 등의 질량에 영향을 주는 파라미터로서, 이를 조정하면 물(1000g/m3)과 같이 무거운 유체로부터 공기(1.2g/m3)와 같이 가벼운 유체까지 차별화된 표현이 가능해진다.
입자와 입자간의 충돌 계수 ep (복원 계수)를 조정하면 수학식 7에 반영되면서 입자들간의 충돌 시에 어느 정도로 튕겨나갈 것인지를 조정할 수 있고, 입자와 경계면과의 충돌 계수 ef (복원 계수)를 조정하면 수학식 11에 반영되어 입자가 벽면에 충돌 시 어느 정도로 튕겨나갈 것인지를 조정할 수 있다.
입자와 경계면 간의 마찰계수를 조정하여, 수학식 11을 통해 계산되는 경계면에서의 미끄러짐의 효과를 자유롭게 표현할 수도 있다.
그리고, 라운드 팩터(round factor)를 사용하여 입자와 입자 간의 상호 작용 의 범위를 스케일링(scaling) 할 수 있다. 도 10은 라운드 팩터를 1.7로 했을 때의 렌더링 후의 결과를 나타낸 것이고, 도 11은 라운드 팩터를 5.0으로 했을 때의 렌더링 후의 결과를 나타낸 것이다.
또한, 하기의 수학식 25에 나타낸 퐁(phong) 조명 모델식을 이용하여 조명 상태를 조정하면 유체 표면의 음영까지 표현된 보다 세밀한 이미지 품질을 얻을 수 있다.
Figure 112003041556301-pat00046
여기서,
Figure 112003041556301-pat00047
: 물체의 수직 벡터 (도 12 참조),
Figure 112003041556301-pat00048
: 빛의 방향 벡터,
Figure 112003041556301-pat00049
: 빛의 반사벡터,
Figure 112003041556301-pat00050
: 시점과 물체가 이루는 방향벡터, ka : 주변 조명 상수, kd : 분산 조명 상수, ks : 반사 조명 상수, I : 밝기, n : 지수항,
Figure 112003041556301-pat00051
(도 13 참조)를 각각 의미한다.
여기에 기존 프로그램인 DirectX에서 지원되는 픽셀 쉐이더(Pixel shader) 기술을 사용하면 상기 kd, ks, n을 실시간으로 조절할 수 있게 되어 세밀한 이미지 품질의 실시간 조작을 구현할 수 있다.
이와 같은 본 발명의 유체 동영상 구현방법은, 상기와 같이 실시간으로 다양한 파라미터를 조정하면서 유체의 세밀한 이미지 품질을 신속하게 얻을 수 있으므로, 다양한 가상현실 가시화 기술에 유효하게 사용될 수 있다.
예를 들면, 유체나 화염 등의 복잡한 자연현상에 대한 가상현실(Virtual Reality) 가시화 기술은 3차원 입체영상(Stereoscope) 컨텐츠, 디지털 문화재 복원, 가상현실 여행 및 관광, 자연 및 체험, 설치미술작품, 교육 및 학습 등의 다양한 분야에 효과적으로 적용될 수 있다. 또한 이러한 가상현실 가시화 기술은 문화 컨텐츠 분야뿐만 아니라 교육용, 의료용, 공학용 등의 전문 분야에도 효과적으로 적용될 수 있다. 폭우나 짙은 안개 속의 항공기의 조종 연습 등과 같은 특수 교육 목적의 가상현실 컨텐츠에도 효과적으로 적용될 수 있다. 특히 의료 및 공학용 데이터들은 그 자료가 방대하고 정밀도가 요구되는 반면, 그 데이터를 사실적으로 가시화하기 위한 시각화 기술이 미흡한 실정이다. 각종 가전 및 전자제품을 비롯하여 고속 서버급 컴퓨터의 냉각, 순환을 위해 사용되는 냉각기술과 유동제어 기술, 자동차 및 항공기 등의 몸체 외부의 공기 유동이나 선박 주위의 유체유동 등의 해석은 성능개선을 위한 최적화 설계에 핵심적인 항목이다. 이러한 공학적 해석분야에 적용하여 그 결과를 효과적으로 시각화하기 위해서는 가상현실기법을 도입한 사실적인 시각화 기술이 필수적이다. 이외에도 체내 각 기관 내부의 체액의 유동이나 각 기관의 섬모운동 가시화, 폐 속의 공기나 담배연기의 흡입, 혈액이나 소변의 흐름, 소화기능 등의 가시화를 비롯한 다양한 의료, 생명공학 분야를 비롯하여 여러 가지 분야에 폭넓게 사용될 수 있다. 이 외에도 web 3D 렌더링이나 온라인 방송, HDTV (high-definition television)용 인터액티브 컨텐츠 등의 분야에서도 다양한 활용 가능성을 예측할 수 있다.
도 14a 내지 도 18은 상기한 활용예 중 하나로서 잔에 물을 따르는 장면을 표현해본 것으로, 도 14a 내지 도 14d는 잔에 물이 부어지는 과정을 묘사한 것이고, 나머지는 사용자가 간단한 마우스 입력을 통해 실시간 로테이션(도 15), 실시간 팬(pan; 도 16), 실시간 줌(도 17), 그리고 물이 쏟아져 나오는 위치가 사용자 입력에 따라 변하는 인터액티브 application(도 18)을 구현할 수 있음을 각각 보인 것이다.
또한, 도 19는 진흙이 벽면을 타고 흘러내리는 효과를 실시간으로 보인 것이고, 필요에 따라서는 벽면의 형상도 실시간으로 변형할 수 있다.
도 20과 도 21은 화염을 묘사한 것으로, 도 20은 불의 초기 모습을, 도 21은 연기가 많이 발생한 후의 모습을 각각 실시간으로 표현한 예를 보인 것이다.
이와 같이 다양한 유체의 운동을 사용자의 파라미터 입력에 대응하여 실시간으로 구현할 수 있게 된다. 한 예로서, 본 발명의 방법과 기존의 소프트웨어인 Maya를 사용하여 잔에 물이 부어지는 약 10초 분량의 장면을 구현해본 결과, Maya를 사용한 경우에는 렌더링까지 끝난 결과물이 얻는데 수십 시간의 시간이 소요되는데 비해, 본 발명의 방법은 거의 실시간으로 10∼20초 내에 결과물이 얻을 수 있었다.
상술한 바와 같이 본 발명에 따른 유체운동 시뮬레이션 및 렌더링 방법은, 다음과 같은 효과를 제공한다.
첫째, 연산시간이 빠른 영역 분할 방식 입자시뮬레이션과 볼륨 렌더링을 채용함으로써 동영상 구현에 필요한 연산시간을 줄여 실시간으로 유체 동영상을 구현 할 수 있다.
둘째, 사용자의 파라미터 입력을 받아서 다양한 동영상 이미지를 바로바로 변화시킬 수 있기 때문에, 사용자가 원하는 동영상을 보다 신속하고 정확하게 구현할 수 있도록 해준다.
본 발명은 상기에 설명되고 도면에 예시된 것에 의해 한정되는 것은 아니며 다음에 기재되는 청구의 범위 내에서 더 많은 변형 및 변용예가 가능한 것임은 물론이다.

Claims (6)

  1. 입자 동역학 해석방법에 기초하여 유체 입자의 속도와 위치 등을 산출하는 시뮬레이션 단계와,
    상기 시뮬레이션 단계에서 얻어진 입자의 속도와 위치를 근거로 시간의 경과에 따른 입자의 분포 상태를 구하고, 해당 유체가 빛이 투과되는 물체라는 가정 하에서 그 입자들로 구성된 유체의 입체감을 표현하기 위한 변수들을 구하여 렌더링을 수행하는 볼륨 렌더링 단계를 포함하는 것을 특징으로 하는 유체운동 시뮬레이션 및 렌더링 방법.
  2. 제1항에 있어서,
    상기 시뮬레이션 단계는 상기 입자들간의 상호작용을 계산하는데 해당 입자에 인접한 영역에 대해서 영역을 분할하여 계산하는 영역분할방식을 이용하는 것을 특징으로 하는 유체운동 시뮬레이션 및 렌더링 방법.
  3. 제1항에 있어서,
    상기 볼륨 렌더링 단계의 입체감을 표현하기 위한 변수들은 유체의 밝기, 색깔, 불투명도 등이며, 이들 변수들은 예비 적분(pre-integration) 방식을 이용하여 산출되는 것을 특징으로 하는 유체운동 시뮬레이션 및 렌더링 방법.
  4. 제1항에 있어서,
    상기 시뮬레이션 단계의 입자 속도 및 위치를 구하기 위한 파라미터들을 사용자가 입력할 수 있도록 제공하고, 그 입력값을 실시간으로 유체 동영상에 반영하는 유동효과 조정단계를 더 포함하는 것을 특징으로 하는 유체운동 시뮬레이션 및 렌더링 방법.
  5. 제4항에 있어서,
    상기 파라미터들은 입자의 개수, 입자의 반경, 입자의 밀도, 입자의 충돌계수, 입자의 마찰계수, 라운드 팩터 중 적어도 하나를 포함하는 것을 특징으로 하는 유체운동 시뮬레이션 및 렌더링 방법.
  6. 제5항에 있어서,
    상기 파라미터에 유체의 표면 음영을 표현하기 위한 조명 상수가 더 포함되 는 것을 특징으로 하는 유체운동 시뮬레이션 및 렌더링 방법.
KR1020030077573A 2003-11-04 2003-11-04 입자동역학 해석기법과 볼륨렌더링 기법을 이용한 실시간 유체유동 시뮬레이션 및 렌더링 방법 KR100568563B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030077573A KR100568563B1 (ko) 2003-11-04 2003-11-04 입자동역학 해석기법과 볼륨렌더링 기법을 이용한 실시간 유체유동 시뮬레이션 및 렌더링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030077573A KR100568563B1 (ko) 2003-11-04 2003-11-04 입자동역학 해석기법과 볼륨렌더링 기법을 이용한 실시간 유체유동 시뮬레이션 및 렌더링 방법

Publications (2)

Publication Number Publication Date
KR20050042916A KR20050042916A (ko) 2005-05-11
KR100568563B1 true KR100568563B1 (ko) 2006-04-07

Family

ID=37243743

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030077573A KR100568563B1 (ko) 2003-11-04 2003-11-04 입자동역학 해석기법과 볼륨렌더링 기법을 이용한 실시간 유체유동 시뮬레이션 및 렌더링 방법

Country Status (1)

Country Link
KR (1) KR100568563B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101022491B1 (ko) 2009-06-24 2011-03-16 (주)에프엑스기어 유체 유동 렌더링 시스템 및 방법
KR101110342B1 (ko) 2010-01-28 2012-03-13 (주)에프엑스기어 유체 시뮬레이션 형상 제어 시스템 및 방법
KR101319996B1 (ko) 2011-12-30 2013-10-18 세종대학교산학협력단 유체 시뮬레이션 방법
KR101638002B1 (ko) 2015-07-13 2016-07-11 동서대학교산학협력단 각속도 속성 부여에 의한 오브젝트 군의 폭파 및 파괴 시각효과 구현방법
KR101671357B1 (ko) 2015-05-11 2016-11-01 동서대학교 산학협력단 포인트 군 밀도 속성 부여에 의한 유체 방출 그래픽 구현방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100593819B1 (ko) * 2004-11-11 2006-06-28 한국건설기술연구원 불연속적인 유체 흐름의 1차원 수치해석 방법
KR100705417B1 (ko) * 2005-12-06 2007-04-10 한국전자통신연구원 물체 표면의 젖음과 마름 표현 장치 및 방법
KR100898989B1 (ko) * 2006-12-02 2009-05-25 한국전자통신연구원 물 표면의 포말 생성 및 표현 장치와 그 방법
KR100889601B1 (ko) * 2006-12-04 2009-03-20 한국전자통신연구원 물 파티클 데이터를 이용한 물결과 거품 표현 장치 및 방법
US8089485B2 (en) * 2007-07-17 2012-01-03 Prometech Software, Inc. Method for constructing data structure used for proximate particle search, program for the same, and storage medium for storing program
KR100872434B1 (ko) * 2007-10-25 2008-12-05 한국전자통신연구원 다중 해상도의 유체 파티클 시뮬레이션 시스템 및 방법
KR100970968B1 (ko) * 2008-10-21 2010-07-21 건국대학교 산학협력단 거대 분자의 렌더링 방법 및 장치
KR100963114B1 (ko) * 2008-12-23 2010-06-15 고려대학교 산학협력단 유체형상 표현장치 및 방법
KR100972624B1 (ko) * 2009-02-11 2010-07-27 고려대학교 산학협력단 다상유체 시뮬레이션 장치 및 방법
CN102147929B (zh) * 2011-03-30 2013-07-31 北京航空航天大学 一种降雨对地面侵蚀效果的模拟方法
JP5930987B2 (ja) * 2013-02-27 2016-06-08 住友重機械工業株式会社 解析装置およびコンピュータプログラム
KR102097707B1 (ko) * 2018-10-02 2020-04-08 주식회사 투썬디지털아이디어 특수효과 제작 소프트웨어의 유체 시뮬레이션 방법
CN116229794B (zh) * 2023-05-09 2023-08-18 国开启科量子技术(北京)有限公司 用于模拟量子算法的演示装置及方法
CN117409127B (zh) * 2023-12-15 2024-04-05 中国美术学院 基于人工智能的实时水墨流体渲染方法和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101022491B1 (ko) 2009-06-24 2011-03-16 (주)에프엑스기어 유체 유동 렌더링 시스템 및 방법
KR101110342B1 (ko) 2010-01-28 2012-03-13 (주)에프엑스기어 유체 시뮬레이션 형상 제어 시스템 및 방법
KR101319996B1 (ko) 2011-12-30 2013-10-18 세종대학교산학협력단 유체 시뮬레이션 방법
KR101671357B1 (ko) 2015-05-11 2016-11-01 동서대학교 산학협력단 포인트 군 밀도 속성 부여에 의한 유체 방출 그래픽 구현방법
KR101638002B1 (ko) 2015-07-13 2016-07-11 동서대학교산학협력단 각속도 속성 부여에 의한 오브젝트 군의 폭파 및 파괴 시각효과 구현방법

Also Published As

Publication number Publication date
KR20050042916A (ko) 2005-05-11

Similar Documents

Publication Publication Date Title
KR100568563B1 (ko) 입자동역학 해석기법과 볼륨렌더링 기법을 이용한 실시간 유체유동 시뮬레이션 및 렌더링 방법
Dobashi et al. A simple, efficient method for realistic animation of clouds
US7450122B2 (en) Volumetric hair rendering
US8760449B1 (en) Multi-stage fire simulation
KR100568562B1 (ko) 연속체 유체역학 해석기법과 볼륨렌더링 기법을 이용한 실시간 유체유동 시뮬레이션 및 렌더링 방법
Goswami A survey of modeling, rendering and animation of clouds in computer graphics
WO2008014384A2 (en) Real-time scenery and animation
US20180189999A1 (en) Computer graphic system and method of multi-scale simulation of smoke
JP4656633B2 (ja) ボリュームデータレンダリングシステムおよびボリュームデータレンダリング処理プログラム
King et al. Fast volume rendering and animation of amorphous phenomena
Dobashi et al. A controllable method for animation of earth-scale clouds
JP3483967B2 (ja) 雲状現象可視化装置
King et al. Fast animation of amorphous and gaseous phenomena
Zamri et al. Research on atmospheric clouds: a review of cloud animation methods in computer graphics
Liu et al. Ellipsoidal-blob approximation of 3D models and its applications
Di Fiore et al. A framework for user control on stylised animation of gaseous phenomena
El Hajjar et al. A model for real-time on-surface flows
Dong et al. Smoke simulation based on particle system in virtual environments
KAWAZUMI et al. Synthesizing High-Resolution Clouds Using 2D and 3D Simulations
Álvarez et al. Interactive cartoon rendering and sketching of clouds and smoke
Bajo et al. A Comprehensive Method for Liquid-to-Solid Interactions
CN117689805A (zh) 一种基于噪声与粒子的大规模云景仿真方法
Kim et al. Retracted: Unified Framework for Efficient and Enriched Water Animation with Surface and Wave Foams
Sharkoska et al. Lagrange Method Implemented in Modeling and Simulation, Fundamentals of Animation, Creating Models and Motion of a Character
Zhan et al. A Smoke Simulation Technique Based on Particle System

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee