KR20060066575A - 물리 시뮬레이션 고속화 시스템 및 그 방법 - Google Patents

물리 시뮬레이션 고속화 시스템 및 그 방법 Download PDF

Info

Publication number
KR20060066575A
KR20060066575A KR1020050016837A KR20050016837A KR20060066575A KR 20060066575 A KR20060066575 A KR 20060066575A KR 1020050016837 A KR1020050016837 A KR 1020050016837A KR 20050016837 A KR20050016837 A KR 20050016837A KR 20060066575 A KR20060066575 A KR 20060066575A
Authority
KR
South Korea
Prior art keywords
simulation
collision
physical
physics
objects
Prior art date
Application number
KR1020050016837A
Other languages
English (en)
Other versions
KR100676673B1 (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 한국전자통신연구원
Publication of KR20060066575A publication Critical patent/KR20060066575A/ko
Application granted granted Critical
Publication of KR100676673B1 publication Critical patent/KR100676673B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01KANIMAL HUSBANDRY; CARE OF BIRDS, FISHES, INSECTS; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
    • A01K31/00Housing birds
    • A01K31/06Cages, e.g. for singing birds
    • A01K31/08Collapsible cages
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01KANIMAL HUSBANDRY; CARE OF BIRDS, FISHES, INSECTS; FISHING; REARING OR BREEDING ANIMALS, NOT OTHERWISE PROVIDED FOR; NEW BREEDS OF ANIMALS
    • A01K31/00Housing birds
    • A01K31/10Doors; Trap-doors

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 물리 시뮬레이션 고속화 시스템 및 그 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 객체간의 충돌(collision) 또는/및 접촉(contact)을 체크하고 충돌 또는/및 접촉이 있는 객체간의 물리적 방정식의 해를 구하는데 있어서, 파이프라인(pipeline) 기술과 병렬(parallel) 처리 기술을 이용하고 부가적으로 해당 시스템을 하드웨어로 구현함으로써, 실시간으로 시뮬레이션을 수행할 수 있는 물리 시뮬레이션 고속화 시스템 및 그 방법을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 물리 시뮬레이션 고속화 시스템에 있어서, 물리 시뮬레이션에 필요한 파라미터 및 데이터를 저장하기 위한 저장 수단; 각 구성요소를 파이프라인(pipeline) 방식으로 연동시키고 상기 각 구성요소의 병렬(parallel) 처리를 지원하여 임의의 데이터를 고속으로 상기 저장 수단에 쓰고 상기 저장 수단으로부터 읽어올 수 있도록 인터페이싱하기 위한 인터페이싱 수단; 상기 저장 수단에 저장되어 있는 시뮬레이션에 필요한 파라미터를 상기 인터페이싱 수단을 통하여 읽어와서 객체간의 충돌(collision) 또는/및 접촉(contact)을 파악(check)하여 충돌 또는/및 접촉 정보를 상기 인터페이싱 수단을 통하여 상기 저장 수단에 저장하기 위한 충돌 체크 수단; 상기 저장 수단에 저장되어 있는 시뮬레이션에 필요한 파라미터와 직전 스테이지(stage)의 충돌 또는/및 접촉 정보를 상기 인터페이싱 수단을 통하여 읽어와서 물리 방정식의 해를 구하여 상기 저장 수단에 저장되어 있는 파라미터를 갱신하기 위한 물리 계산수단; 및 상기 저장 수단에 저장되어 있는 상기 직전 스테이지(stage)에서 갱신된 파라미터와 객체 및 환경의 지오메트리 데이터를 상기 인터페이싱 수단을 통하여 읽어와서 이 정보를 반영하여 렌더링하기 위한 렌더링 수단을 포함함.
4. 발명의 중요한 용도
본 발명은 웹 베이스 시스템 또는 단독 시스템 또는 휴대용 시스템 등과 같은 다양한 시스템에서의 물리 시뮬레이션 등에 이용됨.
물리 시뮬레이션 고속화, 충돌 체크, 물리 계산, 렌더링, 파이프라인, 병렬 처리, 실시간 시뮬레이션

Description

물리 시뮬레이션 고속화 시스템 및 그 방법{System and method for acceleration of physic simulation}
도 1은 본 발명의 일실시 예에 따른 물리 시뮬레이션 고속화 시스템의 전체 구성도,
도 2는 본 발명의 일실시 예에 따른 파이프라인(pipeline) 및 병렬화를 설명하기 위한 예시도,
도 3은 본 발명의 일실시 예에 따른 파이프라인(pipeline)에서 시간 흐름에 따라 스테이지(stage)마다 데이터 흐름을 예시한 예시도이다.
* 도면의 주요 부분에 대한 부호의 설명
10 : 메모리 12 : 메모리 인터페이스부
14 : 충돌 체크부 16 : 물리 계산부
18 : 렌더링부
본 발명은 물리 법칙 및 물리 현상에 따른 3차원 그래픽 데이터, 즉 객체에 대한 물리적인 시뮬레이션 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 물리(Physics, Dynamics를 포함하는 개념임)에 관한 방정식의 해를 실시간으로 구하는데 있어서, 파이프라인(pipeline)화하고 병렬(parallel)화하는 방식을 이용하고 해당 시스템을 하드웨어로 구현함으로써, 시뮬레이션을 고속(실시간)으로 수행할 수 있는 물리 시뮬레이션 고속화 시스템 및 그 방법에 관한 것이다.
그리고 본 발명에서 객체라 함은 강체(rigid body) 또는 유체, 사람의 인체와 같은 디포머블(deformable)한 물체 등을 포함하는 개념의 용어이다.
최근에 게임용 물리 엔진이 소프트웨어 형태의 상용 제품으로 출시되거나 공개 되었다. 이러한 물리 엔진을 플러그인(plug-in) 형태로 탑재한 상용 3D 제작 도구도 등장하고 있다.
일예로, 컴퓨터 게임용 물리 엔진(대한민국 공개특허 10-2003-85143호, 2003. 11. 5일 공개)은 실제 게임을 개발하는 과정에서 개발자들에게 기초적인 토대를 구축하기 위한 방안의 하나로 다양한 물리 현상을 실시간으로 테스트하는 환경을 제공하고, 개발자들에게 요구되는 많은 물리적인 지식에 대한 부담을 감소시키는 효과와 3D 게임에서의 인터렉티브한 물리적인 효과를 구현하기 위한 환경을 제공한다. 또한 상기 종래 기술은 현실 세계에서와 유사한 물리적인 효과를 기대하는 실시간 3D 게임 엔진을 제작할 경우에 필요한 물리 현상에 대한 가상 실험 시뮬레이터를 제공함으로써, 3D 게임 엔진 제작에 편리성을 제공하는 개발 도구를 제공 할 수 있다.
그러나 상기와 같은 종래의 소프트웨어 기반의 물리 시뮬레이터는 계산상의 병목점으로 인하여 대규모 물리 시뮬레이션을 수행하거나 정교한 시뮬레이션을 수행하기 위해서 많은 시간과 비용이 소요될 뿐만 아니라 해당 시뮬레이션을 이용한 컨텐츠 제작의 효율성도 떨어지는 문제점이 있다.
본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, 객체간의 충돌(collision) 또는/및 접촉(contact)을 체크하고 충돌 또는/및 접촉이 있는 객체간의 물리적 방정식의 해를 구하는데 있어서, 파이프라인(pipeline) 기술과 병렬(parallel) 처리 기술을 이용하고 부가적으로 해당 시스템을 하드웨어로 구현함으로써, 실시간으로 시뮬레이션을 수행할 수 있는 물리 시뮬레이션 고속화 시스템 및 그 방법을 제공하는데 그 목적이 있다.
즉, 본 발명은 물리 시뮬레이션 알고리즘을 파이프라인(pipeline) 및 병렬화하고 부가적으로 FPGA(Field-Programmable Gate Array)와 같은 프로그래머블 로직 디바이스 또는 DSP(Digital Signal Processor) 또는 주문형 집적회로(ASIC : Application-Specific Integrated Circuit) 등과 같은 하드웨어로 구현함으로써, 대규모 객체에 대한 실시간 물리 시뮬레이션이 가능할 뿐만 아니라 정교한 시뮬레이션을 실시간으로 수행할 수 있는 물리 시뮬레이션 고속화 시스템 및 그 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시 예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 시스템은, 물리 시뮬레이션 고속화 시스템에 있어서, 물리 시뮬레이션에 필요한 파라미터 및 데이터를 저장하기 위한 저장 수단; 각 구성요소를 파이프라인(pipeline) 방식으로 연동시키고 상기 각 구성요소의 병렬(parallel) 처리를 지원하여 임의의 데이터를 고속으로 상기 저장 수단에 쓰고 상기 저장 수단으로부터 읽어올 수 있도록 인터페이싱하기 위한 인터페이싱 수단; 상기 저장 수단에 저장되어 있는 시뮬레이션에 필요한 파라미터를 상기 인터페이싱 수단을 통하여 읽어와서 객체간의 충돌(collision) 또는/및 접촉(contact)을 파악(check)하여 충돌 또는/및 접촉 정보를 상기 인터페이싱 수단을 통하여 상기 저장 수단에 저장하기 위한 충돌 체크 수단; 상기 저장 수단에 저장되어 있는 시뮬레이션에 필요한 파라미터와 직전 스테이지(stage)의 충돌 또는/및 접촉 정보를 상기 인터페이싱 수단을 통하여 읽어와서 물리 방정식의 해를 구하여 상기 저장 수단에 저장되어 있는 파라미터를 갱신하기 위한 물리 계산수단; 및 상기 저장 수단에 저장되어 있는 상기 직전 스테이지(stage)에서 갱신된 파라미터와 객체 및 환경의 지오메트리 데이터를 상기 인터페이싱 수단을 통하여 읽어와서 이 정 보를 반영하여 렌더링하기 위한 렌더링 수단을 포함하는 것을 특징으로 한다.
한편, 본 발명의 방법은, 물리 시뮬레이션 고속화 방법에 있어서, 메모리가 물리 시뮬레이션에 필요한 파라미터 및 데이터를 저장하고 있는 단계; 첫 번째 스테이지에서, 충돌 체크부가 상기 메모리에 저장되어 있는 시뮬레이션에 필요한 파라미터를 메모리 인터페이스부를 통하여 읽어와서 객체간의 충돌(collision) 또는/및 접촉(contact)을 파악(check)하여 충돌 또는/및 접촉 정보를 상기 메모리 인터페이스부를 통하여 상기 메모리에 저장하는 충돌 또는/및 접촉 체크 과정을 수행하는 단계; 두 번째 스테이지에서, 상기 충돌 체크부가 상기 충돌 또는/및 접촉 체크 과정을 수행하고, 물리 계산부가 상기 메모리에 저장되어 있는 시뮬레이션에 필요한 파라미터와 직전 스테이지(stage)의 충돌 또는/및 접촉 정보를 상기 메모리 인터페이스부를 통하여 읽어와서 물리 방정식의 해를 구하여 상기 메모리에 저장되어 있는 파라미터를 갱신하는 물리 계산 과정을 수행하는 단계; 및 세 번째 스테이지에서부터, 상기 충돌 체크부가 상기 충돌 또는/및 접촉 체크 과정을 수행하고, 상기 물리 계산부가 상기 물리 계산 과정을 수행하며, 렌더링부가 상기 메모리에 저장되어 있는 상기 직전 스테이지(stage)에서 갱신된 파라미터와 객체 및 환경의 지오메트리 데이터를 상기 메모리 인터페이스부를 통하여 읽어와서 이 정보를 반영하여 렌더링하여 디스플레이하는 렌더링 과정을 수행하는 단계를 포함하는 것을 특징으로 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시 예를 상세히 설명하기로 한다.
도 1은 본 발명의 일실시 예에 따른 물리 시뮬레이션 고속화 시스템의 전체 구성도이다.
도 1에 도시된 바와 같이, 본 발명에 따른 물리 시뮬레이션 고속화 시스템은, 물리 시뮬레이션에 필요한 파라미터 및 데이터를 저장하기 위한 메모리(10), 각 구성요소를 파이프라인(pipeline) 방식으로 연동시키고 상기 각 구성요소의 병렬(parallel) 처리를 지원하여 임의의 데이터를 고속으로 상기 메모리(10)에 쓰고 상기 메모리(10)로부터 읽어올 수 있도록 인터페이싱하기 위한 메모리 인터페이스부(12), 상기 메모리(10)에 저장되어 있는 시뮬레이션에 필요한 파라미터를 상기 메모리 인터페이스부(12)를 통하여 읽어와서 시뮬레이션 환경 내에 있는 객체간의 충돌(collision) 또는/및 접촉(contact)을 파악(check)하거나 부가적으로 객체와 외부 환경간의 충돌 또는/및 접촉을 파악(check)하여 충돌 또는/및 접촉 정보를 상기 메모리 인터페이스부(12)를 통하여 상기 메모리(10)에 저장하기 위한 충돌 체크부(14), 상기 메모리(10)에 저장되어 있는 시뮬레이션에 필요한 파라미터와 직전 스테이지(stage)의 충돌 또는/및 접촉 정보를 상기 메모리 인터페이스부(12)를 통하여 읽어와서 물리 방정식의 해를 구하여 상기 메모리(10)에 저장되어 있는 파라 미터를 갱신하기 위한 물리 계산부(16), 및 상기 메모리(10)에 저장되어 있는 상기 직전 스테이지(stage)에서 갱신된 파라미터와 객체 및 환경의 지오메트리 데이터를 상기 메모리 인터페이스부(12)를 통하여 읽어와서 이 정보를 반영하여 렌더링하여 디스플레이하기 위한 렌더링부(18)를 포함한다.
이 때, 각 스테이지에 해당하는 충돌 체크부(14), 물리 계산부(16), 및 렌더링부(18)를 파이프라인화하고 각 스테이지에 따른 작업을 병렬 처리하여 대규모 객체 시뮬레이션을 실시간으로 수행한다. 즉, 상기 각 구성요소들(10 내지 18)은 파이프라인(pipeline) 방식으로 연동되고, 상기 충돌 체크부(14)와 상기 물리 계산부(16)와 상기 렌더링부(18)는 하나의 파이프를 이루어 3스테이지(stage3)부터 병렬(parallel)로 3가지 작업을 동시에 처리함으로써, 실시간 시뮬레이션이 가능하도록 한다(도 2 및 도 3 참조).
다음으로, 상기 각 구성요소의 파이프라인(pipeline)화와 병렬(parallel) 처리 과정에 대하여 좀 더 상세히 살펴보면 다음과 같다.
먼저, 상기 충돌 체크부(14)는 상기 메모리(10)에 저장되어 있는 시뮬레이션에 필요한 파라미터(예 : 객체의 위치 및 속도 정보 등)를 상기 메모리 인터페이스부(12)를 통하여 읽어온다. 이후, 시뮬레이션 환경 내에 있는 객체간의 충돌 또는/및 접촉을 파악하고, 부가적으로 객체와 외부 환경간의 충돌 또는/및 접촉을 파악하며, 상기 파악한 충돌 또는/및 접촉 정보(예 : 충돌 또는/및 접촉이 일어난 객체의 쌍 또는/및 외부 환경 인덱스)를 상기 메모리 인터페이스부(12)를 통하여 상기 메모리(10)에 저장한다. 이 스테이지(stage)에서 메모리(10)에 저장된 충돌 또 는/및 접촉 정보는 직후의 스테이지에서 물리 계산부(16)의 입력으로 사용된다. 즉, "물리 시뮬레이션에 필요한 파라미터와 충돌이 일어나는 객체 및 환경을 고려하여 만든 물리 방정식"의 해를 계산하는 물리 계산부(16)의 입력으로 사용된다. 여기서, 객체의 충돌 또는/및 접촉 정보는 객체간의 충돌, 객체와 외부 환경과의 충돌을 포함한다.
그리고 상기 물리 계산부(16)는 상기 메모리(10)에 저장되어 있는 시뮬레이션에 필요한 파라미터와 상기 충돌 체크부(14)에서 파악된 직전 스테이지(stage)의 충돌 또는/및 접촉 정보를 상기 메모리 인터페이스부(12)를 통하여 읽어온다. 이후, 상기 읽어온 파라미터와 정보를 이용하여 물리 방정식의 해를 구하여 상기 메모리(10)에 저장되어 있는 시뮬레이션에 필요한 파라미터를 갱신한다. 이 때, 상기 물리 계산부(16)의 입력으로 사용되는 시뮬레이션에 필요한 파라미터는 시뮬레이션 환경에 포함되어 있는 객체의 위치, 객체의 속도, 객체의 가속도, 객체의 질량, 객체의 내부에 작용하는 힘(internal force), 객체의 외부에서 작용하는 힘(external force), 객체의 충돌 또는/및 접촉 정보, 객체의 강성, 객체끼리 연결되어 있는 조인트(joint)의 연결력, 조인트의 특성, 중력, 시뮬레이션 환경에 포함되어 있는 유체 및 기체의 속도 등을 포함하거나 그 중의 일부를 포함할 수 있다.
그리고 상기 렌더링부(18)는 상기 메모리(10)에 저장되어 있는 "직전 스테이지(stage)에서 상기 물리 계산부(16)에 의해 갱신된 파라미터"와 객체 및 환경의 지오메트리(geometry) 데이터를 상기 메모리 인터페이스부(12)를 통하여 읽어온다. 이후, 상기 읽어온 갱신된 파라미터와 데이터를 반영하여 렌더링하여 그 결과를 디 스플레이 장치에 실시간으로 디스플레이함으로써, 실시간 물리 시뮬레이션이 가능하도록 한다. 여기서, 객체 및 환경의 지오메트리 데이터는 위치(location), 방향(orientation), 메쉬(mesh), 파티클(particle) 등의 정보를 포함한다.
그리고 상기 메모리 인터페이스부(12)는 임의의 데이터를 고속으로 상기 메모리(10)에 쓰고 상기 메모리(10)로부터 읽어올 수 있도록 하기 위하여, 상기 각 구성요소를 파이프라인(pipeline) 방식으로 연동시키고 상기 각 구성요소의 병렬(parallel) 처리를 지원한다. 즉, 상기 메모리 인터페이스부(12)는 충돌 체크부(14)와 메모리(10)간의 인터페이싱, 물리 계산부(16)와 메모리(10)간의 인터페이싱, 렌더링부(18)와 메모리(10)간의 인터페이싱을 지원하고, 각 인터페이싱의 지연(delay)을 최소화하기 위해 파이프라인화 및 병렬화된 인터페이싱을 수행한다.
도 2는 본 발명의 일실시 예에 따른 파이프라인(pipeline) 및 병렬화를 설명하기 위한 예시도이다.
도 2에 도시된 바와 같이, 충돌 또는/및 접촉 체크 과정, 물리 계산 과정, 및 렌더링 과정을 하나의 파이프라인으로 구현하여, 1번째 스테이지(stage)에서는 충돌 또는/및 접촉 체크 과정의 1과정이 처리되도록 하고, 2번째 스테이지(stage)에서는 충돌 또는/및 접촉 체크 과정과 물리 계산 과정의 2과정이 병렬 처리되도록 하고, 3번째 스테이지(stage)에서부터는 충돌 또는/및 접촉 체크 과정과 물리 계산 과정과 렌더링 과정의 3과정이 동시에 병렬 처리되도록 한다. 그에 따라 대규모 객체가 포함된 시뮬레이션의 속도를 가속화할 수 있다.
다음으로, 도 1 및 도 2를 참조하여 본 발명의 동작 방법에 대하여 좀 더 상 세히 살펴보면 다음과 같다.
먼저, 메모리(10)가 물리 시뮬레이션에 필요한 파라미터 및 데이터를 저장하고 있다.
첫 번째 스테이지에서는, 충돌 체크부(14)가 상기 메모리(10)에 저장되어 있는 시뮬레이션에 필요한 파라미터를 상기 메모리 인터페이스부(12)를 통하여 읽어와서 시뮬레이션 환경 내에 있는 객체간의 충돌(collision) 또는/및 접촉(contact)을 파악(check)하거나 부가적으로 객체와 외부 환경간의 충돌 또는/및 접촉을 파악(check)하여 충돌 또는/및 접촉 정보를 상기 메모리 인터페이스부(12)를 통하여 상기 메모리(10)에 저장하는 충돌 또는/및 접촉 체크 과정을 수행한다.
이후, 두 번째 스테이지에서는, 충돌 체크부(14)가 충돌 또는/및 접촉 체크 과정을 수행하고, 물리 계산부(16)가 상기 메모리(10)에 저장되어 있는 시뮬레이션에 필요한 파라미터와 직전 스테이지(stage)의 충돌 또는/및 접촉 정보를 상기 메모리 인터페이스부(12)를 통하여 읽어와서 물리 방정식의 해를 구하여 상기 메모리(10)에 저장되어 있는 파라미터를 갱신하는 물리 계산 과정을 수행한다. 이처럼 두 번째 스테이지(stage)에서는 충돌 또는/및 접촉 체크 과정과 물리 계산 과정의 2과정이 병렬적으로 수행된다.
이후, 세 번째 스테이지에서부터는, 충돌 체크부(14)가 충돌 또는/및 접촉 체크 과정을 수행하고, 물리 계산부(16)가 물리 계산 과정을 수행하며, 렌더링부(18)가 상기 메모리(10)에 저장되어 있는 상기 직전 스테이지(stage)에서 갱신된 파라미터와 객체 및 환경의 지오메트리 데이터를 상기 메모리 인터페이스부(12)를 통하여 읽어와서 이 정보를 반영하여 렌더링하여 디스플레이하는 렌더링 과정을 수행한다. 이처럼 3번째 스테이지(stage)에서부터는 충돌 또는/및 접촉 체크 과정과 물리 계산 과정과 렌더링 과정의 3과정이 동시에 병렬적으로 수행된다.
도 3은 본 발명의 일실시 예에 따른 파이프라인(pipeline)에서 시간 흐름에 따라 스테이지(stage)마다 데이터 흐름을 예시한 예시도이다.
도 3에서 "A"는 충돌 체크부(14)의 입력으로 사용되는 시뮬레이션에 필요한 파라미터를 나타내며, 그 구체적인 일예로는 객체의 위치 및 속도 정보 등이 사용될 수 있다.
그리고 "B"는 충돌 체크부(14)에서 파악한 충돌 또는/및 접촉 정보를 나타내며, 그 구체적인 일예로는 충돌 또는/및 접촉이 일어난 객체의 쌍 또는/및 외부 환경 인덱스 등이 있다.
그리고 "C"는 물리 계산부(16)의 입력으로 사용되는 시뮬레이션에 필요한 파라미터와 상기 충돌 체크부(14)에서 파악된 직전 스테이지(stage)의 충돌 또는/및 접촉 정보를 나타내며, 여기서 상기 파라미터는 "물리 시뮬레이션에 필요한 파라미터와 충돌이 일어나는 객체 및 환경을 고려하여 만든 물리 방정식"의 해를 계산하는데 필요한 다양한 종류의 파라미터를 포함할 수 있다.
그리고 "D"는 물리 계산부(16)에서 물리 방정식의 해를 구하여 출력으로 나온 물리 시뮬레이션에 필요한 파라미터를 나타내며, 이는 메모리(10)에 저장되어 있는 시뮬레이션에 필요한 파라미터를 갱신하는데 사용된다.
그리고 "E"는 물리 계산부(16)에 의해 갱신된 시뮬레이션에 필요한 파라미터 와 객체 및 환경의 지오메트리 데이터를 나타내고, "F"는 렌더링되어서 갱신된 객체 및 환경의 지오메트리 데이터를 나타낸다.
상술한 바와 같이, 본 발명은 대규모 객체를 포함한 물리 시뮬레이션을 실시간으로 수행할 수 있고, 각 부와 스테이지는 FPGA와 같은 프로그래머블 로직 디바이스나 DSP(Digital Signal Processor) 또는 ASIC 칩으로 구현할 수 있다. 그에 따라 시뮬레이션에 필요한 데이터와 충돌 또는/및 접촉 정보를 입력으로 사용하여 물리 방정식의 해를 구하여 디스플레이 장치에 시뮬레이션 결과를 실시간으로 보여줄 수 있다.
이러한 본 발명은 웹 베이스 시스템 또는 단독 시스템에 물리 시뮬레이션을 위한 하드웨어 로직을 제공하여 다양한 작업 환경을 구축할 수 있고, 물리 시뮬레이션을 위한 휴대용 시스템에도 하드웨어 로직을 제공함으로써 모바일 게임 산업에 용이하게 활용될 수 있다.
상술한 바와 같은 본 발명의 방법은 하드웨어가 아닌 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 롬, 램, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수도 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같은 본 발명은, 물리 시뮬레이션 알고리즘을 파이프라인(pipeline) 및 병렬화하여 FPGA(Field-Programmable Gate Array)와 같은 프로그래머블 로직 디바이스 또는 DSP(Digital Signal Processor) 또는 주문형 집적회로(ASIC : Application-Specific Integrated Circuit) 등과 같은 하드웨어로 구현함으로써, 대규모 객체에 대한 실시간 물리 시뮬레이션이 가능할 뿐만 아니라 정교한 시뮬레이션을 실시간으로 수행할 수 있는 효과가 있다.
이처럼 본 발명은 대규모 객체가 포함된 물리 시뮬레이션을 실시간으로 실시할 수 있는 파이프라인과 병렬화된 로직을 제공할 수 있는 효과가 있다.
따라서 본 발명은 대규모 객체가 포함된 몰리 시뮬레이션이 필요한 영상물 제작에 있어서, 제작 시간을 단축시키고 비용을 절감할 수 있는 효과가 있다.
또한, 본 발명은 웹 베이스 시스템 또는 단독 시스템에 물리 시뮬레이션을 위한 하드웨어 로직을 제공하여 다양한 작업 환경을 구축할 수 있고, 물리 시뮬레이션을 위한 휴대용 시스템에도 하드웨어 로직을 제공함으로써 모바일 게임 산업에 용이하게 활용될 수 있다.

Claims (10)

  1. 물리 시뮬레이션 고속화 시스템에 있어서,
    물리 시뮬레이션에 필요한 파라미터 및 데이터를 저장하기 위한 저장 수단;
    각 구성요소를 파이프라인(pipeline) 방식으로 연동시키고 상기 각 구성요소의 병렬(parallel) 처리를 지원하여 임의의 데이터를 고속으로 상기 저장 수단에 쓰고 상기 저장 수단으로부터 읽어올 수 있도록 인터페이싱하기 위한 인터페이싱 수단;
    상기 저장 수단에 저장되어 있는 시뮬레이션에 필요한 파라미터를 상기 인터페이싱 수단을 통하여 읽어와서 객체간의 충돌(collision) 또는/및 접촉(contact)을 파악(check)하여 충돌 또는/및 접촉 정보를 상기 인터페이싱 수단을 통하여 상기 저장 수단에 저장하기 위한 충돌 체크 수단;
    상기 저장 수단에 저장되어 있는 시뮬레이션에 필요한 파라미터와 직전 스테이지(stage)의 충돌 또는/및 접촉 정보를 상기 인터페이싱 수단을 통하여 읽어와서 물리 방정식의 해를 구하여 상기 저장 수단에 저장되어 있는 파라미터를 갱신하기 위한 물리 계산수단; 및
    상기 저장 수단에 저장되어 있는 상기 직전 스테이지(stage)에서 갱신된 파라미터와 객체 및 환경의 지오메트리 데이터를 상기 인터페이싱 수단을 통하여 읽어와서 이 정보를 반영하여 렌더링하기 위한 렌더링 수단
    을 포함하는 물리 시뮬레이션 고속화 시스템.
  2. 제 1 항에 있어서,
    상기 충돌 체크 수단과 상기 물리 계산 수단과 상기 렌더링 수단은, 파이프라인(pipeline) 방식으로 연동되어, 첫 번째 스테이지(stage1)에서는 상기 충돌 체크 수단이 동작하고, 두 번째 스테이지(stage2)에서는 상기 충돌 체크 수단과 상기 물리 계산 수단이 병렬로 동작하고, 3 번째 스테이지(stage3)에서부터는 상기 충돌 체크 수단과 상기 물리 계산 수단과 상기 렌더링 수단이 병렬로 동작하는 것을 특징으로 하는 물리 시뮬레이션 고속화 시스템.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 충돌 체크 수단은,
    시뮬레이션 환경 내에 있는 객체간의 충돌(collision) 또는/및 접촉(contact)을 파악(check)하는 것을 특징으로 하는 물리 시뮬레이션 고속화 시스템.
  4. 제 3 항에 있어서,
    상기 충돌 체크 수단은,
    객체와 외부 환경간의 충돌 또는/및 접촉을 파악(check)하는 기능을 더 수행 하는 것을 특징으로 하는 물리 시뮬레이션 고속화 시스템.
  5. 제 1 항 또는 제 2 항에 있어서,
    상기 물리 계산 수단의 입력으로 사용되는 시뮬레이션에 필요한 파라미터는,
    시뮬레이션 환경에 포함되어 있는 객체의 위치, 객체의 속도, 객체의 가속도, 객체의 질량, 객체의 내부에 작용하는 힘(internal force), 객체의 외부에서 작용하는 힘(external force), 객체의 충돌 또는/및 접촉 정보, 객체의 강성, 객체끼리 연결되어 있는 조인트(joint)의 연결력, 조인트의 특성, 중력, 시뮬레이션 환경에 포함되어 있는 유체 및 기체의 속도 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 물리 시뮬레이션 고속화 시스템.
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 충돌 체크 수단과 상기 물리 계산 수단과 상기 렌더링 수단은,
    FPGA(Field-Programmable Gate Array)와 같은 프로그래머블 로직 디바이스 또는 DSP(Digital Signal Processor) 또는 주문형 집적회로(ASIC : Application-Specific Integrated Circuit)와 같은 하드웨어로 구현된 것을 특징으로 하는 물리 시뮬레이션 고속화 시스템.
  7. 물리 시뮬레이션 고속화 방법에 있어서,
    메모리가 물리 시뮬레이션에 필요한 파라미터 및 데이터를 저장하고 있는 단계;
    첫 번째 스테이지에서, 충돌 체크부가 상기 메모리에 저장되어 있는 시뮬레이션에 필요한 파라미터를 메모리 인터페이스부를 통하여 읽어와서 객체간의 충돌(collision) 또는/및 접촉(contact)을 파악(check)하여 충돌 또는/및 접촉 정보를 상기 메모리 인터페이스부를 통하여 상기 메모리에 저장하는 충돌 또는/및 접촉 체크 과정을 수행하는 단계;
    두 번째 스테이지에서, 상기 충돌 체크부가 상기 충돌 또는/및 접촉 체크 과정을 수행하고, 물리 계산부가 상기 메모리에 저장되어 있는 시뮬레이션에 필요한 파라미터와 직전 스테이지(stage)의 충돌 또는/및 접촉 정보를 상기 메모리 인터페이스부를 통하여 읽어와서 물리 방정식의 해를 구하여 상기 메모리에 저장되어 있는 파라미터를 갱신하는 물리 계산 과정을 수행하는 단계; 및
    세 번째 스테이지에서부터, 상기 충돌 체크부가 상기 충돌 또는/및 접촉 체크 과정을 수행하고, 상기 물리 계산부가 상기 물리 계산 과정을 수행하며, 렌더링부가 상기 메모리에 저장되어 있는 상기 직전 스테이지(stage)에서 갱신된 파라미터와 객체 및 환경의 지오메트리 데이터를 상기 메모리 인터페이스부를 통하여 읽어와서 이 정보를 반영하여 렌더링하여 디스플레이하는 렌더링 과정을 수행하는 단계
    를 포함하는 물리 시뮬레이션 고속화 방법.
  8. 제 7 항에 있어서,
    상기 충돌 또는/및 접촉 체크 과정은,
    시뮬레이션 환경 내에 있는 객체간의 충돌(collision) 또는/및 접촉(contact)을 파악(check)하는 것을 특징으로 하는 물리 시뮬레이션 고속화 방법.
  9. 제 8 항에 있어서,
    상기 충돌 또는/및 접촉 체크 과정은,
    객체와 외부 환경간의 충돌 또는/및 접촉을 파악(check)하는 기능을 더 수행하는 것을 특징으로 하는 물리 시뮬레이션 고속화 방법.
  10. 제 7 항 내지 제 9 항 중 어느 한 항에 있어서,
    상기 물리 계산 과정의 입력으로 사용되는 시뮬레이션에 필요한 파라미터는,
    시뮬레이션 환경에 포함되어 있는 객체의 위치, 객체의 속도, 객체의 가속도, 객체의 질량, 객체의 내부에 작용하는 힘(internal force), 객체의 외부에서 작용하는 힘(external force), 객체의 충돌 또는/및 접촉 정보, 객체의 강성, 객체 끼리 연결되어 있는 조인트(joint)의 연결력, 조인트의 특성, 중력, 시뮬레이션 환경에 포함되어 있는 유체 및 기체의 속도 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 물리 시뮬레이션 고속화 방법.
KR1020050016837A 2004-12-13 2005-02-28 물리 시뮬레이션 고속화 시스템 및 그 방법 KR100676673B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20040105098 2004-12-13
KR1020040105098 2004-12-13

Publications (2)

Publication Number Publication Date
KR20060066575A true KR20060066575A (ko) 2006-06-16
KR100676673B1 KR100676673B1 (ko) 2007-02-01

Family

ID=37161377

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050016837A KR100676673B1 (ko) 2004-12-13 2005-02-28 물리 시뮬레이션 고속화 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR100676673B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100762958B1 (ko) * 2005-06-27 2007-10-02 주식회사 나인티시스템 3차원 측정기의 충돌 시뮬레이션 방법
CN102736940A (zh) * 2012-06-21 2012-10-17 北京像素软件科技股份有限公司 一种资源加载方法
US8554526B2 (en) 2008-07-22 2013-10-08 Sony Online Entertainment Llc System and method for physics interactions in a simulation
KR101403530B1 (ko) * 2012-11-08 2014-06-09 대한민국 농업용 트랙터의 모의 운전 교육장치
DE102007032755B4 (de) 2006-07-14 2021-08-05 Lg Electronics Inc. Mobiles Endgerät

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367233B2 (en) 2011-10-31 2016-06-14 Samsung Electronics Co., Ltd. Display apparatus and method thereof

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6270350B1 (en) * 1999-04-28 2001-08-07 I-Sim Corporation Reconfigurable hardware interface for vehicle driving simulators using a field-programmable gate array
KR20020026777A (ko) * 2000-10-02 2002-04-12 최장수 실시간 3차원 가상현실 영상 처리 및 음향 발생 시스템
KR20020039101A (ko) * 2000-11-20 2002-05-25 이명진 멀티미디어 콘텐츠에서의 2차원 및 3차원 영상과 3차원음향의 영상/음향 실시간 처리 방법
JP4688316B2 (ja) 2001-02-28 2011-05-25 独立行政法人産業技術総合研究所 シミュレーション装置とシミュレーション方法、及び映像生成装置と映像生成方法
KR100457927B1 (ko) * 2002-05-01 2004-11-18 한국과학기술원 가상현실과 햅틱장치를 이용한 소화기 내시경 수련 시스템
KR100568562B1 (ko) * 2003-11-07 2006-04-07 강문구 연속체 유체역학 해석기법과 볼륨렌더링 기법을 이용한 실시간 유체유동 시뮬레이션 및 렌더링 방법
KR20050054731A (ko) * 2003-12-05 2005-06-10 한국전자통신연구원 햅틱 시뮬레이션 시스템 및 그 시스템에서의 실시간 촉감지원 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100762958B1 (ko) * 2005-06-27 2007-10-02 주식회사 나인티시스템 3차원 측정기의 충돌 시뮬레이션 방법
DE102007032755B4 (de) 2006-07-14 2021-08-05 Lg Electronics Inc. Mobiles Endgerät
US8554526B2 (en) 2008-07-22 2013-10-08 Sony Online Entertainment Llc System and method for physics interactions in a simulation
CN102736940A (zh) * 2012-06-21 2012-10-17 北京像素软件科技股份有限公司 一种资源加载方法
CN102736940B (zh) * 2012-06-21 2015-06-24 北京像素软件科技股份有限公司 一种资源加载方法
KR101403530B1 (ko) * 2012-11-08 2014-06-09 대한민국 농업용 트랙터의 모의 운전 교육장치

Also Published As

Publication number Publication date
KR100676673B1 (ko) 2007-02-01

Similar Documents

Publication Publication Date Title
JP6787661B2 (ja) 工作物の機械加工のシミュレート
JP4948218B2 (ja) 画像処理装置及びその制御方法
Redon et al. Fast continuous collision detection for articulated models
KR100676673B1 (ko) 물리 시뮬레이션 고속화 시스템 및 그 방법
US7580821B2 (en) Application programming interface for fluid simulations
Weller New geometric data structures for collision detection and haptics
US20070219766A1 (en) Computational fluid dynamics (CFD) coprocessor-enhanced system and method
Lampe et al. Two-level approach to efficient visualization of protein dynamics
Seth et al. Development of a dual-handed haptic assembly system: SHARP
JP2004021883A (ja) 流体と剛体の連携シミュレーション装置、流体と剛体の連携シミュレーション方法、流体と剛体の連携シミュレーションプログラム
EP2141594A2 (en) Vectorized parallel collision detection pipeline
Dharma et al. Material point method based fluid simulation on GPU using compute shader
Schulz et al. Crashing in cyberspace-evaluating structural behaviour of car bodies in a virtual environment
JP2009086842A (ja) ハーネス設計支援装置及び方法及びプログラム
KR101746331B1 (ko) 해양플랜트 3차원 파이프 모델의 중복 면 제거 방법 및 시스템
Susa et al. Multi-rate multi-range dynamic simulation for haptic interaction
JP2002149713A (ja) 6自由度シミュレーション方法
Gaisbauer et al. Introducing a Modular Concept for Exchanging Character Animation Approaches.
ElNimr et al. Loosely coupled visualization of industrial construction simulation using a gaming engine
US9928638B2 (en) Graphical simulation of objects in a virtual environment
Maggiorini et al. Unifying rigid and soft bodies representation: the Sulfur physics engine
JP2004062546A (ja) 3次元形状処理装置および干渉モデル検出方法
KR101170909B1 (ko) 이동 그리드를 이용한 유체 시뮬레이션 시스템 및 방법
KR100778310B1 (ko) 그래픽 시스템에서의 충돌정보 처리 장치 및 그 방법
Zou et al. A GPGPU-based collision detection algorithm

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
LAPS Lapse due to unpaid annual fee