개요
RGB로 압축된 시퀀스 텍스처를 재생하는 방법이다.
압축된 텍스처는 아래 그림과 같은 이미지다.
R에는 1~64
G에는 65~128
B에는 129~192
프레임이 들어가있다. (A까지 사용시에는 193-256까지 가능하다. 하지만 용량 2배가 됨)
이러한 패킹 방식을 Super Pack이라고 하나보다. (하단 링크에서 참고한 용어)
원리
UV 좌표를 좌에서 우로 훑으면서, 순차적으로 내려오는 UV 값을 만든다.
이는 기본적인 Flipbook 개념과 동일하다.
단, 주요한 차이점은 해당 값을 활용하여 Texture Sample 이후에,
RGBA 채널을 순차적으로 필터링을 한다는 점이다.
채널 필터시에는 곱하기 연산을 한번에 하기 위해 내적을 사용한다.
내적 계산법은 아래와 같다.
같은 위치의 성분끼리 곱하고, 마지막에 모두 더하는 것이다.
A⋅B = (a1⋅b1)+(a2⋅b2)+(a3⋅b3)+(a4⋅b4)
따라서 곱하는 과정에서 Channel Filter 값이 0인 색은 날아가고,
1인 곳만 남은 후에 더해지므로, 현재 마스킹된 채널의 이미지만 나오게 된다.
아래 이미지를 참고하면 이해가 쉽다. (RGB 채널만 사용한 예제다.)
방법
이미지 클릭시 확대됨
- 메인 노드트리 구성
- 경유 노드트리 구성
결과 (파일 첨부)
머티리얼 함수로 만들어서 사용했다.
5.4.4 버전으로 제작하였다.
머티리얼 함수 코드는 아래와 같다.
해당 내용을 복사한 후, 머티리얼 함수 제작시 에디터 안에다 붙여넣으면 된다. (동일 버전 권장)
부가설명
One Minus 노드를 사용하지 않는 이유는?
유니티와 언리얼의 좌표계 차이 때문이다.
아래 이미지와 같이 V 값이 반대다.
참고링크
아래의 글을 참고하여 구현하였다.
https://realtimevfx.com/t/flipbook-texture-packing-atlas-super-pack-and-stagger-pack/5609
후디니로 패킹된 텍스처 제작하는 법
https://monggus.tistory.com/746
'이펙트 (FX) > 이펙트 팁 : Unreal' 카테고리의 다른 글
[Unreal/Material] 디졸브 단계별 학습 및 구현 (Dissolve, 파일 첨부) (0) | 2025.01.25 |
---|---|
[Unreal/Blueprint] 랜덤하게 깜빡이는 라이트 만들기 (0) | 2025.01.15 |
[Unreal/Material] Gradient Mapping 방식 소개 (0) | 2025.01.14 |
[Unreal/Blueprint] 시퀀서에서 블루프린트 액터 파라미터 조절하는 법 (스포너블) (0) | 2025.01.09 |
[Unreal/Material] 불투명 오브젝트 블렌딩 방법 : Pixel Depth Offset 활용 (0) | 2025.01.09 |
댓글