본문 바로가기

전체 글

(50)
Unity 텍스처 압축 시 주의 할 점. 런타임 최적화를 위해 머터리얼에 들어있는 텍스처를 압축 하는 중에 문제 발생. 머터리얼에 들어 있는 텍스처를 수정하기 위해서는 Read/Write가 true가 되어야하는데 이것은 에디터에서만 설정할 수 있다. 텍스처를 복제하여 새롭게 생성해주면 수정이 가능하기 때문에 기존의 텍스처를 복제하려고 했다. 하지만 문제가 많이 발생했다. 1. 에디터에서는 잘 동작. 하지만 윈도우 빌드에서는 GetRawTextureData 부분에서 읽을 수 없다는 에러발생.(GetPixels도 마찬가지)Texture2D tex = (Texture2D)mat.GetTexture(name); byte[] data = tex.GetRawTextureData(); Texture2D compressTex = new Texture2D(te..
텍스처 해상도 = 높이 * 너비 픽셀 총 개수= 해상도 예를 들어 RGB16 텍스처가 있다고 한다면 RGB 16비트 이미지는 각 색상 채널(Red, Green, Blue)이 16비트로 표현. 이것은 각 색상 채널이 2^16 (65,536) 가지의 서로 다른 색상을 표현할 수 있다는 것을 의미. 따라서 각 픽셀은 다음과 같이 데이터를 가지고 있음Red 채널: 16비트Green 채널: 16비트Blue 채널: 16비트그러므로 각 픽셀은 16비트 + 16비트 + 16비트 = 48비트의 데이터를 가지고 있다. 그리고 픽셀의 수와 비트의 상관 관계에 따라 전체 이미지의 데이터 크기를 계산할 수 있다. 만약 이미지의 해상도가 256x256 픽셀이라면, 전체 이미지의 데이터 크기는 다음과 같이 계산. 전체 이미지의 데이터 크..
그래픽스 퍼포먼스 최적화 전후 런타임 중에 3D 모델을 임포트 하는 프로젝트 진행 중, 300MB 크기의 모델을 임포트 하니 프레임 드랍이 너무 심함. 아무리 에디터에서 테스트 했다지만 게이밍 노트북으로 fps가 30까지도 떨어져버림. 그래서 최적화를 진행하게 됨. -최적화 전(FPS : 30 ~ 90) -최적화 시도 과정 가장 먼저 한 시도는 하위 오브젝트의 모든 메시들을 하나의 메시에 서브메시로 병합. 하지만 이 방법은 batches 는 물론이고 프레임 드랍도 그대로. batch가 어디에 영향을 받는지 테스트 해보니 머터리얼 수와 서브메시의 수에 영향을 받는 것을 확인. 그래서 머터리얼을 유지하면서 서브메시를 줄이기 위해 고민하다가 같은 속성 값들을 가진 머터리얼끼리 묶어 서브 메시들을 한번더 병합. 그러자 batches 1590..