1 / 20

입자 시스템 (Particle System)

조이름 : MuseOn 발표자 : 조윤혜 발표일 : 2007. 4. 30. 입자 시스템 (Particle System). 목차. 입자시스템이란 ? 입자 데이터 구조 구조에 대한 주의 가속화 기법. 1. 입자 시스템이란 ?(1/2). 굴뚝의 연기 , 불 , 무리지어 나는 새떼 , 눈송이 등 수많은 다른 현상 특징 : 동적이고 시간 의존적이다 각각 지정된 루틴을 따라서 동적으로 변화하는 입자들의 배열로 구성 작은 개별 요소들과 상당히 병렬적이다

mahina
Download Presentation

입자 시스템 (Particle System)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 조이름 : MuseOn 발표자 : 조윤혜 발표일 : 2007. 4. 30 입자 시스템 (Particle System)

  2. 목차 • 입자시스템이란? • 입자 데이터 구조 • 구조에 대한 주의 • 가속화 기법

  3. 1. 입자 시스템이란?(1/2) • 굴뚝의 연기, 불, 무리지어 나는 새떼, 눈송이 등 수많은 다른 현상 • 특징 : • 동적이고 시간 의존적이다 • 각각 지정된 루틴을 따라서 동적으로 변화하는 입자들의 배열로 구성 • 작은 개별 요소들과 상당히 병렬적이다 • 모든 입자들은 그 모양과 행동을 조절하는 같은 파라미터를 갖는다 • 복잡하다 • 각각은 다소 다른 진화과정을 따르고 자연적으로 추구하는 복잡성이 생겨난다

  4. 1. 입자 시스템이란?(2/2) • 지역 VS 전역 입자 시스템 • 지역시스템 : *각각의 입자가 독립적 동작 *상호간의 작용 고려되지 않음 *모든계산은 현재 입자에 지역적 • 전역 시스템 : *서로 상호작용하고 반응하는 입자 포함 *더 복잡하고 재미있는 동작생성가능 *계산비용의 많은 증가 • Ex) 바람에 의해 나무에서 떨어지는 나뭇잎들.

  5. 2. 입자 데이터 구조(1/12) • 위치(Position) 속도(Velocity-벡터적) 크기(Size) 색상(Color) 투명도(Transparency) 모양(Shape) 수명(Lifetime) 폭발섬광, 비, 물 등 하부구조는 거의 동일하다

  6. 2. 입자 데이터 구조(2/12) • 입자 행동에 관련된 파라미터 • 1. 행동 종류 분석 • 2. 적용 할 힘 분석 • 3. 마찰or 속도(방향성 속도,방사속도, 회전속도, 무작위 속도)or 가속or 중력상수등 적용 • 입자 모양에 관련된 파라미터 • 입자색상, 블렌딩모드, 크기, 텍스쳐식별자등

  7. 2. 입자 데이터 구조(3/12) • 입자 생성 • 점방사체 : 공간의 한 점에서 모든 입자를 생성(ex. 폭발) • 실제로 폭발(ex.불)은 부피와 모양을 갖기때문에 점에서가 아니라 입자 주위의 영역에서 생성 • Point pos(3,5,4); //particles are born in 3,5,4 pos.x += ((float)rand()..) pos.y += ((float)rand().. pos.z += ((float)rand()..) Explosion Fire

  8. 2. 입자 데이터 구조(4/12) • 입자 생성 • XZ평면에서 정렬된 2D다각형 : 눈 또는 비를 시뮬레이트 하기 위한 방사체 • 멀리 떨어진 빗방울은 보이지 않을 것이기 때문에 사용자가 잘 인식 할 수 있는 곳에서 생성 – 시점 바로 앞에서 생성 • Point pos(3,5,4); //particles are born in 3,5,4 pos.x += ((float)rand()..) pos.z += ((float)rand()..) Rain

  9. 2. 입자 데이터 구조(5/12) • 입자 의 나이와 생명주기 확립 • 1. 초기설정 – 0 최대 활동시간량이 될때까지 나이 증가 입자는 죽고 다른 곳에서 다시 생성

  10. 2. 입자 데이터 구조(5/12) • 입자 행동 • 실세계 현상을 흉내내도록 입자들에 임의의 역학구현 • 기본 물리학 적용 • Position = initial position + velocity*time • dPosition = Velocity*dt 미분 방정식적용 • F = m*a (velocity=주어진 • a= f/m 점에서 시간에 • a=d^2x/dt^2 따른순간속도) • v=dx/dt 속도 a=dv/dt 가속도 • F=m*g 중력 • F= -kd*(dx/dt) = -kd*v 점성저항 • F =[ -ks( |xa-xb| - r ) + kd(va-vb) * ((xa-xb)/|xa-xb|) ] 스프링 탄성

  11. 2. 입자 데이터 구조(6/12) • 물리학 기반의 입자 시스템을 계산하기 위한 전체 알고리즘 • 1. 주어진 점에서 입자와 상호 작용하는 힘의 합을 게산하라 • 2. 힘으로부터 가속도를 유도하라 • 3. 위치와 속도의 변화를 계산하기 위해 시간 미분계수를 사용하라

  12. 2. 입자 데이터 구조(7/12) • 중력과 수평방향의 힘 구현 예(바람) Total_force = gravity + wind

  13. 2. 입자 데이터 구조(8/) • 굴뚝의 연기, 폭발에 의한 버섯구름 • 양의 수직방향으로 속도를 가지고 단일 점에서 방출 • 올라감에 따라 복잡한 힘의 영향을 받음 가장 많이 쓰이는 연기 시뮬레이트 Noise() – 지표에서 휘돌아 올라가는 연기처럼 보이는 움직임 패턴 생성 (Perlin noise)

  14. 2. 입자 데이터 구조(9/12) • 입자 소멸 • 1.하나의 입자는 나이가 생존 기간을 넘어선 후에 소멸. • 2.생성루틴을 다시 호출 • 3.이전 입자를 가지던 곳에 새로운 파라미터를 가지는 새로운 입자를 갖게됨 • 입자가 소멸해감에 따른 알파값 조절 • ex1)비 입자 시스템 – 빗방울은 시간에 따라 소멸되지 않고 입자가 지표면에 닿을때마다 소멸 • ex2)연기입자시스템 – 전성기때는 불투명하고 생성되고 거의 투명한 상태로 소멸 • alpha= sin(PI*age/maxage); • 0~PI값범위의 실수값으로 0값(완전히 투명)에서 1값(불투명)까지 나타냄.

  15. 2. 입자 데이터 구조(10/12) • 입자 렌더링 • 입자 시스템의 신뢰성은 행동의 실제 시뮬레이션만큼 렌더링에 의존. • 1. 저비용 입자 계산 – 빌보드 기법 사용 • 사각형이 항상 시점을 바라보도록 만드는 것 • Right와 up벡터를 설계하고 그것에 기반하여 입자들을 카메라에 정렬 • ex) 나무메쉬를 사용하지 않고 이미지만으로 구현 Model View 행렬

  16. 2. 입자 데이터 구조(11/12) • 2. 블렌딩 모드를 적절히 사용 • 필터 블렌드 • 비와 같은 반투명 입자 모양 제공 • SRC_ALPHA, ONE_MINUS_SRC_ALPHA • 합성 블렌드 • 빛, 불, 폭발등에 사용(배경에 요소를 더한다) • SRC_ALPHA, ONE

  17. 2. 입자 데이터 구조(12/12) • 3.텍스쳐 애니메이션 • 각 입자는 타일과 같은 텍스쳐 애니메이션 프레임을 가진다 • 입자는 더욱 동적인 모양을 만들며, 생애동안 애니메이션 프레임을 통해 순환 • 4.연결/계층적 시스템 • 실세계의 다단계 복합적 환상생성 • ex) 로켓발사 – 1. 불이 배기장치 에서 뿜어져 나오고 2.많은 연기와 수증기가 발생 3. 작은얼음입자들이 다른 궤적을 따라 분리 • 5.시간 함수로서 시각적 파라미터 • ex)불 – 중심화염은 보통 파란색, 바깥쪽으로 가면서 녹색, 흰색, 그리고 천천히 소멸.

  18. 3. 구조에 대한 주의 • 게임 상에 모든 파티클 시스템은 동일한 인터페이스를 사용하여 액세스한다. 추상 클래스 (동일 인터페이스) 파생 클래스 (세부 인터페이스)

  19. 4. 가속화 기법 • 1. Malloc 과 Free 피하기 • 입자가 소멸할때마다 메모리 반환은 심각한 성능문제 유발. • 시스템 입자 정적배열로 매핑 • 죽은 입자와 같은 배열에 새로운 입자 생성 • 2. LOD(Level-of-Detail) 입자시스템 • 접근에 따라 시각적인 일치성을 보장하며성능의 상당한 향상을 얻을 수 있다 • 아주 멀리 있을때, 단지 몇 개의 입자를 가진 기본적인 입자시스템에서 가까이 다가왔을대 완전한 시스템까지 보간하는 방식

  20. 마침글 • 구름, 비, 연기까지 유기적이고 자연적인 현상을 시뮬레이트하기에 적합 • 입자 시스템(Particle System)은 잘 사용하면 게임의시각적 효율을 증가시키며, 플레이어에게 현실감을 전달하고, 표현가치를 향상시키고, 활동감을 증가시킨다

More Related