안드로이드앱 개인정보 취급방침

개인정보 취급방침 1. 개인정보의 처리 목적  <STUDIO BH>(‘https://studio-bh.blogspot.com/’이하 ‘STUDIO BH’) 은(는) 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다. - 고객 가입의사 확인, 고객에 대한 서비스 제공에 따른 본인 식별.인증, 회원자격 유지.관리, 물품 또는 서비스 공급에 따른 금액 결제, 물품 또는 서비스의 공급.배송 등 2. 개인정보의 처리 및 보유 기간 ① <STUDIO BH>(‘https://studio-bh.blogspot.com/’이하 ‘STUDIO BH’) 은(는)  개인정보를 수집하지 않습니다. 3. 정보주체와 법정대리인의 권리·의무 및 그 행사방법 이용자는 개인정보주체로써 다음과 같은 권리를 행사할 수 있습니다. ① 정보주체는 STUDIO BH(‘https://studio-bh.blogspot.com/’이하 ‘STUDIO BH) 에 대해 언제든지 다음 각 호의 개인정보 보호 관련 권리를 행사할 수 있습니다.  하지만, 본 앱은 앱사용자의 사용정보를 수집 및 보유하지 않습니다. 앱 기능 활용에만 사용합니다. 4. 처리하는 개인정보의 항목 작성  ①  < STUDIO BH >('https://studio-bh.blogspot.com/'이하 ' STUDIO BH ') 은(는) 다음의 개인정보 항목을 처리하고 있습니다. android.permission.INTERNET:Admob 광고를 위해 사용합니다. 5. 개인정보의 파기 < STUDIO BH >(' STUDIO BH ') 은(는) 원칙적으로 개인정보 처리목적이 달성된 경우에는 지체없이 해당 개인정보를 파기합니다. 파기의 절차, 기한 및 방법은 다음과 같습니다. 앱 사용자의 사용정보를 수집 및 보유하지 않습니다. 파기해야하는 개인정보 또한 가지고 있지...

[UNITY] Shader 전역 변수 _Time 모바일 기기에서 버그

*  발생 현상.  유니티 모바일 빌드(android, ios) 에서 쉐이더 글로벌 변수 _Time 를 사용하는곳에 프레임 지날수록 오차가 더 생겨서 폴리곤 이동, UV 애니메이션이 툭툭 끊어지는 현상 발생.  특히 폴리곤이 적은 파티클, 평면, 박스형태에서 잘 발생 * 해결방법 ( 모든 조건 충족해야함 ) 1. C# 코드에서 매프레임 업데이트로 쉐이더에 시간 넣어줌.  Shader.SetGlobalFloat( "_MyTime", Time.time ) 2. 시간변수 필요한 쉐이더 내부에 float _MyTime; 정의한뒤 사용. * 발생 원인 추측. 유니티에서 사용하는 시간은 float 타입이고, 쉐이더 내부에서는 float4 형태의 벡터로 넘겨주는데 PC 에서는 제대로 사용되지만 모바일에서는 half  타입 혹은 미세한 값을 날려버리는게 아닌가 추측됨. *  half 타입 계산변수와 float 타입 시간 계산이 혼재될 경우 half2 offset = half2(0.5, 0.0); half2 uv = (IN.uv_MainTex + off) * _MyTime; float 타입 _MyTime 과 half 타입 계산이 섞여있을때 PC 에서는 문제없이 작동하지만, 모바일에서 _MyTime 을 half 로 변경한뒤 계산하는걸로 추측됨 (이펙트 끊어지는 문제 발생) half2 uv = (IN.uv_MainTex + off) * float2(_MyTime, _MyTime); 이렇게 타입을 직접 지정하면 문제 발생안함 * 시간을 벡터 형태로 넘길경우 시간을 Shader.SetGlobalVector 를 이용해서 유니티 기본제공하는 _Time 변수처럼 셋팅하면 움직임이 튀는 문제 발생

[Unity] 유니티 Tier settings 에 따른 쉐이더 컴파일 용량 차이

이미지
 유니티 Project settings -> Graphics 탭에  Tier Settings 항목들이 아래와 같이 있는데,  미리설정된 Tier 중 현재 Tier를 실시간으로 선택할 수 있어서 기기 스펙에 따른 그래픽 옵션 설정이 가능하지만, 단점은 컴파일 되는 쉐이더의 길이가 늘어나서 쉐이더 파일이 차지하는 메모리 용량이 늘어난다. 단순히 계산해서 만약 쉐이더파일 하나가 컴파일된 결과가 50라인이라고 하면,  "50라인 * (Tier 1,2,3 에 대응하는 3종류)  =  150 라인"이 된다. 실제로는 Tier 마다 세부 선택 항목이 달라서 쉐이더 라인수는 Tier 마다 다르다.  이 기능 쓰지 않으려면, 모든 Tier 의 세부 사항들을 똑같이 설정하면, 한종류의 컴파일된 쉐이더 파일을 얻을 수 있다.

[UNITY3D] 쉐이더 내에서 "행렬 * 벡터" 연산

mul(UNITY_MATRIX_MVP, *)  <== 이런 형태의 "행렬 * 벡터 연산"에서 행렬과 벡터길이가 맞지 않으면, PC 에선 적절히 변형해서 적용되지만 안드로이드, iOS 같은 모바일 기기에서 쉐이더 에러발생함. (쉐이더를 이용하는 모델링들이 분홍색으로 출력됨) mul( (float3x3)UNITY_MATRIX_MVP, vector3 ) <== 이렇게 행렬과 벡터 크기를 정확히 맞춰줘야함.

[Unity3D] Use 32-bit Display Buffer. 옵션

이미지
RenderTexture 사용해서 알파값을 조절할 경우 ( 캐릭터 렌더링, 아이템 등드ㅇ ) "Use 32-bit Display Buffer" 체크를 끄면 안됨. 끌경우 RGBA 에서  RGB 텍스쳐로 변경됨 ( 32 bit --> 24 bit ) //- Unity 5.4.x , Unity 2017 1.x 에서 확인.

[메모] Dot product 의미

 Dot( A, B ) = |a||b| cos θ - A,B 벡터 크기가 1 이면 , A,B 벡터의 Dot product == cos θ - 이 특성과 Normalize 를 같이 이용한 3D 계산에서 활용도가 높음 . - Cosine 그래프 특성상 좌 , 우 각도 차이없이 동일한 값 유지   예시 ) Dot( Normal vector, Light dir ) è 3D 도형과 빛과의 명암 처리 Dot( View dir, reflection vector ) è specular 수치 Dot( View dir, enemy dir ) è 시야에 상대방이 보이는지 여부 판단   결론 ) 두 벡터사이의 각도차이를 쉽게 구함 .

[UNITY3D] 유니티에서 메시 임포트할 경우 탄젠트 공간 계산 옵션에 따른 버그

이미지
(유니티 5.5.x 에서 테스트)  노멀맵을 사용하고 탄젠트 공간 정보를 파일에서 Import 하지 않고, 유니티에서 제공하는 탄젠트 공간 계산법을 사용할때 발생하는 문제이다.  특히 "노멀맵 사용 & 매우 각지고 간단한 형태의 모델링 사용" 할때 잘 발생하는 문제인데, 오브젝트의 특정 면이 빛을 강하게 받는것처럼 라이트 색상이 매우 강하게 오브젝트에 맺히는 현상.  유니티 FBX 선택한뒤 보여지는 Inspector 인데, Tangents 공간계산 옵션 기본값이 Calculate Tangent Space 이다. 이것을  Calculate Legacy 혹은 Calculate Legacy - Split Tangents 둘중 하나로 선택하면 해결됨. *  원인에 대한 이유 및 예상  나는 유니티 내부 소스코드를 볼 수 없기에 추측만 할 뿐이지만, 3D 리소스를 최적화 하는 방법에 3D 메시를 이루는 폴리곤에서 위치가 겹치는 정점은 1개만 남기고 제거하는 방식이 있다. 이런 최적화 기법이 원인이 되어 발생하는 문제라고 추측된다.  하지만 두개의 정점이 위치만 같고 노멀, 탄젠트 공간등이 다른 경우가 종종 생기는데, 폴리곤이 수천개 이상으로 둥글둥글한 형태로 이루어진 메시들은 문제가 발생하지 않거나, 발생해도 눈에 잘 안띄게 된다. (예, 캐릭터, 둥근 공, 형태감 있는 바위 등등)  박스, 계단 같이 인접한 폴리곤 사이의 각도가 작아지면 두개의 폴리곤에 맞는 노멀 방향을 각각 가지고 있지 않고 어느한쪽에 종속되어 있는 정점을 가지고 있기에 빛계산이 이상해진다.  따라서 정점의 위치만으로 통합하지 않고 노멀도 동일할 경우 통합하거나 아예 통합을 시도하지 않아야 원하는 형태의 라이팅이 들어가게 된다고 생각하기에 Calculate Legacy 혹은 Calculate Legacy - Split Tangents 둘...