전체 글 168

[LIGHT][SHADER] Fake Light - LARA CROFT GO

"라라 크로프트 고" 게임속 라이트 로우 폴리곤의 독특한 그래픽을 보여주는 라라 크로프트 고는 배경의 작은 돌멩이부터, 몬스터, 캐릭터까지 전부 로우 폴리곤으로 제작되어 있다. 재미있는 점은 그에 맞춰 라이트까지 표현되어 있다는 것이다. 게임 속 라이트는 특이점들이 존재한다. 하드 엣지 라이트이다. 빛에 대한 밝기의 단계, 빛이 미치는 범위의 경계가 로우 폴리곤의 그래픽에 맞춰 칼 갈이 끊어진다. 광원에서 빛이 발생하여 오브젝트의 표면에 닿는 형태가 아니다. 광원으로부터 빛이 닿지 않을 부분 역시 밝아지는 경우가 자주 존재한다. 하단의 이미지에서 녹색의 영역은 빛을 받는 게 분명하다. 하지만 붉은색 영역은 조금 다르다. 빛이 받는 부분도 존재하지만, 빛이 닿지 않는 부분이 더 많이 존재한다. 물론 반사광..

[SHADERLAB] URP Shader 1편

[SHADER] URP Shader 1편 함께 회사에 다니는 친구를 위하여 기록합니다. URP 전에 흔하게 사용되던 레거시 셰이더의 경우, 유니티 홈페이지에서 따로 받을 수 있고, URP 프로젝트에서 셰이더를 생성하더라도 레거시 셰이더(CGPROGRAM)으로 생성이 됩니다. 그렇기 때문에 URP 셰이더를 처음 시작할 경우 어렵게 느낄 수 있습니다. 이와 같은 이유로 직접 Shader Library에서 Unlit.shader 파일을 열어 시작하는 방법과, 유니티 URP 매뉴얼에 샘플로 제공하는 기본형 셰이더로 시작할 수도 있습니다. 우선 Shader Library의 경우, 경로가 조금씩 다를 수 있지만 보통 프로젝트 폴더 아래, "Library\PackageCache\com.unity.render-pipe..

[SHADER] Object의 Scale 값을 이용한 UV Shader

[SHADER] Object의 Scale 값을 이용한 UV Shader 셰이더 제작보다, 셰이더를 제작하다 문제가 생겼던 부분을 기록하고자 남긴다. 혼자서 3D + 도트 아트 스타일의 게임을 만들며 비주얼 향상과 개발 속도 향상에 고민을 많이 하게 되었다. 특히 비주얼 향상을 위해서는 한 화면에 걸리는 모든 오브젝트들의 픽셀의 사이즈와 밀도를 균일하게 만드는 것이 관건이었다. 게임을 개발을 진행하다 보니 처음 계획한 것보다 오브젝트들의 크기가 변경하게 되는 경우가 많고, 배경에서는 배치한 오브젝트들의 사이즈를 변경하다 보니 픽셀의 사이즈가 들쑥날쑥하게 되는데, 이 부분을 해소하기 위하여 반복된 수정이 많았고, 오브젝트의 사이즈를 기준에 맞춰서 일정한 단위로 끊어 제작하는 등의 여러 가지 규칙을 세우게 되..

[SHADER] URP Shader를 뜯어보자 - 기본형

[SHADER] URP Shader를 뜯어보자 - 기본형  함께 회사에 다니는 친구를 위하여 기록합니다. URP 전에 흔하게 사용되던 레거시 셰이더의 경우, Unity 에디터를 받는 곳에서 따로 받을 수 있지만 URP 셰이더의 경우 받을 수 있는 곳이 없습니다.  심지어 프로젝트 뷰에서도 생성하지 못하고, 레거시 셰이더만 생성이 가능합니다.  위와 같은 이유로 직업 Shader Library에서 Unlit을 열어 시작하겠습니다.  유니티에는 렌더링 관련된 많은 코드들이 모여 있는 폴더가 존재하는데, 그중 Shader Library라는 것은 이름 그대로 유니티에서 사용되는 셰이더들을 모아놓은 폴더입니다.   버전마다 이름이 조금씩 다르긴 하지만 보통 유니티로 생성한 프로젝트 폴더 아래, "Library\P..