무료 레트로 CRT 모니터 셰이더 URP (Unity 6 튜토리얼)
요약
Unity 6와 URP를 사용하여 레트로 CRT 모니터 효과를 구현하는 튜토리얼입니다. 풀스크린 렌더링과 여러 카메라 설정을 조합하여, 화면에 다양한 커스터마이징 가능한 아날로그 노이즈 및 왜곡 효과를 적용하는 방법을 안내합니다.
핵심 포인트
- Unity 6와 URP 환경에서 CRT 모니터 셰이더 사용법을 배웁니다.
- 풀스크린 렌더 패스와 여러 카메라 설정을 통해 효과를 구현합니다.
- 노이즈, 스캔라인, 비네팅 등 다양한 아날로그 왜곡 효과를 커스터마이징할 수 있습니다.
영상: FREE Retro CRT Monitor Shader URP (Unity 6 Tutorial)
채널: SpeedTutor
길이: 6분 0초
출처: 자막 (자동, 영어)
그래서 화면에 적용하는 효과에 대한 많은 커스터마이징을 가지고 있습니다. 그리고 이 전체 장면 위에 이것을 입히기 위해 풀스크린 렌더(full screen render) 기능을 사용합니다. 이걸 얻으려면 illocks의 페이지로 가서 레트로 CRT 셰이더를 받으면 됩니다. 저는 이걸 Unity 6.3과 URP에서 사용하고 있습니다. 만약 이걸 갖고 싶다면, 오른쪽 상단에 코드라고 쓰여 있는 곳을 클릭한 다음 zip 다운로드 버튼을 누르면 됩니다. zip을 다운로드하면 폴더가 생기고, 압축을 풀어서 그 전체 폴더를 그대로 Unity 안에 복사해 넣기만 하면 됩니다.
Unity에 들어오면 저는 이걸 URP retrocttr shader로 이름을 바꿨고, 여기에 모든 것들이 포함되어 있습니다. 레트로 씬으로 가면 현재 아무것도 렌더링하지 않는다는 것을 알 수 있을 겁니다. 메인 카메라가 다른 렌더링 기능을 사용하도록 설정해야 합니다. 지금은 빠져있기 때문입니다. 그래서 'Edit'을 누르고 'Project Settings'로 가서 왼쪽에서 'Quality'로 이동합니다. 그리고 'Render Pipeline Asset'이라고 쓰여 있는 곳을 보면, 제공되는 것을 사용할 겁니다. 바로 universal RP high quality를 사용하겠습니다.
계속(continue) 버튼을 누릅니다. 이제 게임으로 가면 여기에 추가된 것을 볼 수 있습니다. 그리고 렌더링에 blit to main renderer가 사용되고 있고, lowresolution 카메라라는 또 다른 카메라를 사용하며, 이 카메라는 universal renderer item을 사용하고 낮은 해상도로 출력하기 위해 output render texture를 사용합니다. 즉, 아무 설정도 활성화하지 않아도 장면이 저해상도로 보이게 만듭니다. 그리고 씬이 두 번 렌더링되지 않도록 하려면, 메인 카메라의 culling mask가 'nothing'으로 설정되어 있는 것을 볼 수 있습니다.
따라서 아무것도 렌더링하지 않습니다. 낮은 해상도의 카메라만 무언가를 렌더링합니다. 따라서 레트로(retro)로 이동하여 'blit to main'을 클릭하면 전체 화면 렌더 패스(full screen render pass) 기능을 사용하는 것을 볼 수 있습니다. 이것은 투명도를 렌더링하기 전의 상태입니다. 그리고 이것이 전체 화면에 걸쳐 해당 작업을 수행하는 데 레트로 머티리얼(retro material)만 사용한다는 것을 알 수 있습니다. 나란히 재생되도록 하겠습니다. 그러면 화면 중앙에 보이는 RGB 줄무늬를 제거할 수 있습니다.
원하지 않는다면 스크롤링 정적 노이즈(scrolling static)도 제거할 수 있습니다. 화면의 주요 부분에 있는 모든 정적 노이즈를 제거할 수 있습니다. 이미지 왜곡을 제거하여 너무 심하게 움직이지 않게 할 수도 있고, 가장자리 주변의 비네팅(vignette) 스타일인 CRT 스크린 워프(CRT screen warp)도 사용할 수 있습니다. 이미지 밝기를 조정할 수 있습니다. 줄무늬 해상도를 높이거나 낮출 수 있습니다. 정적 노이즈 강도를 높일 수 있지만 양에 주의해야 합니다. 왜곡 강도는 더 흐릿하거나 더 어렵게 보이도록 할 수 있습니다.
스캔 라인(scan line) 강도와 스캔 라인 높이, 그리고 워프 강도도 조정할 수 있습니다. 따라서 원하는 경우 물체 주변의 어두운 영역을 만들어 터널링된 것처럼 또는 더 작게 보이게 만들 수 있습니다. 실제로 이 장면을 렌더링하는 데 낮은 해상도의 렌더 텍스처(low resolution render texture)를 사용한다는 것을 볼 수 있습니다. 설정에서 활성화되어 있다면 구형 입력 시스템(older input system)을 사용하여 이 장면에 이동할 수도 있어, 사용하고 있는 게임 내에서 이를 활용할 수 있습니다. 이 점이 좋은 것은 셰이더 그래프(shader graph)를 사용한다는 것입니다.
따라서 블랙보드에 있는 모든 다른 항목의 노출도를 확인할 수 있습니다. 이를 통해 사용되는 다양한 항목들을 모두 볼 수 있습니다. 마우스를 올리면 어느 부분이 어떻게 작동하는지, 색상 줄무늬 생성에 영향을 주는 다양한 샘플 설정(sample setting), 밝기 조정, CRT 가장자리(edges), 스캔 라인(scan lines), 스크롤링 정적 노이즈(scrolling static), 화면의 주 정적 노이즈(main static) 등이 있는 것을 볼 수 있습니다. 따라서 이 예제들 중 아무거나 가져와서 자신만의 셰이더를 만들 수 있는데, 정말 상당히 강력합니다.
만약 추가 카메라 없이도 픽셀화된 효과를 사용하고 싶다면, URP 샘플 버퍼 노드(URP sample buffer node)를 블릿 소스(blit source)로 설정하여 교체하고, 이 기능을 동일한 렌더 피처(render feature) 내에서 사용하는 새롭고 업데이트된 머티리얼을 사용하면 됩니다. 그리고 전체 해상도를 사용하고 싶다면, 그렇게 할 수 있도록 셰이더 편집 방법도 보여드리겠습니다. 메인 텍스처 섹션에서 이 샘플 2D 텍스처 노드(sample 2D texture node)를 제거하고, 그 메인 텍스처 노드 자체도 삭제하면, 이제 URP 샘플 버퍼를 만들 수 있습니다.
오른쪽 클릭하여 노드를 생성하고 여기에 URP 샘플 버퍼를 만듭니다. 소스 버퍼(source buffer)는 블릿 소스(blit source)로 설정해야 합니다. 그러면 그것을 제거할 수 있습니다. 이제 새로운 URP 샘플 버퍼가 생겼습니다. 출력(output)은 이 애드 노드(add node)에만 설정하고, 원래의 이미지 왜곡(image distortion) 출력을 여기에 사용하는 UV에 설정합니다. 그리고 이 셰이더를 저장해야 합니다. 게임으로 돌아가서 메인 카메라로 이동하면, 저해상도 텍스처 카메라를 제거할 수 있습니다. 그리고 그것을 '모두(everything)'로 설정하기만 하면, 이제 낮은 해상도로 스케일링되지 않고 렌더링됩니다.
그리고 모든 후원자분들께 진심으로 감사드립니다. Verishuther와 Party of 10에게는 놀라운 지원에 특별히 감사드립니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 YouTube SpeedTutor (Unity)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기