유니티 2019.1 Release

2019. 4. 18. 23:46Unity Engine/Info

최근 유니티 2019 버전이 정식 릴리즈 되었습니다.

블로그와 릴리즈 노트를 보면... 

블로그 : https://blogs.unity3d.com/kr/2019/04/16/introducing-unity-2019-1/

릴리즈 노트 : https://unity3d.com/kr/unity/whats-new/2019.1.0

 

뭔가 내용이 엄청 많다. 버그픽스 내용이 엄청 많음...

 

우선 바로 달라진게 눈에 들어오는건 설치 부분인데 기존이랑 다르게 유니티 헙이 설치되고, 

원하는 버전의 엔진을 설치할 수 있게 변경되었다.

이전에는 다른 버전을 쓰려면 따로 설치해서 써야 했는데 이젠 Hub를 통해서 설치하고 관리 할수 있어 좋아진듯!

[SDK & NDK Tool]

2019 버전은 설치할때 NDK, SDK 체크하는 부분이 추가되었는데 이젠 스튜디오로 따로 설치 안해도 되는가보다. 실제로 유니티 블로그에도 해당 내용에 대한 설명이 있는데, API Level 설치 부분이 안 보이는거 보니 SDK는 추가로 설치 해야될 것 같다.

 

이제 릴리즈 노트에서 눈에 들어오는 것만 추려서 2018.3과 2019.1 을 비교해보자

 

[정식으로 추가된 패키지들]

2019 버전으로 업데이트 되면서 패키지 매니저, 셰이더 그래프, LWRP, PostProcessing이 프리뷰 딱지를 때고 정식 버전으로 변경되었다고 한다. 
그런데 포스트 프로세싱도 프리뷰였나??? 

 

[패키지 매니저]

일단 패키지 매니저에 Dependencie 표시가 추가되서 해당 패키지와 관련된 패키지 정보와 설치 상태를 알 수 있다.

그리고 인스톨 버튼 위치와 이전 패키지버젼 표시 부분이 바꼈다. 이건 솔직히 2018.3 패키지 매니저가 더 편한거 같은데... 

 

[라이트 맵]

라이트 맵 기능에 새로운 샘플링 방법과 그에 관한 옵션이 추가 되었다. 

추가된 옵션은 아래와 같다. 

일단 자세한건 직접 써봐야 느낌이 올 것같다.

 

 

[GPU Base LightMap 개선]

2018.3에서 GPU Base LightMap을 사용하면 사용할수 없었던 오브젝트의 CastShodw & Receive Shadow 기능이 사용 가능하게 되었다. 

또한 GPU Base LightMap 사용시 점유율 부분이 최적화 되었다고 한다.

이전에는 크기가 좀 커지면 메모리 부족해서 CPU Bake로 전환되고 쉐도우 때문에 그냥 CPU모드로 구웠는데 이젠 진짜 GPU로 빠르게 구울수 있게되었나 보다. 오?!

 

[Physics]

물리엔진 쪽에 몇몇 API들이 추가, 수정 되었고 새로운 소식도 있다.

 

[DOTS-based Physics system]

유니티 물리엔진의 새로운 소식은 하복엔진과의 제휴를 통해 올해 6월 새로운 기능을 보여준다는 듯하다.

Data-Oriented Technology Stack based Physics System 이라는데 뭐가 이렇게 길어??

데이터 기반으로 네트워크 친화적인 물리시스템이라는데 솔직히 영상봐도 잘 모르겠다...

 

 

그렇다고 기본 엔진인 Physx가 변경되거나 업뎃 중단되는건 아니다.

DOTS 엔진을 안 쓰면 기존의 PhysX가 그대로 적용되는 듯 하며, 업뎃도 계속한다고 한다.

 

[물리엔진 개선]

PhysX 부분의 개선사항이 추가되었다고 한다. PhysX 자체가 업뎃 된건 아닌거 같고, 유니티 엔진 자체의 기능확장 또는 개선으로 보는게 맞는듯 하다.

내용을 보면 각속도 처리하는 부분이 개선된것 같다.

[Physics API]
릴리즈 노트를 보면 물리엔진에 몇몇 함수들이 추가되었다.

그리고 기존 API가 좀 바꼇나 봅니다.


또한 CollisionXXX 이벤트의 GC Alloc이 사라졌답니다!! 오오오? 원래 발생했었나??

물리 부분은 대충 이 정도인듯...

 

[렌더링 파트 및 SRP]
렌더링 부분도 뭔가 내용이 많은데 눈에 들어오는건...


[GPU Base Render To Texture의 실험 버전 추가]

RenderTexture의 ColorFormat이 엄청 늘었다.

ComputeShader에서 LookUpTable로 적극 활용하라는 느낌??

그 외에는 정식으로 올라온 SRP, LWRP, Shader Graph에 대한 내용이 대부분이다.
정식 버전 되었으니 이전 버전은 못쓰려나...

 

[SRP&LWRP]

SRP Batcher : https://blogs.unity3d.com/2019/02/28/srp-batcher-speed-up-your-rendering

2019 버전으로 릴리즈 되면서 SRP Batcher라는 새로운 렌더링 루프가 생겼다고 한다.

내용을 보면 렌더링 부분의 속도 향상 및 런타임에서 마테리얼 교체 부분의 성능향상을 가져 왔다는듯 하다.

근데 매뉴얼에 관련 내용이 아직 업데이트 안 된거 같음...

 

실제로 엔진에서 달라진 점을 확인해보면 LWRP 파이프라인만 있던 기존과는 달리 ForwardRenderer이라는 녀석이 추가 되었다.

 

파이프라인에는 RenderType과 SRP Batcher라는 항목이 추가되어있다.

 

 

SRP Batcher를 사용하기 위해서는 SRP Batcher 옵션을 체크해야 하며, RenderType 항목은 커스텀으로 변경하면 추가된 ForwardRender를 삽입할 수 있다.

ForwardRender에서 레이어를 지정하고 Features에 교체하고 싶은 마테리얼을 추가하는 방식인거 같은데 일단 Git에 공유된 패키지 받아서 확인해봐야 할 것 같다.

그리고 SRPBatcher 기능은 LWRP Shader만 지원하는 듯 하다.

 

[ShaderGraph]

셰이더 그래프는 물리기반 셰이딩과 UnLit 셰이딩 두 가지 아웃풋만 제공한다.

별도의 라이팅 정보를 가져오는 노드도 없다보니 커스텀 라이팅 기능 만들기가 어렵다.

특히 툰이라던가, 툰이라던가, 툰이라던가... PBS로 툰 셰이딩 한 영상이 있는데 사용해보니 진짜 별로던데...

 

그래서 셰이더 그래프로 커스텀 라이팅 셰이더를 만들기위해 2018.3 까지는 CodeFunctionNode API를 이용해 라이팅정보를 담은 커스텀 노드를 생성하여 UnLit으로 작업했는데 그게 막혔다.....

 

이제 사용할려면 직접 작성하던가 스크립트에서 라이팅 계산해서 값을 넘기던가 해야...

 

일단 ShaderGraph 관련 영상이 있는데 나중에 확인해봐야 할듯하다.

영상 : https://www.gdcvault.com/browse/gdc-19/play/1026148

 

이 외에도 모바일이나 툴 등 내용이 엄청 많은데 사용하면서 필요할때 찾아봐야겠다.

 

'Unity Engine > Info' 카테고리의 다른 글

SRP Batcher  (0) 2019.05.27
Unity Adaptive Performance  (0) 2019.04.26
Unity FBX Exporter  (0) 2019.03.04
Unity Editor Coroutine  (1) 2019.03.03
Unity Package Manager  (0) 2019.03.03