본문 바로가기
유니티 엔진

이펙트와 찌꺼기 (VFX Artifacts)와 밉맵(mipmap)의 관계

by 대마왕J 2020. 11. 29.

가끔 이펙트를 만들때 이런 일이 일어날 수 있습니다.  

묘한 줄무늬가 생겨요 



두둥




아니 이런 텍스쳐를 이펙트로 넣었을 뿐인데 왜 갑자기 십자가 같은 줄무늬가?>???? 



이유는 mipmap 때문입니다. 



보통 저런 이펙트를 만들때의 셋팅은 저거죠. 



뭔가 긴 물체에 이펙트가 한 번만 나오길 원하기 때문에.. 텍스쳐의 속성은 Clamp로 합니다. 



그렇게 하고 타일링과 옵셋을 조절하면, 기이이이이인 메쉬에 저렇게 한 번만 나오게 할 수 있지요. 

UV 애니메이션을 조절하는 이펙트 방법으로 아주 많이 쓰이는 방법입니다. 

사실 지정된 경로를 휘리릭 따라가게 하는 흔하디 흔한 메쉬 이펙트 기법이죠. 




근데 저 경우 Clamp로 텍스쳐 옵션을 셋팅하면 이미지가 한 번만 나오면서 .. 나머지 부분이 잘립니다만. 

사실 저건 마지막 픽셀이 늘어나는 겁니다. 아예 잘리는 게 아니예요 



위 그림을 보시면, 마지막 픽셀이 검은색들이죠. 그래서 사방으로 검은색이 계속 연결되어 나오는 것입니다 


근데 이게 밉맵이 가동되면??


당장 3단계 밉맵만 가동되어도 , 마지막 픽셀이 침범되게 됩니다! 당연하지요. 각 픽셀은 절반씩 줄어들면서 블렌딩 되니까. 




그럼 , 이 이펙트가 카메라에서 조금 멀어지거나, 

환경설정에서 텍스쳐 사이즈 옵션이 줄어들거나 하게 되면 .. 

3단계 밉맵이 눈앞에 쉽게 나타나게 되는 것입니다!! 


카메라를 조금만 멀리 떨어뜨려도 바로 나오네요. 


'마지막 픽셀이 계속 늘어난다' 라는 Clamp의 옵션 때문입니다. 


그렇다면 해결책은 무엇일까요? 


1. mipmap을 쓰지 않는다


밉맵을 쓰지 않으면 되지요. 옵션에서 꺼버리면, 

메모리도 절약되고 문제도 해결됩니다. 





 그렇지만 밉맵이 가동 안되면서, 조금만 멀리 떨어지면 알리아싱 현상이 일어나게 됩니다. 지글대는 거지요. 

뭐 이게 예쁘다고 생각하는 이펙트라면 쓸 수 있겠지만... 아마 좀 멀리 떨어지면 이펙트 혼자서 튀는 모습도 볼 수 있을 겁니다. 

그것도 지글지글지글대면서 말이죠. 


이건 일반적인 경우라고는 할 수 없을 겁니다. 


그렇다면 좀 더 일반적인 해결책은? 



2. 여백을 크게 둔다



놀랍게도 이게 좀 더 일반적이고 정상적인 해결책입니다. 

어차피 밉맵때문에 외각에 묻어나는 거니까.. 


이렇게 여백을 크게 잡아 버리는 겁니다. 

낭비라고요? 네 낭비입니다. 

이펙트니까 플렉스 


'텍스쳐는 용량을 줄이기 위해서 빈 칸을 없애야 돼' 라고 교육받은 입장에서는 오히려 역으로 적용되어야 하는 기법입니다. 

이펙트는 사실, 이펙트 리소스 자체를 원래부터 크게 쓰지 않는 경우가 많습니다. 아무래도 뭔가 선명한 이미지 보다는 

볼륨스러운걸 표현하기 때문에 그런 면이 없지 않죠. 


그렇기 때문에 여백을 낭비해도 사실 최종 텍스쳐가 별로 낭비되는 것도 아닌 편입니다.  




그렇게 하면 4단계의 밉맵까지도, 여백에 묻어나지 않습니다. 



물론 그래도 5단계부터는 슬슬 기미가 보이고 



6단계는 이렇지만... 할말하않.... 


너무 멀어졌잖아요 이건ㅋㅋㅋ


어쨌건 이렇게 해 두면






대충 요래요래 문제없는 이펙트를 만들 수 있다는 겁니다. 요지는 여백이예요. 








반응형

댓글