Loading...
2017. 3. 31. 15:16

Dynamic Batching이 효율적일까?

배칭이란 무었인가?드로우 콜(DC)을 줄이기 위한 방법중 하나로 크게 정적배칭과 동적배칭으로 나뉜다. 그렇다면 DC란 무었이고 왜 줄여야 하는가?DC란 그냥 CPU가 GPU에게 메시를 그려달라는 명령이다.문제는 DC 함수를 호출할 때 마다 CPU의 부하가 발생하는 작업이 이루어 진다는 것이다.그림발췌. ARM. The Architecture for the Digital World. API Level Optimizations. 위 그림을 보면 DC가 많을수록 오버헤드와 프로세싱의 비율이 커진다.즉, DC를 적게 호출할 수록 오버헤드와 프로세싱이 줄어든다고 생각할 수 있다.그렇다면 오버헤드와 프로세싱은 무슨 작업인가?이에대한 내용은 아래 ppt의 일부에서 잘 설명되어 있다.참고 : Unite Seoul 20..

유니티 텍스처

원본 글 : Unity Texture compression and optimization개인 필요에 의해 발번역한 글 입니다.원문을 보시길 강력 추천합니다. 유니티 게임을 만들 때 어느 텍스처 압축 포맷이 가장 좋은지 일반적으로 궁금해 한다.일반적인 기준은 "디스크에서의 크기, 차지하는 메모리, 퍼포먼스"다.유니티 엔진은 많은 옵션을 가지고 있다 : ETC1, ETC2, DXT3, DXT5, 기타등등.어떻게 선택해야 할까?다른 사람들이 어떻게 포맷을 선택하는지 알기 위해 최적화 트릭에 대해 간단히 알아보자. 첫번째로 "텍스처가 GPU에서 얼마만큼의 메모리를 가질까?"를 이해해야 한다.- 근래의 많은 엔진들은 텍스처를 메모리에 있는 것과 같은 포맷으로 디스크에 저장하여, 텍스처가 필요로 하는 메모리와 같은..

Asset Bundle Compression

유니티의 에셋번들 압축유니티는 세가지 에셋번들 압축 옵션을 제공한다 : LZMA, LZ4, 그리고 비압축(UnCompressed)LZMA Format기본, 에셋번들을 만들 때 압축포맷으로 만들어 진다.표준 압축 포맷은 직렬화된 데이터 파일들의 단일 LZMA 스트림이며,사용하기 전에 전체를 압축해제 해야 한다.이 방식은 다운로드 용량이 가장 작지만, 상대적으로 느린 압축 해제로 인해,로드 시간이 더 많이 걸린다. LZ4 Format이 방식은 LZMA와는 다르게 큰 용량의 압축파일이 만들지만,대신 사용하기 전에 전체를 압축해제 할 필요가 없다.이 방식은 "chunk-based"알고리즘으로, 압축된 번들에서오브젝트를 로드할 때, 해당 오브젝트의 해당 청크만 압축을 해제한다.이는 on-the-fly(빈번하게 읽..

NullReferenceException: WWW class has already been disposed.

항상 날 괴롭히던 버그가 하나 있었다.NullReferenceException: WWW class has already been disposed. c#코드에서 www를 쓸 때 나는 에러인데 왜 이게 나는지 항상 의문이었다.이 에러가 나는 원인은 말 그대로 www값이 이미 제거되었는데 이 값으로 무언가를 하려 하기 때문이다.나의 경우는 이런상황에서 나왔다.www test = new(path) // path가 잘못되서 test가 err남if (test.error != null){ // err 난건 폐기하려고 함test.Dispose(); return;} 위 코드에서 err난 시점에 이미 dispose되었는데 코드에서 다시 dispose를 하려 해서위와같은 에러가 났다.

2017. 3. 9. 22:16

OnRenderImage() possibly didn't write anything to the destination texture!

이전에는 안그랬는데 유니티 버전을 올렸더니 아래와 같은 경고가 자꾸 남.이런 경고가 나는곳은 특정 텍스처에 현재 화면을 찍어주는 역활을 하는 곳이었는데대충 아래와 같은 코드로 되어 있었다. void OnRenderImage(RenderTexture source, RenderTexture destination){ ..... 다른곳에서 받은 RenderTexture rt에 현재 스샷을 찍는다. Graphics.Blit(source, rt, mat, 0); 그리고 이런저런 처리를 하고 이 rt를 다른곳에서 쓴다.} 이전에는 문제가 없었는데 언제부턴가 위와같은 경고가 나왔다.내용은, "너 임마, 걍 destination에 아무것도 안썻잖아" 이다.그냥 이렇게 냅둬도 디바이스에서도 별로 문제가 없는것 같고그냥 실..

2017. 3. 4. 12:03

animation 최적화

케릭터에 붙어있는 애니메이션이 많을수록 케릭터 로딩이 느려진다.한 스테이지에 케릭터가 10개가 나온다고 가정하고, 각 케릭터가 가져야 할애니메이션 갯수가 영웅일 경우 20개, 적군일 경우 10라고 할 경우,애니메이션 용량이 3메가라 가정해서 영웅 5명의 애니메이션은 5*20*3 = 300메가....헐...적군 5명은 5*10*3 = 150메가....헐....이건 좀 말이안되는듯..내가제대로 계산한거 맞음??? 후덜덜..... 그래서 애니메이션 최적화를 시도해보자!이미 이 주제에 대해서는 많은 분들이 좋은 팁을 알려주셨으니 참고하면 되고내가 할 이야기는 scale에 관한 내용이다. 최적화를 할 타겟 파일을 보자.5메가가 넘는 엄청난 녀석이다.엄청나게 많은 애니메이션을 하겠지 뭐....유니티에서 애니메이션 ..

I wonder why I get tired these days.

Why do I get fatigued recently?I eat some supplement for health everyday.Is it futile?Is this going to take ages?No. This is not the time to be resting.Let's cheer up!!!!The goal is far-off.