유니티 렌더링 패스(rendering paths) - 포워드 렌더링 패스, 디퍼드 렌더링 패스 렌더링 패스는 오브젝트의 라이팅과 쉐이딩에 관련한 일련의 작업을 수행하는 방법입니다. 서로 다른 종류의 렌더링 패스는 각각 기능과 성능에서 다른 특성을 가지며 장점과 단점이 있습니다. 유니티의 렌더 파이프라인은 포워드 렌더링 패스(Forward Rendering) , 디퍼드 렌더링 패스(Deferred shading)를 지원합니다. 개발자는 프로젝트 및 플랫폼에 적합한 렌더링 패스를 선택할수있습니다. 렌더링 패스는 기본적으로 프로젝트 설정(project settings)의 그래픽(graphics)에서 설정하며 camera에서 오버라이드할수있습니다. 그래픽카드가 해당 렌더링패스를 지원하지않는다면 유니티는 자동으로..
유니티 에셋 Ultimate VFX - 비주얼 이펙트 파티클 시스템 모음Ultimate VFX는 다양한 게임 장르와 시나리오에 적용할 수 있는 비주얼 이펙트 모음입니다. 높은 그래픽 품질의 불, 연기, 번개, 폭풍, 충격파, 폭발, 불꽃, 물결 등 300개 이상의 시각효과 파티클 시스템 프리팹을 포함하고있습니다. 또한 200개 이상의 텍스처(스프라이트, 스프라이트 시트)가 제공됩니다. 이펙트는 Shuriken 파티클시스템을 기반으로 하며 속성을 설정하고 사용자정의할수있습니다.https://youtu.be/dUDhgOnjlvc 유니티 에셋스토어 https://assetstore.unity.com/packages/vfx/particles/ultimate-vfx-26701 Ultimate VFX | 시각 효..
유니티 에디터 키보드 단축키 설정(shortcuts) 1)상단 edit 메뉴의 shortcuts로 이동합니다. 2)카테고리에서 명령(command)을 선택하고 키보드 단축키를 설정합니다.
유니티에서 재질의 render queue 유니티에서 Render Queue(렌더 큐)는 재질이 렌더링되는 순서를 결정하는 데 사용합니다. 렌더링이 진행되는 동안 유니티는 Render Queue의 값이 작은 것부터 렌더링합니다(Render Queue의 값이 같으면 무작위 순서로 렌더링합니다) Render Queue는 0에서 5000까지 범위의 값 중에서 설정합니다(쉐이더의 렌더큐를 사용하려면 -1로 설정합니다) 일반적으로 불투명은 2000, 스카이박스는 2500, 투명은 3000을 사용합니다. 일반적으로 재질은 해당 재질의 쉐이더 render queue를 사용하지만 재질의 렌더 큐 변수(Material.renderQueue)를 사용하여 렌더링 대기열을 오버라이드할수있습니다. RenderQueue(enume..
안드로이드 장치 모니터에서 모바일 앱 디버깅하기(android device monitor, 지원중단)(안드로이드 스튜디오3.1에서 지원중단, 안드로이드 스튜디오3.2에서 삭제) https://developer.android.com/studio/profile/monitor?hl=ko 1)PC에 모바일 장치를 연결하고 android device monitor를 실행합니다. 2)Devices에서 현재 연결된 장치를 표시하고 LogCat에서 메시지(messages)가 표시되는것을 확인할수있습니다. 3)LogCat의 saved filters에서 로그캣 메시지 필터 설정으로 이동합니다. filter name, by log tag에 unity를 입력하고 확인합니다. 4)필터가 추가된것을 확인할수있습니다. 5)유니티 ..
유니티 안티 엘리어싱(anti-aliasing) - FXAA, TAA, MSAA, SSAA엘리어싱 아티팩트(Aliasing)엘리어싱 아티팩트(Aliasing)는 넓은 의미에서 실제 세상의 정보를 샘플링하고 이것을 디지털화할때 생길수있는 부작용입니다. 컴퓨터 그래픽에서는 해상도의 한계로 선이 들쭉날쭉하거나(jagged) 가장자리에 계단 모양(staircase)이 나타나는 현상입니다. 높은 해상도의 신호를 낮은 해상도에서 나타내는 경우 발생하며 특히 그래픽 출력 디바이스의 해상도가 직선을 표시할만큼 충분히 높지않다면 엘리어싱 현상이 발생할수있습니다.https://en.wikipedia.org/wiki/Aliasinghttps://docs.unity3d.com/Packages/com.unity.render-p..
가상현실(VR)에 대한 지식과 정보를 얻을수있는 웹사이트 모음 VR 연구소 네이버 포스트 https://m.post.naver.com/vrcafe http://naver.me/5de8jBlG 360도 동영상과 가상현실(유튜브 크리에이터 아카데미) https://creatoracademy.youtube.com/page/lesson/spherical-video?hl=ko#strategies-zippy-link-1 TED 가상현실 VR 강의 Alex Faaborg - 가상 현실을위한 디자인과 교육에 미치는 영향 https://youtu.be/DQMA5NNhN58
유니티 라이팅 기법 - realtime, Baked GI(라이트맵), Precomputed Realtime GI게임에서 전역 조명(GI)을 정확하게 시뮬레이션하는것은 도전적이며 연산 비용이 많이 듭니다. 그래서 게임 플레이 중에 계산하는 대신 미리 이러한 계산을 처리하기 위한 다양한 방법을 사용합니다. 전역 조명(GI, Global illumination)은 빛이 세계에서 상호 작용하고 반사되는 과정을 복잡하게 시뮬레이션하기 위해 사용되는 다양한 기법과 수학적 모델을 설명하는 용어입니다. 일반적으로 유니티의 조명 기법은 실시간(realtime) 또는 사전 계산된(precomputed)으로 간주할 수 있으며 두가지 기법을 조합하여 몰입감 있는 장면 조명을 만들수있습니다. 실시간 라이팅(Realtime L..
밉맵(mipmaps) - 원본 텍스처의 다양한 해상도로 구성된 이미지 집합 밉맵(mipmaps, MIP maps)은 컴퓨터그래픽에서 텍스처 맵핑에 사용되는 기술로 원본 텍스처의 다양한 해상도(점차적으로 더 작아지는)로 미리 준비된 이미지 버전 목록을 의미합니다. MIP은 라틴어 'multum in parvo'의 약어로 '작은 공간에 많은 것'을 의미합니다. 카메라에서 먼곳에 존재하는 객체를 그리는 경우 원본 텍스처의 상세한 정보가 필요하지 않습니다. 원본 텍스처를 사용하면 품질과 성능에 부담이 생길 수 있기때문에 밉맵을 사용하여 텍스처 피라미드(가장 상위 원본 텍스처의 해상도부터 시작하여 2의 거듭제곱 비율로 점차적으로 작아지는 해상도를 가진 텍스처들)에서 적절한 해상도를 선택하고 멀리 떨어진 객체에 더..
유니티 안드로이드 환경설정에서 SDK, NDK, JDK 직접 설치할경우 다운로드 웹사이트 Android SDK(Software Development Kit) 일반적으로 안드로이드 스튜디오를 설치할때 안드로이드 SDK도 함께 설치합니다. 안드로이드 스튜디오 설치 진행에서 SDK를 다운로드하고 설치하도록 안내합니다. https://developer.android.com/studio NDK(Native Development Kit) 아래 안드로이드 개발자 웹사이트에서 NDK를 직접 다운로드하고 설치할수있습니다. (안드로이드 스튜디오의 설치 진행에서 NDK를 선택적으로 설치할 수 있는 옵션이 제공됩니다) https://developer.android.com/ndk/downloads?hl=ko https://de..
유니티의 새로운 입력 시스템 기술문서 모음(new input system) 새로운 입력 시스템 소개 https://blog.unity.com/kr/technology/introducing-the-new-input-system Input System(Quick start guide) https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/QuickStartGuide.html PlayerInput 클래스 https://docs.unity3d.com/Packages/com.unity.inputsystem@1.1/api/UnityEngine.InputSystem.PlayerInput.html#UnityEngine_InputSystem_PlayerI..
유니티 모바일 터치(Touch) 입력 기술문서 모음 iOS 및 Android 장치는 화면을 동시에 터치하는 여러 손가락을 추적할 수 있습니다. Input.touches 속성을 사용하여 화면을 터치한 각 손가락의 상태에 대한 데이터에 액세스할 수 있습니다. 손가락이 화면에 터치된 경우 각 손가락에 대한 정보(위치, 압력 등)가 Input.touches 배열에 저장되며 이 정보를 사용하여 다양한 작업을 수행할 수 있습니다. https://docs.unity3d.com/ScriptReference/Input-touches.html Input.touchCount 속성 public static int touchCount; 현재 화면 터치 개수를 의미합니다(읽기전용) https://docs.unity3d.com/S..