Starling 텍스쳐를 다루면서 궁금했던게 바로 ATF(Adobe Texture Format)이었습니다.


ATF : http://www.bytearray.org/?p=4472


항상 텍스쳐를 다루면서 이미 바이너리로 존재하는 데이터를 꼭 ByteArray로 변환해서 텍스쳐로 올려야하나?


라는 생각을 했었는데


바로 이 ATF 포맷이 그것을 지원하는 것 같습니다.


설명에 보면


 - 렌더링이 빠르다.

 - 텍스쳐 메모리가 적다.

 - 텍스쳐 메모리로 올리는 속도가 빠르다

  - mipmap을 자동으로 생성해준다.

 - 압축을 통해 같은 사이즈에서 보다 높은 resolution이 가능하게 합니다(?)


텍스쳐 메모리를 적게 차지하고 업로드 속도가 빠르다는게 매력적이었습니다.


규모가 큰 게임을 만들면 텍스쳐 처리가 초기 버벅임의 주범이었습니다.


때문에 텍스쳐를 보다 효율적으로 다루는 방법이 필요했었는데


ATF 포맷을 보고 직접 테스트를 해봤습니다.




[ 테스트 방법 ]


1024x1024 사이즈의 이미지를


png와 atf 두벌을 놓고 각 10개씩 만들어서 생성 타임과 차지하는 메모리를 Monocle로 측정해보았습니다.


atf 파일은 uncompressed, no-mipmap으로 컨버팅했습니다.




1. PNG



초기화 시간 - 18 ms



메모리 - 11161 kb

GPU 메모리 - 61488 kb




2. ATF (Adobe Texture Format)



초기화 시간 - below 1 ms



메모리 - 10266 kb

GPU 메모리 - 61488 kb




결론


결론은 ATF 포맷이 성능이 월등했습니다.


 

 PNG

ATF 

 
 Time  18 ms

 < 1 ms

 월등히 좋음

 Memory  11161 kb

 10266 kb 

 9%

 GPU Memory  61488 kb  61488 kb   0%
 File size  312 kb  83 kb   276%


파일 사이즈에서부터 속도까지 매우 훌륭했습니다.


다만 주의할것이 이번 테스트는 OS X에서 테스트한겁니다.


다음에는 모바일에서 테스트를 해봐야할 것 같습니다.

+ Recent posts