프로그래밍2012. 12. 30. 20:27


프로젝트 중에 내가 맡은 UI의 랜더 부분 때문에 게임의 프레임이 튀는 문제가 생겼다.

UI의 프레임에서 화면크기만한 텍스쳐에 모든 오브젝트를 미리 그려놓고 UI랜더는 그 텍스쳐 한장만 화면에 그리는 비교적 단순한 로직이고 UI랜더를 포함함 모든 오브젝트는 최상위 부모 클래스의 같은 함수로 랜더되기 때문에 UI랜더에서 문제가 생긴다면 UI프레임에서도 문제가 생겨야 하지만 UI프레임에서는 문제가 생기지 않아서 이 문제의 원인이 상상조차 안됐었는데 의외로 간단한 부분이 문제였다.


다른 오브젝트와 UI랜더의 유일한 차이점은 UI랜더에서만 노말맵을 사용하지 않는 다는 것인데 기본 노말맵은 셋팅되어있고 노말맵을 NULL로 셋팅하려고 하면 예외처리로 원래 텍스쳐를 그대로 들고 있기 때문에 의도치 않게 노말맵을 셰이더에 보내주면서 셰이더에는 노말맵 텍스쳐를 선언하지 않은게 원인이었다.


ps. 컴퓨터는 거짓말을 하지 않는다.

컴퓨터가 거짓말을 한다면 그건 사람이 시켰기 때문이다.

그게 나야~~ 둠빠 둠빠 두비두밥

Posted by 버블껌