'셰이더'에 해당되는 글 2건

  1. 2020.04.17 안드로이드에서 버벅거리는 UV이동 셰이더

안드로이드에서 버벅거리는 UV이동 셰이더

"모바일 기기에서 시간이 지날수록 렉이 걸리는 유니티 셰이더"

공부랑 만드는 걸 병행하다보니 기초적인걸 놓치는 때가 있어 기록용으로 작성.

처음에는 해당 셰이더가 적용된 매쉬를 제외하고는 화면내에 움직이는 요소가 없어 씬 FPS의 저하라고 생각했으나,여러 모바일기기에서 확인 한 결과 아래 이미지속의 구석 마법진을 제외한 두개 이펙트가 시간에 비례해 느려지는 것을 확인할 수 있었다. 해당 현상은 기종별로 일어나는 시간이 상이했으나, 테스트한 기기에서는 최소 30초 ~ 2분정도이내에 발생하였다.

에디터상에서는 문제가 없다.
테스트용 씬이라 무겁지 않다.

이럴땐 프레임디버거를 켜보라고 배웠기때문에 켜봤다.

문제의 이펙트들은 투명한 오브젝트
야속하게 늘어나는 시간들...

아무래도 시간이 무한히 늘어나는 게 문제였던 것 같다. 본 이펙트가 지워졌다 재소환되는 이펙트가 아니기때문에 숫자를 제한할 필요가 있었다.

코드를 보러갔다.

_SpeedX , _SpeedY에 변수가 들어가면 느려지는것을 확인했다.

마법진 같은 경우는 회전에 sin , cos 를 사용하고있기 때문에 프레임이 떨어지지 않은 듯.

 frac() 을 넣어준다. 띄어쓰기가 두번되있어 불편한 스샷.

소수점 아래를 반환하는 frac() 이라면 시간값이 아무리 올라가도 폭파 당하지 않을 것이다. 이렇게 코드를 고쳐두고 씬을 10분정도 재생시킨 결과 아무 문제도 일어나지 않고 이펙트의 프레임 하락도 사라졌다. 해당 이펙트가 10분이상 재생 될 일은 없기때문에 이쯤하면 괜찮을 것 같다. 아니면 아마 후속글 쓰러 오겠지.

안드로이드에서 영상 녹화하기가 귀찮아 실기움짤은 없지만 이것으로 해결은 되었다. :)

prev 1 2 next