일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 벡터
- Specular
- 개인 바이트
- URP
- Rim Light
- Windows Build
- 프로그래밍 기초
- Virtual Byte
- ASW(Application SpaceWarp)
- AppSW
- Cell Shader
- 3d
- URP로 변경
- 게임 수학
- Three(Two) Tone Shading
- OculusMotionVectorPass
- C언어
- Cell Look
- 가상 바이트
- 작업 집합
- Toon Shader
- 메모리 누수
- Cartoon Rendering
- ColorGradingLutPass
- VR
- working set
- Private Bytes
- Today
- Total
WinCNT
Visual Effect Graph(VFX Graph)의 도입 체험기! 본문
서론
프로젝트에서 Visual Effect Graph(줄여서 VFX Graph)를 도입하자라는 제안이 있었다
물론 아트 실력이 일천한 필자지만, 나중에 연관될 것은 분명했으므로 우선은 도입부터 해봤다
(참고했던 사이트는 맨 밑에 정리)
Visual Effect Graph(VFX Graph)란 뭐지?
자세한 건 공식 문서
쉽게 말해 컴퓨터 셰이딩(즉 GPU)을 사용하는 업그레이드된 파티클 시스템이라고 할 수 있겠다(할 수 있나?)
대부분의 연산을 GPU에서 하기 때문에 기존의 파티클 시스템보다 대량의 파티클을 처리할 수 있다는 장점이 있다
대신 물리 연산을 유니티 엔진의 Physics System을 사용하지 못 하고(Depth Buffer를 이용한다는 것 같다),
GPU의 연산 결과를 CPU로 가져와서 사용하기에는 어려움이 따른다는 단점 등이 있다
(GPU에서 CPU로 데이터를 복사하는 건 꽤나 코스트가 높을테니...)
VFX Graph의 Package 도입하기
Package Manager에서 Visual Effect Graph를 Install하자
(아쉽게도 VFX라고 검색하면 나오지 않는다…)
참고로 테스트용 프로젝트의 URP 버전도 14.0.8이었다
아마도 URP의 버전을 따라가는 게 아닐까 싶다
일단 무작정 만들어보자
만들어진 Hierachy에 드래그하면 짜잔~!
VFX Graph의 기본 구성
만들었던 VFX Graph를 더블 클릭하면 VFX Graph의 윈도우가 열린다
작성하는 방식은 유니티의 Shader Graph와 비슷하게 Node를 만들어 연결하는 방식이다
기본 노드는 Spawn과 System(Initialize Particle, Update Particle, Output Particle Quad)로 구성되어 있었다
그 블록들을 Context라고 부르며, 파티클에 적용되는 작업 순서를 나타낸다
셰이더 그래프와 같이 노드들로 값들을 연산에서 Context에 Input하는 방식을 취하고 있었다
어차피 직접 만들건 아니니 샘플이나 넣어보자
이번엔 도입이 목적이었고 이 정도로 알아보기로 하고…
우선 유니티의 VFX Graph 샘플 프로젝트가 있길래 그 중에 Butterflies 샘플을 넣어보기로 했다
https://github.com/Unity-Technologies/VisualEffectGraph-Samples
그냥 가져오는 게 됐으면 최고였지만 VFX Graph 샘플은 아쉽게도 HDRP라서 필자의 URP 프로젝트에는 바로 가져올 수는 없었다
그런데 VFX Graph는 복붙 기능이 매우 강력해서 시험삼아 복붙하니 대부분의 노드들을 가져올 수 있었다
HDRP용 Context는 복붙이 안 되되서 수동으로 URP용 Context로 바꿔주고 설정이나 노드들도 최대한 똑같이 바꿨다(생각보다 중노동이긴 했지만)
Hierachy에 드래그하니 샘플의 나비들도 잘 나왔다!
VR에서도 확인해봤는데 이런 느낌이었다
마무리
VFX Graph 도입은 더미 프로젝트에서 스무스하게 진행됐다
그렇다! 더미 프로젝트에서는…!
현 프로젝트에도 이 방법으로 도입하니 VFX 파일을 열자마자 에러 로그의 향연이 펼쳐졌다
원인은 또 AppSW에 있었는데…이건 기회가 되면 따로 정리해보고자 한다
뭔가 이상한 현상이 일어났을 때 AppSW을 찍으면 절반은 맞는 것 같다
참고 사이트
비주얼 이펙트 그래프로 환상적인 비주얼 구현하기 | Unity Blog
비주얼 이펙트 그래프 (Visual Effect Graph)
https://github.com/Unity-Technologies/VisualEffectGraph-Samples
'Unity > URP or Shader 관련' 카테고리의 다른 글
높이 안개(Height Fog)를 Global Shader Variable로 변경하기! (0) | 2024.09.18 |
---|---|
커스텀 셰이더에 높이 안개(Height Fog) 구현해보기! (0) | 2024.08.01 |
Alpha 값으로 Blue Noise를 이용한 Dither를 해보자! (0) | 2024.06.24 |
Fill Amount 기능이 있는 간단(?) Dial Gauge UI(가칭) 셰이더 만들어보기! (1) | 2024.06.16 |
Fill Amount 기능이 있는 간단 Bar Gauge UI 셰이더 만들어보기! (0) | 2024.04.11 |