어떠한 이유에서 게임을 빌드했는데, 비정상적으로 셰이더가 나올때 사용하면 좋은 기능입니다.

 

Shader variant collection은  shader가 빌드가 되었을때 정상적으로 보이게 보장되도록 shader를 확정해주는 기능입니다.

유니티 원문에는 이기능은 scene을 로드하기만해도 자동으로 수집되기 때문에 shadervariant 파일이 있기만 해도 된다는 식으로 써있지만, 이기능을 어떻게 사용하는지 명확한 설명이 없어서 저처럼 헤메는 일이 없도록 공유해봅니다.

우선 중요한 것은 하나의 scene에 사용되는 모든 material을 모아야 합니다. 여러 scene을 돌아가면서 로드해도 되는데,

문제는 그렇게 하려면 게임을 실행시켜서 모든 scene을 돌아가면서 열어야 하는 번거로움이 있습니다.

수동으로 shader를 기능에 등록만 하면 되지 않을까 생각하지만, 이 기능은 material에서 실제 사용되는 옵션을 저장하는 방식을 가지고 있기 때문에 작업자가 이 옵션을 일일히 넣는다는건 유니티에 shader에 대해 완전히 파악한 사람이 아니고서는 솔직히 어려움이 있습니다. 또한, 여러 shader를 만들었다면...생각만해도.. 끔찍...

그래서 저는 일단 모든 material을 하나의 Scene에 모으는 툴을 프로그램머분에게 요청하고, 그리고 이를 Shadervaiant로 저장하는 방법을 택하였습니다.
다음 영상은 Shadervaiant을 생성하는 과정입니다. 

(Clear를 누르고 씬을 저장하고 게임실행하고 Save to asset 한번 눌러주고 하면 수치가 일정하게 나오는거 같습니다.

이순서가 중요한거 같네요.)

간혹 숫자가 자꾸 변경이된다면, 이펙트와 같은 렌덤이 있는 오브젝트가 있을수 있으니 이런 부분은 제거하여야 합니다.

 

 

 

 

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

HDRP에서 Emssion 사용시 주의점  (0) 2022.06.24
HDRP와 URP의 빛의 차이  (0) 2022.02.10
URP, HDRP 라이트맵(shadowmask) 설정  (0) 2022.01.18
HDRP Quality 셋팅  (0) 2021.10.08
HDRP 초기 셋팅(Project Setting)01  (0) 2021.09.18

셰이더에 대한 실험을 하려고 HDRP로 Emission 설정을 해보고 있었는데 아무리해도 발광이 제대로 되질 않았습니다.

HDR Color로 설정한다해도 발광이 안되었는데 이유는 수치가 지나치게 낮아서 였습니다.

Standard나 URP의 경우 수치가 작더라도 발광이 바로 나타나는데 HDRP는 Lux 기반이다보니 수치를 많이 높일 필요가 있더군요. 그래서 Float하나를 추가하여 곱해주었더니 해결이 되었습니다. 아래에 보면 수치가 많이 높은걸 볼수 있죠.

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

Shader variant collections  (0) 2022.09.02
HDRP와 URP의 빛의 차이  (0) 2022.02.10
URP, HDRP 라이트맵(shadowmask) 설정  (0) 2022.01.18
HDRP Quality 셋팅  (0) 2021.10.08
HDRP 초기 셋팅(Project Setting)01  (0) 2021.09.18

HDRP

HDRP의 Volme에 Exposure를 설정하면 빛의 양에 따라 자연스럽게 밝아지고 어두워지는것을 만들어 낼수 있습니다.

URP

URP에서는 별다른 차도가 없는걸 알수 있습니다.(할려면 하겠지만, 기본적으로 가볍게 개발되는것을 목표로하기 때문이라 생각됩니다.)

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

Shader variant collections  (0) 2022.09.02
HDRP에서 Emssion 사용시 주의점  (0) 2022.06.24
URP, HDRP 라이트맵(shadowmask) 설정  (0) 2022.01.18
HDRP Quality 셋팅  (0) 2021.10.08
HDRP 초기 셋팅(Project Setting)01  (0) 2021.09.18

Shadowmask 관련하여, URP와 HDRP가 설정이 약간 달라 혼란스러워 정리를 해봅니다.

 

Shadowmask의 역할은 그림자를 미리 만들어놓고 실시간 그림자의 부하를 줄이기 위한 방법입니다.

Shadowmask에는  Distance Shadowmask와 그냥 Shadowmask 이렇게 두가지 옵션이 제공됩니다.

 

그냥 Shadowmask는 bake된 라이트맵(그림자)을 그대로 보여주는 설정입니다.

Distance Shadowmask는 거리에 따라 가까운 부분은 실시간 그림자를 설정해주고 뒷부분은 Bake된 그림자를 보여주는 기법이라 아무래도 그냥 Shadowmask보다는 퍼포먼스 영향이 있습니다.

URP

URP에서는 Shadowmask Mode를 퀄리티에서 설정할수 있습니다. 이외에는 설정할것이 따로 없습니다.

 

HDRP

하지만, HDRP는 설정하는 부분이 좀 다릅니다.

퀄리티별 파이프라인에서 Shadowmask를 우선 켜야합니다.(Shadowmask사용시)

이하 퀄리티도 설정해야겠지요.

그리고 Light에서 추가 설정을 해주어야합니다.

이렇게 두군데서 사용을 해줘야 Shadowmask를 제대로 사용할수 있습니다.

 

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

Shader variant collections  (0) 2022.09.02
HDRP에서 Emssion 사용시 주의점  (0) 2022.06.24
HDRP와 URP의 빛의 차이  (0) 2022.02.10
HDRP Quality 셋팅  (0) 2021.10.08
HDRP 초기 셋팅(Project Setting)01  (0) 2021.09.18

Quality는 High, medium, Low만 있는 것은 아니고 개발에 따라서 단계를 더 많이 나눌 수 있습니다.
그럼...
PC개발의 경우 개인적으로 스팀의 하드웨어 스펙을 기준으로 삼으면 좋지 않을까 싶습니다.
https://store.steampowered.com/hwsurvey/videocard/

Steam Hardware & Software Survey

store.steampowered.com

저는 medium을 현시점 많이 사용되는 GTX 1060을 기준으로 잡았습니다.
Low는 GTX 970 정도로 High는 3060 정도로...

아래는 제가 개발하던 게임을 각각 하드웨어에서 60fps가 나오도록 체크하면서 세팅한 값입니다.
좋은 기준이 되리라 생각됩니다.(게임 따라 다르겠지만, 비슷하지 않을까 생각됩니다.)
보시면 대략적으로 수치를 낮춘 것이 low이며, High는 높게 설정한 겁니다.
각각의 기능에 대한 내용은 유니티 문서를 참고하시기 바랍니다.
(저는 Foward Only로 설정하였습니다만, Raytracing이 효과적인 게임과 많은 수의 실시간 라이팅이 요구되는 게임은 Deferred Only 세팅을 하는 것이 맞으리라 생각됩니다.)

그 어떤 설정보다 라이트에 대한 설정이 가장 퀄리티 셋팅에 영향이 큽니다.

Max shadow resolution을 256 이하로 지나치게 낮추면 오히려 역효과라는 것이 이 부분에서는 중요한 포인트라고 할 수 있습니다.(이유는 모르겠으나 프레임 저하가 더 많이 발생하였습니다.)

포스트 프로세싱 관련된 부분은 수치를 낮출수록 효과적입니다.


Low의 경우 설정만으로 Frame이 나오질 않아서 폴리곤 외에도 카메라의 TAA설정과 포스트 프로세싱 자체를 꺼서 Low에서 원활히 돌아가도록 설정하였습니다.

☆ 추가내용
정확한 원인은 알수는 없었지만 저희게임은 운동장에 디렉션 라이트가 하나만 있는 상황이었는데 gtx 750에서 deferred 가 forward보다 5~10프레임의 이득인 효과를 보았습니다. 원칙적으로 따지면 조명이 하나라서 포워드가 빨라야한다고 생각했지만 디퍼드가 더 효과가 좋았습니다.

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

Shader variant collections  (0) 2022.09.02
HDRP에서 Emssion 사용시 주의점  (0) 2022.06.24
HDRP와 URP의 빛의 차이  (0) 2022.02.10
URP, HDRP 라이트맵(shadowmask) 설정  (0) 2022.01.18
HDRP 초기 셋팅(Project Setting)01  (0) 2021.09.18

(개인적으로 테스트하고 세팅한 값들이라 오류가 있을 수 있습니다.)

 

HDRP Project setting은 개인적으로 굉장하다고 생각됩니다.(더 많은 옵션이 있으면 좋겠다는...)

URP에서의 Project setting는 뭐랄까 굉장히 제약이 많고 할수 있는게 별로 없다는 느낌이지만, 

HDRP Project setting 정말 많은 부분을 직접 설정할수 있다는게 굉장히 매력적입니다.

 

Project Setting을 열어 초기 셋팅을 시작합니다.

 

HDRP는 기본적으로 Linear로 설정이 되어 있지만, 처음에 확인하는 것이 좋습니다.

이게 왜 중요한가는 화면에 보이는 방식과 Shader를 계산할때 수치적으로 정확하게 하기 위함이라고 생각하고 넘어가면 될 거 같습니다.

(감마와 리니어에 대한 장단점은 대마왕님 강의를 검색하셔서 보시는것을 추천합니다.)


그다음은 Graphics인데, 이게 개인적으로는 초기에는 Quality랑 좀 헛갈리는 부분이 있었습니다.

둘다 똑같이 HDRenderPipelineAsset이라는 놈을 사용합니다.

 

그냥 두시면됩니다. 그냥 기본적인 게임 Quality셋팅이라고 할수 있습니다.

 

DefaultHDRPAsset을 임의로 설정할수 있는데, 어차피 Quality에서 설정하기 때문에 이부분은 구지 건드릴 필요는 없다고 생각됩니다.(이렇게 말하면서, 본인은 medium HDRenderPipelineAsset을 여기에 바꿔놓았고..)

Quality에서 보면 이렇게 보이는것을 알수 있습니다.

 


그다음은 HDRP Default Settings로 넘어가서 대부분 그대로 두면되는데,

중요한 부분은 Light Layer names과  Volume Components를 설정하는 것입니다.

Light Layer name은 조명 레이어 설정할때 이름 변경하는 부분입니다.(기본으로 둬도 상관없는데, 은근히 헛갈리기 때문에 이름을 바꿔서 사용합니다. 레이어 이름을 어디서 변경하나 했더니...여기있었군요...)

 

Volume Components를 확인하면, 기본적으로 뭔가 많이 있습니다.

이부분은 Scene을 구성할 때 기본적으로 설정하는 포스트프로세싱입니다.

전체적으로 어떤 분위기를 잡기 위해서 설정하는 것인데, 스테이지마다 분위기가 다르고 설정해야 할 값이 다르다면

Scene에서 직접 구성하는 것 좋기 때문에 대부분 삭제하는 것 좋습니다.

전 개인적으로 Exposure를 제외하고 다 없애고 사용합니다. 어차피 Scene에서 Exposure(노출)를 따로 조정하기 때문에 이것도 의미가 크게 있진 않지만 통일된 기본셋을 하나는 넣어 두는 것이 좋다고 생각합니다.

(그외에 Shadows 처럼 크게 변경되지 않는 것들을 넣어두면 편리합니다.)

 

그리고, LookDev Volume이라는 것이 있는데, 이건 임시로 모델링에 포스트프로세싱을 볼 수 있게 해주는 별도의 툴인데,  게임 설정과는 아무런 상관이 없는 부분이라 무시하셔도 됩니다.(이게 뭔지 한참을 찾았다는...)

 


다음 제일 중요한 퀄리티 셋팅 부분입니다.

이부분을 어떻게 설정하느냐에 따라 고사양 컴퓨터와 저사양 컴퓨터에서 돌아가게 하는것을 결정하는 곳이기 때문입니다. 말그대로 퀄리티를 설정하는 부분인데, 각각 설정을 어떻게 하느냐에 따라서 포스트프로세싱이나 그림자의 퀄리티가 결정이 됩니다. 아래는 기본 HDRP 설정입니다.

근데, Quality 아래에 HDRP가 또 있습니다.

이게 뭐냐면 Quality에 있는 Very low, Medium, Ultra를 각각 컨트롤 하는 부분입니다.

일종에 세부 설정입니다.

근데, 이게 Inspector에서도 수정할수 있는 부분입니다.(편의상 이곳에 해놓은거 같습니다.)

이 퀄리티 파일은 Project에서 우클릭하여 아래처럼 생성할수 있습니다만, 아무래도 유니티에서 제공되는 기본을 가지고 변경하는것이 뭔가 맘이 편합니다.

 

중요한 Quilty 셋팅은 다음장으로...

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

Shader variant collections  (0) 2022.09.02
HDRP에서 Emssion 사용시 주의점  (0) 2022.06.24
HDRP와 URP의 빛의 차이  (0) 2022.02.10
URP, HDRP 라이트맵(shadowmask) 설정  (0) 2022.01.18
HDRP Quality 셋팅  (0) 2021.10.08