i셰이더가 맞는 발음이라고 나무위키에서 침튀기면서 가르치던 것 같지만 나는 쉐이더가 더 좋으므로 쉐이더라고 하겠음


블럭타입 복셀 지형 렌더러를 만들면서

텍스처 하나에 모든 이미지를 다 몰아넣고 쉐이더 상에서 잘라쓰려고 아틀라스 코드를 만들었다

순조롭게 잘 되길래 다른기능 넣고 최적화 작업으로 넘어가서 한참 만지다가 우연히 다른 컴퓨터로 옮겨서 테스트해봤는데


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cf8fae3880b4c331c6467f5f0847fd1dec1e28dabb0c561df0a46af1a943bf31fdb77eba3bf4cf


이지랄이 난거다. 



원래 이렇게 되어야 하는건데.


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cf8fae3880b4c331c6467f5f0847fd1dec1e28dabb0c561df0a46af6aa42b036f9e57ebaf93d2a







중간과정에는 아무도 관심이 없을테니 생략하고 결론부터 말하자면, 그래픽카드 종류별로 내부 쉐이더 엔진이 계산을 할 때 정수연산 오차의 나머지값이 다 따로 나온다.

개발중인 로우엔드 GPU는 인텔 내장인데 테스트용으로 옮긴 컴은 엔비디아였던게 화근이었다.

인텔은 나머지수를 칼같이 잘라줬는데 엔비디아는 정수변환을 하면서 슬쩍 모자라게 잘라준 것.


여담으로 자료를 찾아보니 암드 그래픽카드는 심지어 세대별로 약간씩 다 다르다고 한다.