ios에서 grabpass

올렸던 글인데 몇가지 좀 수정해서 다시 올립니다. 

ios 빌드에서 grabpass가 적용된 쉐이더를 사용한 오브젝트들이 전부 공중에 떠버리는 문제가 발생하였습니다. 

다양한 태스크를 처리하고 있는 프로그램팀에서 바쁜 나머지, 자체 해결 불가 판정을 내리고, 저한테 태스크가 빌드용 맥킨토시와 함께 넘어왔습니다. 

저도 아트업무가 밀려 있는 상태여서 어떤문제인지 틈나는시간에 추리만 하다가.

에어컨 끄고 잠자다가 더워서 깼을때 ztest가 떠오르더군요. ztest를 기준으로 잡고 디버깅을 시작했습니다. 

ztest는 정상 작동하고 있다는걸 알았습니다. (metal이라고 ztest가 뒤집히는건 아니더군요. ㅎ...하긴 그렇다면 다른쉐이더도 다 꼬였겠죠)

두번째는 뎁스값을 인위로 조작해보자 였습니다. 
인위로 10 20 30 밀어가면서 빌드 했죠.(실기테스트에서만 나타나는 문제여서 그랬습니다. )

문제의 grabpass가 적용된 오브젝트는 다른 모델과의 뎁스테스팅을 거치지 못하고 一자를 그리며 사라졌습니다. 

이것으로 다른 용의자가 사라지고 범인은 하나로 좁혀 졌습니다. 

뎁스버퍼가 날아갔다.

grabpass depth problem ios 으로 구글링을 하였습니다. 

관련문서를 찾아내었고 문제는 antialias옵션이 grabpass를 사용하는 쉐이더에서만 문제를 일으킨 것이었습니다. 

해결되었고 지금은 잘 돌아가고 있습니다. 



교훈은 ,  피곤할땐 쉬자., 디테일을 잃지말자. 

덧글

댓글 입력 영역



메모장

Junhyuck Park
(PN/pakdragon,pakk)
MALE E-mail:pakdragon57@gmail.com