파티클 시스템은 파티클이라고 부르는 매우 작은 이미지나 메시를 시뮬레이션하고 렌더링하여 시각 효과를 생성합니다. 시스템의 각 파티클은 효과의 개별 그래픽 요소를 구현합니다. 또한 모든 파티클을 종합적으로 시뮬레이션하여 완성된 효과를 구현합니다.
파티클 시스템은 불, 연기, 액체 등과 같은 동적 오브젝트를 구현할 때 유용합니다. 이러한 오브젝트는 메시(3D)나 스프라이트(2D)로 묘사하기 어렵습니다. 메시와 스프라이트는 집이나 자동차 같은 솔리드 오브젝트를 묘사하는 데 탁월합니다.
파티클 시스템을 작성할 때 유연성을 발휘할 수 있도록 Unity는 두 개의 솔루션을 제공합니다. 프로젝트가 컴퓨트 셰이더를 지원하는 플랫폼을 타게팅하는 경우 Unity에서 이 두 솔루션을 모두 사용할 수 있습니다. 두 가지 파티클 시스템 솔루션은 다음과 같습니다.
다음은 두 개의 파티클 시스템 솔루션을 간략하게 비교한 표입니다. 각 솔루션에 대한 자세한 내용은 빌트인 파티클 시스템 또는 비주얼 이펙트 그래프를 참조하십시오.
기능 | 빌트인 파티클 시스템 | 비주얼 이펙트 그래프 |
---|---|---|
렌더 파이프라인 호환성 | 빌트인 렌더 파이프라인 유니버설 렌더 파이프라인 고해상도 렌더 파이프라인 | 유니버설 렌더 파이프라인 고해상도 렌더 파이프라인 |
가능한 파티클 수 | 천 | 백만 |
파티클 시스템 작성 | 인스펙터에서 Particle System 컴포넌트를 사용하는 간단한 모듈식 작성 프로세스입니다. 각 모듈은 파티클의 사전 정의된 동작을 나타냅니다. | 그래프 뷰를 사용하는 고도의 커스터마이즈 가능한 작성 프로세스입니다. |
물리 | 파티클이 Unity의 기본 물리 시스템과 상호작용할 수 있습니다. | 파티클이 비주얼 이펙트 그래프에 정의된 특정 요소와 상호작용할 수 있습니다. 예를 들어 파티클이 뎁스 버퍼와 상호작용할 수 있습니다. |
스크립트 상호작용 | C# 스크립트를 사용하여 런타임 시점에서 파티클 시스템을 완전히 커스터마이즈할 수 있습니다. 시스템의 각 파티클 시스템을 읽거나 쓰고 충돌 이벤트에 응답할 수 있습니다. 또한 Particle System 컴포넌트는 재생 컨트롤 API를 제공합니다. 즉 스크립트를 사용하여 효과를 재생하거나 일시 중지하고, 커스텀 스텝 크기로 효과를 시뮬레이션할 수 있습니다. | C# 스크립트를 통해 그래프 프로퍼티를 표시하고 액세스하여 효과의 인스턴스를 커스터마이즈할 수 있습니다. 또한 이벤트 인터페이스를 사용하여 그래프가 처리할 수 있는 데이터가 첨부된 커스텀 이벤트를 전송할 수 있습니다. 또한 Visual Effect 컴포넌트는 재생 컨트롤 API를 제공합니다. 즉 스크립트를 사용하여 효과를 재생하거나 일시 중지하고, 커스텀 스텝 크기로 효과를 시뮬레이션할 수 있습니다. |
프레임 버퍼 | 미지원 | 고해상도 렌더 파이프라인은 컬러 및 뎁스 버퍼에 대한 액세스를 제공합니다. 예를 들어 컬러 버퍼를 샘플링하고 해당 결과를 사용하여 파티클 컬러를 설정하거나, 뎁스 버퍼를 사용하여 충돌을 시뮬레이션할 수 있습니다. |
Unity의 빌트인 파티클 시스템을 사용하면 Unity가 지원하는 모든 플랫폼에 대한 효과를 구현할 수 있습니다. 빌트인 파티클 시스템은 CPU에서 파티클 동작을 시뮬레이션하여 다음의 이점을 제공합니다.
빌트인 파티클 시스템을 사용하는 자세한 방법은 Particle System 컴포넌트를 참조하십시오.
비주얼 이펙트 그래프는 Unity 프로젝트를 위한 대규모 시각 효과를 구현할 때 사용할 수 있는 패키지입니다. 비주얼 이펙트 그래프는 GPU에서 파티클 동작을 시뮬레이션하므로, 빌트인 파티클 시스템보다 훨씬 더 많은 파티클을 시뮬레이션할 수 있습니다. 매우 많은 파티클이 포함된 시각 효과를 구현하고 고도로 커스터마이즈된 동작이 필요하다면 빌트인 파티클 시스템 대신에 비주얼 이펙트 그래프를 사용하십시오. 비주얼 이펙트 그래프를 설치하고 사용하는 자세한 방법은 시작하기 가이드를 참조하십시오.
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.