블로그 이미지
자신의 단점을 메꾸는 것을 단(鍛)이라 하고 자신의 강점을 갈고 닦는 것을 련(鍊)이라 하여, 두가지를 합친 것을 단련이라고 부른다. 붕대마음

카테고리

전체목록 (598)
참고사이트 (9)
Goal (3)
Travel (10)
My Life (80)
Game (36)
Game Review (5)
Game Plan (0)
Books (5)
English (1)
Optimizing (7)
Study (208)
유용한 것들_etc (44)
유용한 것들_func (20)
Unity (32)
Unreal (87)
작업장 (45)
RenderMonkey (6)
정리요망 (0)
따라잡기 시리즈 (0)
링크용 (0)
Total257,724
Today23
Yesterday158

알고있기로는 압축텍스처를 쓸 경우 aos는 2의 승수로, ios는 걍 무조건 2의승수 정방으로 해야 한다.

그래서 aos는 가장 가까운 2의 승수, 120x500 이면 128x512로 변환되지만 ios는 512x512가 된다. 

aos와 ios버전의 텍스처를 따로 관리할 게 아니라면(사실 이건 프로젝트가 커질수록 좀 힘듬..)

처음부터 텍스처 관리를 잘 해줘야한다.


우선적으로 생각해야할 부분이 aos에서 ETC2를 사용할까 말까에 대한 결정이다.

ETC2 자체로는 ETC1을 대체하기 위해 나온 개량형이다.

게다가 용량도 작고 알파까지지원된다!!!.

그런데왜 고민을 해야하는 걸까?

우선 모든 aos폰이 etc2를 지원하는것이 아니기 때문이다.

etc2는 open gles3.0에서 돌아간다.

그렇다면 그 es2.0 버전에서는 어떻게 되는가? etc2로 설정해도 잘 나오던데!!

이럴경우 기기에서 지원되지 않는 텍스처 압축방식이라 비압축 rgba32형식으로 압축된

텍스처와 함께 메모리에 저장되고, 이러한 경우 텍스처압축을 푸는 만큼 시간도 걸리고

메모리 공간도 더 많이 필요하게된다.

즉, 지원은 하지만 es2.0대 디바이스에서는 하드웨어적으로 더 손해다.


그래서 나는 아직은 etc1을 더 선호하고, 만약 알파가 필요하다면 etc1 두장을 사용한다.

하나는 rgb를, 나머지 하나에는 rga에 알파값을 넣어서 사용하면 꽤 훌륭한 퀄리티를 볼 수 있다.

이에 대한 내용은 아래 링크를 참조하면된다.


여기서 말하고자 하는 것은 etc2를 사용하지 않고 rgba32대신 etc1 두장으로 

사용할 수 있는 리소스(2의 승수)에 한해서, 거기에 이 두장을 합치면 정방이 될 경우에

Tiling와 Offset을 활용하여 작업을 할 수 있다는 것이다.


이미지 1 : 256x512, etc1, color texture

이미지 2 : 256x512, etc1, alpha blending용 texture

알파블렌딩 셰이더를 만들어 인자로 두 텍스처를 각각 넣어줬었다.

하지만 이렇게 하면 텍스처로 두장을 관리해야 하고 ios에서는 512x512 2장이 되어버린다.

물론 이 방식이 etc2와 pvrtc를 사용한다면 한장으로 가능하겠지만 etc2를 사용하지 않는 경우

etc1두장으로 가야하고 이러면 ios에서는 크게 혜택을 보지 못하기 때문에 

이미지 1과 이미지 2를 합쳐서 512x512를 만들고 아래와 같이 설정해서 사용한다.

위 Particle Texture와 Mask 텍스처는 하나의 이미지 이고 color 부분은 x가 0~0.5,

아래 mask 부분은 0.5~1.0으로 사용한다.

이미지 1,2와 이 둘을 합쳐 실제 사용하는 이미지3은 공개가 힘드므로 패스.

공개가능한 예제이미지는 만들기 귀찮아서..ㅜㅜ.


Reference Link

- unity, non power of 2

- 유니티에서 etc2 텍스처 사용 시 애매한 사항들

- rgba32 bit texture를 etc 4bit texture 2장으로 사용하기

-

저작자 표시 비영리 변경 금지
신고
Posted by 붕대마음

이전에 asyncload 관련 버그 때문에 멘탈이 쪼개지고 나서 열시미 고쳤는데(고친 방법은 이 링크)

이번에 5.55.1p3 버전에서 고쳐졌다고 해서 잽싸게 설치해 봤는데 잘 된다. 흐흐흐.

그동안 맘고생한게 다 헛수고였던게야..

그런데 갑자기 이런 경고(sending message header failed)가 무한으로 뜬다.

play상태든 아니든 계~~속 뜬다.

나의 경우 이 때는 프로파일러를 띄워서 active를 edtior로 바꿔주면 더 이상 뜨지 않았다.

기존은 android target으로 되어 있엇다.

무튼 기존 async 버그가 고쳐져서 기분좋음.ㅎㅎㅎ


Reference Link

- Unity 5.5 Assetbundle.LoadAssetAsync 문제

-

저작자 표시 비영리 변경 금지
신고

'Unity > Unity Study' 카테고리의 다른 글

sending message header failed  (0) 2017.02.26
Unity 5.5 AssetBundle.LoadAssetAsync  (0) 2017.01.18
특정 android mobile chipset에서 half 문제  (0) 2016.09.21
shader tip with Intel  (0) 2016.09.08
unity bug with tegra k1  (0) 2016.09.03
unity mobile profiler  (0) 2016.08.09
Posted by 붕대마음
TAG Unity

어찌어찌해서 pc에서 인식은 되었지만 여전히 cmd에서 adb devices로 하면 목록이 뜨지 않는다.

이때 아래 프로그램을 깔아주면 된다.

adbdriver.zip


선작업

설정-핸드폰정보-mi version 겁니 두들겨서 개발자 모드 만들고 

추가설정에서 디버깅 설정 해줘야 함.



저작자 표시 비영리 변경 금지
신고

'유용한 것들_etc' 카테고리의 다른 글

샤오미 미패드2 인식하기  (0) 2017.02.21
eclipse의 logcat으로 android log 보기  (0) 2016.09.20
간단한 게임 사운드 툴  (0) 2013.10.12
PerfHud (퍼프후드)  (0) 2012.02.29
Dependency Walker.  (0) 2011.09.05
max8 + 32bit window7  (0) 2011.05.26
Posted by 붕대마음

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

티스토리 툴바