텍스쳐 사이즈에 따라 보이는 것의 퀄리티가 달라지죠. 하지만 하드웨어의 성능이나 디스크 이슈로 인해서 퀄리티를 버리고 최적화를 해야합니다.
여기서 최대한 퀄리티와 메모리 용량, 디스크 용량을 챙기는 방법을 공부해보고자 하였습니다.
유니티에서 텍스쳐의 설정에 따라 메모리에 올라가는 양과 디스크에 저장되는 리소스의 양이 달라집니다.
일단 최소한으로 설명해보자면,
손으로 간단하게 그려본 노이즈 텍스쳐를 최적화 해보겠습니다, 노이즈는 대체로 디졸브나 노말(워프) 효과를 위해 많이 사용하기에 대표가 되는 텍스쳐이므로 설명할때도 좋을것같다고 생각했습니다.
우선 저는 최적화를 할 때에 기본적으로 노이즈에서는 sRGB를 끄는 편입니다. 어짜피 저는 노이즈의 R채널 하나만 쓰기 때문에 여러 채널을 모두 지니고있을 필요가 없습니다.
그 다음 켜져 있는것이 Mipmap인데요, Mipmap은 제가 알고있기로는 텍스쳐 LOD느낌으로 보시면 될 것 같습니다. 그렇기에 모든 텍스쳐 사이즈를 갖고 가기 때문에 용량이 많이 늘죠.
가장 중요한 부분은 아래에 있는 Max Size가 있는 부분인데요.
저기 있는 포멧, 저게 최적화에 많은 영향을 미칩니다.
모바일 게임에서는 ASTC를 많이 사용했는데요. 이게 경험상 퀄리티도, 압축 성능도 뛰어났기 때문입니다. ETC와는 다르게 Android, IOS 모두 사용이 가능했기도 했구요.
그래서 ASTC는 무엇일까요?
ASTC는 Adaptive and Scaleable Texture Compression, 원하는 크기의 텍스쳐 압축이 가능하다는 말입니다.
ASTC의 압축 방식은 원하는 블록 사이즈를 지정해서 그것으로 텍스쳐를 압축합니다.
4x4, 8x8, 12x12 등등의 크기가 있습니다. 조금 뭉게져도 상관이 없는 것들은 12로 압축을 해서 최적화를 챙기고, 그래도 퀄리티가 더 중요한 텍스쳐 (캐릭터, 배경 등등)은 4x4를 사용하여 퀄리티를 좀 더 챙깁니다. 우선 저는 이정도만 알고 활용하고 있습니다. 더욱 자세한 정보가 있으면 알려주시면 감사하겠습니다.