메뉴 건너뛰기

조회 수 24 추천 수 0 댓글 0


image.png

 

 

유니티로 게임을 개발하며 텍스쳐 압축 방식을 별로 중요하게 생각하지 않았고

쓸데 없이 더럽게 많다고 생각해 왔었다.

하지만 아이폰 사파리의 거지같은 메모리 제한 (380MB 정도 되는듯?) 속에서 WebGL 게임을 개발해야하는 상황에 놓이고,

어떻게든 텍스쳐들이 메모리를 차지하는 용량을 줄이려는 공부 끝에 그 진실을 이제야 알게 되었다.

 

 

 

 

image.png

(챗 GPT 구라핑 주의)

 

챗GPT의 구라핑을 적당히 필터링 해가며 물어본 결과.

압축 포맷과 손실 압축률 두 가지로 구분해서 이해하면 된다는 것을 깨달음!

 

기본적으로 컴퓨터에 1024x1024 해상도를 비압축으로 그대로 메모리에 올리면 무려 4MB라는 메모리를 차지하게 된다.

 

[1. 압축 포맷]

비압축, DXT5, ETC, ASTC 등...

완전히 로드되어서 메모리에 올릴 때 그 용량에 영향을 준다.

위의 예시 정리대로 같은 1024x1024인데 제법 다르다.

게임을 실행하는 해당 머신 GPU가 압축 포맷 방식을 지원해야만 쓸 수 있음.

[iOS 사파리 15버전 이상에서 WebGl 2.0 지원으로 ASTC 사용 가능] 뭐 이런 스펙들이 있음.

 

예를 들어 DXT5 1024x1024는 메모리 프로파일러로 찍어보면

메모리 용량 1MB + 텍스쳐 파일 용량 101KB로 총 1.1MB의 메모리를 차지했다.

 

반면 ASTC 6x6 Block은 (0~100% 퀄리티 조절은 왠지 효과가 없었다.)

메모리 용량 457KB + 텍스쳐 파일 용량 457KB로 0.9MB 메모리를 차지했다.

 

그리고 ASTC 12x12 Block은

메모리 용량 115KB + 텍스쳐 파일 용량 116KB로 231KB 메모리였다.

 

용량 종류가 2개인건 하나는 메모리 하나는 GPU 메모리 인듯? (잘 모름)

 

 

[2. 손실 압축률]

빌드 용량을 줄이기 위해서 동일 해상도 + 동일 포맷 내에서 퀄리티를 저하시키는 방법

WebGL 빌드 같은 경우 매번 클라이언트를 새로 전송하기에 이것도 손보면 좋긴하지만

아무튼 jpg 깍두기 같은 것들이 더욱 생겨난다.

 

 

 

 

조상님들은 메모리를 아끼기 위해 똥꼬쇼를 열심히 해왔고

지금도 하고 계시다.

 

 

 

image.png


사진 및 파일 첨부

여기에 파일을 끌어 놓거나 왼쪽의 버튼을 클릭하세요.

파일 용량 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
53 게임 유니티 WebGL 빌드에서 렌더링 해상도가 너무 크게 나올때 조루나 2024.12.11 6
» 게임 유니티질 8년차에 깨달은 텍스쳐 압축과 메모리 할당 유니티로 게임을 개발하며 텍스쳐 압축 방식을 별로 중요하게 생각하지 않았고 쓸데 없이 더럽게 많다고 생각해 왔었다. 하지만 아이폰 사파리의 거지같은 메모리... file 조루나 2024.11.09 24
51 그외 게임 번역 AI로 날먹하는 중... file 조루나 2024.08.13 60
50 그외 [C#] float.parse와 포르투갈어 사건 (CultureInfo 관련) 조루나 2024.07.26 47
49 게임 유니티 Shader Variant Loading Settings을 쓰니 메모리가 절약되네 file 조루나 2024.07.23 46
48 그외 지프로 슈퍼라이트 마우스 휠 인코더 청소할 때 꼭 풀어야 하는 나사 정리 file 조루나 2024.05.21 98
47 그외 게임 메이커 스튜디오 C# dll 라이브러리 만들 때 .NET 프레임워크 버전 문제 file 조루나 2024.05.03 103
46 게임 애드몹 Code 3 no fill 에러 원인 중 한 가지 file 조루나 2024.01.16 116
45 게임 유니티 특) 9 Slice랑 Filled 동시에 안 됨. 조루나 2023.11.29 116
44 게임 메쉬로 Progress circle 그리기 file 조루나 2023.11.23 112
43 그외 남이 만든 게 안 돌아가서 뜯어고친 C# 셀레니움 크롬 드라이버 자동 업데이트 조루나 2023.11.23 98
42 게임 우효, 이런 좋은 버그리포트 도구가 있었다니 Sentry 1 file 조루나 2023.05.08 151
41 게임 Unity 빌드 전 대화상자 출력 조루나 2023.04.20 98
40 게임 유니티 모바일에서 VideoPlayer로 영상 재생하면 자꾸 멈춘다. 조루나 2023.02.23 139
39 게임 세 가지 셀 셰이딩 에셋의 단순 프레임 비교 file 조루나 2023.02.03 144
38 게임 유니티 transform 참조의 문제 file 조루나 2022.11.10 163
37 게임 에셋 Super Tilemap Editor가 바닥면 Collider를 만들어주지 않아 file 조루나 2022.10.27 113
36 게임 미소녀 뱀파이어 서바이버즈를 만들자! - 캐릭터 몸에 마법 문신 넣기 file 조루나 2022.10.06 209
35 게임 Unity 2020에서 Spine 3.6 Runtime이 AtlasAsset을 제대로 Import하지 못 할 때 file 조루나 2022.09.20 128
34 게임 스파인 텍스쳐 런타임 색칠하기 file 조루나 2022.09.02 113
Board Pagination Prev 1 2 3 Next
/ 3