입자계통

Particle system
3dengfx에서 생성된 불을 시뮬레이션하는 데 사용되는 입자 시스템.
3dengfx에서 생성된 은하를 시뮬레이션하는 데 사용되는 임시 입자 시스템.
폭탄 폭발을 모의 실험하는 데 사용되는 입자 시스템, 입자에서 생성됨착각.

입자 시스템게임물리학, 모션 그래픽컴퓨터 그래픽의 기법으로서, 많은 미세한 스프라이트, 3D 모델 또는 기타 그래픽 객체를 사용하여 기존의 렌더링 기법으로는 재현하기 매우 어려운 특정한 종류의 "퍼지" 현상을 시뮬레이션한다.s 화학 반응에 의해 발생한다.

1982년 영화 Star Trek II에서 소개:그 분노 칸에 대한 허구"제네시스 효과"[1] 다른 예를, 물(폭포 같은)을 움직이는 눈, 바위 폭포, 구름, 안개, 눈, 먼지, 유성 꼬리, 별, 은하계, 혹은 이런 취향이 까다로운.를 사용하는 산책로, 마법 주문들 등 –처럼 추상적인 시각 효과 잎 떨어지는 화재, 폭발들, 그 현상을 포함한다.르s는 빠르게 사라져서 효과의 근원에서 다시 생성된다. 다른 기법은 털, , 과 같은 많은 가닥을 포함하는 물질에 사용될 수 있으며, 이는 한 번에 전체 입자의 수명을 렌더링할 수 있고, 그 다음 문제의 물질의 한 가닥으로 그려지고 조작할 수 있다.

입자 시스템은 행동과 외모를 정의하는 규칙 집합에 의해 안내되는 공간의 점 그룹으로 정의된다. 입자 시스템은 현상을 입자의 구름으로 모델링하며, 부착 변환으로는 표현하기 어려운 동적 시스템유체 역학의 정의를 단순화하기 위해 확률적 과정을 이용한다.[2]

일반적인 구현

공기입자의 동적 시뮬레이션 (Bifröst)

입자 시스템은 일반적으로 다음과 같은 모듈을 구현한다.

  • 위치를 제공하고 새로운 입자를 생성하는 방출 단계.
  • 매개 변수를 업데이트하고 입자가 어떻게 진화하는지 시뮬레이션하는 시뮬레이션 단계.
  • 입자를 렌더링하는 방법을 지정하는 렌더링 단계.

방출 단계

이미터는 산란율(시간 단위당 얼마나 많은 입자가 생성되는가), 입자의 초기 속도 벡터(생성 시 방출되는 방향)를 구현한다. 메쉬 물체를 이미터로 사용할 때, 초기 속도 벡터는 물체의 개별 면에 대해 보통으로 설정되기 때문에 입자가 각 면으로부터 직접 "분사"되기는 하지만 선택적으로 보이도록 한다.

시뮬레이션 단계

시뮬레이션 단계에서는 산란율과 업데이트 간격에 따라 생성해야 하는 새로운 입자 수를 계산하고, 각각 배출자의 위치와 지정된 산란 영역을 기준으로 3D 공간에서 특정 위치에 산란한다. 각 입자의 매개변수(즉, 속도, 색상 등)는 이미터의 매개변수에 따라 초기화된다. 각 업데이트 시 기존 입자가 수명이 초과되었는지 여부를 검사하며, 이 경우 시뮬레이션에서 제거된다. 그렇지 않으면 입자의 위치 및 다른 특성은 물리적 시뮬레이션을 기반으로 진전되는데, 이는 현재 위치를 번역하는 것만큼 간단할 수도 있고, 외부 힘(중력, 마찰, 바람 등)을 고려한 물리적으로 정확한 궤적 계산을 수행하는 것만큼 복잡할 수도 있다. 입자가 환경의 장애물에서 튕겨 나오거나 다른 방법으로 상호작용하도록 장면에서 입자와 지정된 3D 물체 사이의 충돌 탐지를 수행하는 것이 일반적이다. 입자 간의 충돌은 계산적으로 비용이 많이 들고 대부분의 시뮬레이션과 시각적으로 관련이 없기 때문에 거의 사용되지 않는다.

렌더링 단계

업데이트가 완료된 후, 각 입자는 보통 질감이 있는 광고판 4중(즉, 항상 뷰어를 향하고 있는 사각형)의 형태로 렌더링된다. 그러나, 이것은 때때로 게임에 필요하지 않다; 작은 해상도/제한된 처리력 환경에서 입자를 하나의 픽셀로 렌더링할 수 있다. 반대로, 모션 그래픽 입자는 고해상도에서도 충실성을 보장하기 위해 꽉 찼지만 크기가 작고 렌더링하기 쉬운 3D 모델인 경향이 있다. 입자는 오프라인 렌더링에서 메타볼로 렌더링될 수 있다; 입자 메타볼로부터 계산된 이소서퍼페이스는 꽤 설득력 있는 액체를 만든다. 마지막으로, 3D 메쉬 물체는 입자들을 "서게" 할 수 있다. 눈보라는 한 개의 3D 눈송이 메쉬가 수천 또는 수백만 개의 입자의 위치와 일치하도록 복제되고 회전되는 것으로 구성될 수 있다.[3]

입자 시스템 분류법

1983년에 리브스는 움직이는 입자 시뮬레이션(스파크, 비, 화재 등)을 만들면서 애니메이션 포인트만 정의했다. 이러한 구현에서 애니메이션의 각 프레임은 라이프사이클의 특정 위치에 각 입자를 포함하며, 각 입자는 우주에서 단일 지점 위치를 차지한다. 불이나 연기 같은 소멸되는 효과의 경우, 각 입자는 퇴색 시간이나 고정된 수명을 부여 받는다;[1] 대신 눈보라나 비와 같은 효과는 특정 시야를 벗어나면 입자의 수명을 종료한다.

1985년, 리브스는 각 입자의 전체 수명 주기를 동시에 렌더링하는 것을 포함하도록 개념을 확장했고, 그 결과는 입자를 점보다는 전체 궤적을 보여주는 정적 물질 가닥으로 변환한다. 이 가닥들은 머리카락, 털, 풀, 그리고 비슷한 재료들을 모사하는데 사용될 수 있다. 가닥은 애니메이션 입자가 복종하는 동일한 속도 벡터, 힘장, 산란율, 편향 매개변수로 조절할 수 있다. 또한 Strand의 렌더링 두께는 제어할 수 있으며, 일부 구현에서는 Strand의 길이에 따라 달라질 수 있다. 매개변수의 다른 조합은 강직성, 절름거림, 무거움, 강직성 또는 그 밖의 특성을 부여할 수 있다. 또한 Strand는 질감 매핑을 사용하여 이미터 표면 전체에 걸쳐 Strand의 색상, 길이 또는 기타 특성을 변경할 수 있다.[4]

1987년에 레이놀즈는 군중심기, 목축, 또는 학교생활의 개념을 소개한다. 보이드 모델은 목표 추구, 충돌 회피, 무리 중심, 제한된 지각 등 외부 상태 상호작용을 포함하도록 입자 시뮬레이션을 확장한다.[5]

2003년에 뮐러는 점성, 압력, 표면 장력을 시뮬레이션하여 입자 시스템을 유체학으로 확장한 후, 평활 입자 수역학으로 이산 위치를 보간하여 표면을 렌더링했다.[6]

5000개의 애니메이션 입자를 방출하는 큐브, 음의 Y 방향으로 "중력" 힘에 복종한다.
정적 입자 또는 가닥을 사용하여 렌더링한 동일한 큐브 이미터.

개발자 친화적인 입자 시스템 도구

게임 엔진, 디지털 콘텐츠 생성 시스템, 효과 어플리케이션에 포함될 수 있는 입자 시스템 코드는 처음부터 작성하거나 다운로드할 수 있다. Habok은 다중 입자 시스템 API를 제공한다. 그들의 Havok FX API는 특히 입자 시스템 효과에 초점을 맞춘다. 현재 엔비디아의 자회사인 에이지아는 언리얼 엔진 3 게임을 포함한 많은 게임에서 사용되는 입자 시스템과 다른 게임물리 API를 제공한다. 게임메이커 스튜디오유니티 모두 인디, 취미 생활자, 학생 게임 개발자가 자주 사용하는 2차원 입자 시스템을 다른 엔진으로 수입할 수는 없지만 제공하고 있다. 많은 다른 해법들도 존재하며, 만약 비표준적인 효과나 행동을 원한다면 입자 시스템은 처음부터 자주 쓰여진다.

참고 항목

참조

  1. ^ a b Reeves, William (1983). "Particle Systems—A Technique for Modeling a Class of Fuzzy Objects" (PDF). ACM Transactions on Graphics. 2 (2): 91–108. CiteSeerX 10.1.1.517.4835. doi:10.1145/357318.357320. S2CID 181508. Retrieved 2018-06-13.
  2. ^ Hastings EJ, Guha RK, Stanley KO (2008-12-09). "Interactive evolution of particle systems for computer graphics and animation". IEEE Transactions on Evolutionary Computation. 13 (2): 418–32. CiteSeerX 10.1.1.365.5720. doi:10.1109/TEVC.2008.2004261. S2CID 11390585. Retrieved 2022-01-17.
  3. ^ Sims K (1990-09-01). "Particle animation and rendering using data parallel computation" (PDF). Proceedings of the 17th Annual Conference on Computer Graphics and Interactive Techniques: 405–413. Retrieved 2022-01-17.
  4. ^ Reeves WT, Blau R (07-01-1985). "Approximate and probabilistic algorithms for shading and rendering structured particle systems". ACM SIGGRAPH Computer Graphics. 19 (3): 313–22. doi:10.1145/325165.325250. Retrieved 2022-01-18. {{cite journal}}: 날짜 값 확인: date= (도움말)
  5. ^ Reynolds, Craig (1987). Flocks, herds and schools: A distributed behavioral model. SIGGRAPH '87: Proceedings of the 14th Annual Conference on Computer Graphics and Interactive Techniques. Association for Computing Machinery. pp. 25–34. CiteSeerX 10.1.1.103.7187. doi:10.1145/37401.37406. ISBN 978-0-89791-227-3. S2CID 546350.
  6. ^ Müller M, Charypar D, Gross M. "Particle-Based Fluid Simulation for Interactive Applications" (PDF). SIGGRAPH Symposium on Computer Animation. Retrieved 2022-01-18.

외부 링크