개요
텍스처 샘플 사용시, 발생하는 UV Seam이 보이는 문제에 대한 해결법을 알아본다.
이때 No Mip Level을 사용하기도 하지만 성능 부하가 큰 방법이므로 아래 방법을 권장한다.
이펙트 머티리얼 제작시에는 주로 Radial UV를 사용했을 때, 해당 문제가 발생한다.
내용
- 원리
텍스처 샘플이 현재 Mip Level을 알지 못해 발생하는 문제다.
따라서 명시적으로 Mip Level을 계산해서 넣어준다.
- 방법
1. Texture Sample 노드에서 Mip Value Mode를 설정
2. UV의 DDX DDY 값을 계산해 입력
참고사항
DDX와 DDY를 명시적으로 계산하여 밉 레벨에 사용 (MipValueMode를 Derivative로 설정):
- 성능 부하: No Mip Level보다는 훨씬 효율적이지만, 추가적인 GPU 연산 오버헤드가 있습니다.
- 이유:
- 밉맵(Mipmap)을 사용합니다. 밉맵은 다양한 해상도로 미리 축소된 텍스처를 여러 개 생성하여 저장하는 기법입니다.
- GPU는 DDX와 DDY를 통해 계산된 미분값을 바탕으로 현재 픽셀이 어떤 밉 레벨을 사용하는 것이 가장 적절한지 판단합니다.
- 가까운 오브젝트는 고해상도 밉 레벨을, 멀리 있는 오브젝트는 저해상도 밉 레벨을 사용하므로, 메모리 대역폭 사용을 최적화하고 캐시 효율성을 높입니다.
- 단점: DDX와 DDY를 계산하는 것 자체가 GPU 내에서 추가적인 연산(미분 계산)을 요구합니다. 이 연산은 GPU의 ALU 사용량을 늘리고, 인접 픽셀 정보를 필요로 하므로 파이프라인에 미세한 부하를 줄 수 있습니다. 하지만 이 부하는 No Mip Level의 극심한 메모리 대역폭 부하와는 비교할 수 없을 정도로 작습니다.
대역폭 (Bandwidth)
대역폭은 데이터 전송 통로의 넓이이며, 메모리 대역폭은 CPU/GPU와 메모리 간 데이터 전송 속도다.
게임에서 대역폭 부하가 심하다는 것은 GPU가 VRAM에서 데이터를 읽고 쓰는 작업이 너무 많아서 병목 현상이 일어난다는 의미이다.
참고영상
'이펙트 (FX) > 이펙트 팁 : Unreal' 카테고리의 다른 글
[Unreal/Niagara] Death 이벤트 발생시 파티클 스폰하는 법 (0) | 2025.06.30 |
---|---|
[Unreal/Material] 굴절 잘 보이게 DOF 설정하기 (리프랙션, Refraction, Before DOF) (2) | 2025.06.29 |
[Unreal/Niagara] 스프라이트에 랜덤 머티리얼 적용하기 (Visibility Tag) (0) | 2025.06.27 |
[Unreal/Niagara] 검기 이펙트 Ribbon Facing 간단 설정법 (0) | 2025.06.27 |
[Unreal/Material] 머티리얼 블렌딩 방법 소개 (0) | 2025.06.25 |
댓글