기본적으로 좋은 레벨(environment)디자인과 캐릭터 디자인 등 아트워크가 되야 하겠습니만, 저도 초보일 때, 이렇게 칙칙한 느낌밖에 안돼는 건가 싶을 때가 있었습니다. 다음은 블룸이펙트 등으로 대변되는 포스트 프로세싱 입니다. 솔직히 현재의 기준으로는 정말 많이 따라오기는 했습니다만, 여전히 유니티보다는 언리얼이 그래픽 적으로 좀 더 나은 것 같습니다. 그런데 각 엔진의 초기 작업 화면에서 보여지는 만큼 차이가 나는 것은 아닙니다. 유니티도 언리얼같은 느낌을 낼 수 있는데, 현재 버전에서 해 줄 수 있는 것들을 간단히 정리하면, 1. Gamma -> Linear 로 바꿔서 컬러스페이스를 바꿔줄 수 있습니다. (OpenGL ES2.0 이전에선 지원되지 않아서 모바일 사용은 제약이 좀 있다고 할 수 있겠습니다) 2. Lighting 에서 Global Illumination 과 Final Gather 등과 여러 환경 옵션을 Baking 해주면 엄청나게 그래픽적으로 향상됩니다. 사실 Light 세팅이란 것이 Scene의 Look을 향상시키는데 워낙 절대적이어서, CGI에 관련된 어디에나 Lighting 전문 아티스트가 존재할 정도이죠. 당연히 Scene을 어떻게 Lighting 하느냐에 따라 수준은 매우 크게 차이가 나긴 합니다만... 3. 포스트 프로세싱을 적용합니다. 4. 여러가지 좋은 쉐이더를 개발하거나 사용하는 것입니다. 위 영상에서는 에셋스토어의 UBER Shader를 소개했네요...(저도 구입해서 갖고 있긴 합니다만, 모바일을 개발하다보니 아직은 Z버퍼 사용외에는 크게 도움이 되지는 않고 있습니다만) 이 밖에도 아주 많은 고품질 쉐이더 들이 있습니다. 06 Unity/프로그래밍 유니티 실시간으로 퀄리티 세팅 바꾸기 ( Unity Quality setting in runtime )반응형
반응형 공유하기 게시글 관리 구독하기맨텀저작자표시 비영리 변경금지 'Unity > 프로그래밍' 카테고리의 다른 글유니티 Unity ABC 파일 alembic 파일 넣기 (0)2018.11.13유니티 구조체 인스펙터 창에서 보기 Unity struct inspector (0)2018.11.11Touch Ray로 3d오브젝트 선택하기 (0)2018.06.11텍스트 타이핑 효과 (0)2018.06.08유니티 터치 줌, 이동 Unity Touch UI Zoom and Panning (1)2018.06.07COMMENT 0
secret WRITE Web GL이 기본적으로 전체화면 취소 버튼에 Escape가 할당되어 있어서 그런지 Escape 버튼이 조금 오락가락한다. Web GL에서 테스트하는데 한 번 눌러서 작동하지 않는다면 두세 번 눌러보자.
보면 단축키 탭도 있는데 이건 지금 하기엔 키 할당 되어있는 기능도 거의 없어서 나중에 한다.
이거 만드는 과정에서 UI 관련하여 꽤 공을 많이 들였는데 글로 작성하려니 재미도 없고 시간도 오래 걸리고 쓸데없는 내용만 길어져서 생략했다. WebGL에서 직접 조작해보고 깃허브 코드 보면서 궁금한 게 있다면 언제든지 질문 바란다.
일단 언급만 해두자면... - 켜진 캔버스는 Escape 버튼(ESC)으로도 닫을 수 있다. 여러 개 켜져 있으면 역순으로 꺼진다. - 그래픽 설정은 변경해도 바로 반영되지 않는다. 적용 버튼을 눌러야 한다. 변경한게 있는데 그냥 닫으려 하면 경고하고 적용 버튼을 누르면 15초 안전장치가 마련되어 있다.(단, Web GL은 해상도 및 전체 화면 여부 변경이 플레이어 내에서 불가하다.) - 사운드 및 게임플레이 관련 설정은 수치를 조절하면 즉시 반영 및 저장된다. - 주변에 들어가면 BGM이 재생되는 핑크색 박스가 3개 있다. BGM 재생 및 페이드 교체 테스트 용도로 만들었다.
esc를 누르면 나오는 일시정지 창. 재시작은 뭔가 허전해서 넣었다. 종료는 Web GL 플랫폼에선 비활성화되도록 해놓았다. 다른 플랫폼에선 작동한다.
설정을 들어가자
탭은 심플하게 구성. 설정에서 건든 것은 다음에 게임을 다시 켜도 저장되어있어야 하므로 PlayerPrefs에서 데이터를 관리한다. 좌상단의 디버깅용 저장 값 초기화 버튼은 그걸 초기화시켜준다. 개발 도중 값의 사용처가 바뀐다든가 등의 이유로 이전 값이 그대로 오면 난감한 경우 사용하기 위함이다.
UI 배경을 반투명으로 하니 일시정지 창이랑 겹쳐서 별로 이뻐 보이진 않는데 그래픽 변화를 보다 잘 보이게 하기 위해 그냥 반투명으로 뒀다. 그래픽은 애초에 신경 쓰지 않기로 했으니 미관 문제는 넘어가자
그래픽 설정에서 변경 가능한 부분은 해상도, 전체 화면, 주사율, 텍스처, 그림자, 안티앨리어싱, 수직 동기화, 비등방성 필터링이 있다. 이 설정들이 선정된 이유를 묻는다면
별거 없다. 그냥 Unity 퀄리티 세팅에서 변경 가능한 옵션들이 위와 같다. (해상도나 주사율 등은 퀄리티 세팅과 무관하지만 디스플레이 영역도 그냥 포함했다)
디테일한 설정들은 제외하고 다른 게임에서도 흔히 볼 수 있는 대표 그래픽 요소들만 가져왔다.
여기서 더 많은 요소를 조정하고 싶다면 PostProcessing이나 쉐이더 요소를 건드릴수 있는 옵션이 있으면 좋겠지만 이 프로젝트는 그래픽을 신경 쓰지 않으니 넘긴다.
위에 나열한 그래픽 설정 요소들은 전부 유니티 API로 변경이 가능하다.
변수로 위와 같이 두고 적용은 아래와 같이 둔다.
resolutionWidth과 resolutionHeight는 각각 resolution.Item1, resolution.Item2에 대응한다. https://github.com/jab724/Kupa3DRPG/blob/main/Kupa3DRPG_SRC/Assets/01.%20Scripts/Option/Option_Graphic.cs |