내외 교육들/TIL

TIL)2024-02-07 CCTV 초기 구현

LongRunnner 2024. 2. 7. 23:12

오늘 배운 것 및 개발 과정

트러블슈팅 - CCTV 화질을 원본으로 만드는 방법

<발단전개>

현재 식당 외부를 볼 수 있게 하는 CCTV를 2D 상에서 만드는 방법을 찾던 도중, render text를 통한 CCTV 구현 과정에서 해답을 얻었다.

  1. 유니티 기능 중에 Render Texture라는 런타임에서 생성 및 갱신되는 특수한 Texture입니다. 즉 실시간으로 텍스쳐의 생성 및 변화를 갱신하는 특수한 texture 입니다. 먼저 project 창에 지정 위치에 render texture을 추가합니다.

    2. 오브젝트에 적용시킬 Material 오브젝트를 생성하고 다음과 같이 설정합니다.

    3. hierarchy 창에서 카메라 오브젝트를 추가시키고 다음과 같이 설정합니다. 옵션들 중에서 Target Texture 항목에 Render Texuture를 추가합니다.

    4. Material을 적용시킬 square 오브젝트를 하나 생성하고 해당 오브젝트에 CCTV Render Texture를 적용합니다. 그러면 카메라 비추는 화면이 Render Texture가 적용된 오브젝트에 나타납니다.

위의 오브젝트는 256X256 스프라이트 이미지에 맞춰 나오지만, 아래 카메라 촬영과 비슷한 크기로 늘리면 이미지가 늘려지는 문제점이 발생하였다.

구체적인 기능은 잘 나오지만 해당 텍스처가 출력되는 이미지가 변질되어서 나오는 문제가 발생하였다. 정확히 메인 카메라의 크기에 맞춰서 크기를 바꾸면 랜더 텍스쳐가 늘려지는 문제가 발생하였습니다.

<해결점>

카메라 및 게임 해상도에 맞춰서 스프라이트를 삽입해줘야 합니다. 해당 Square 오브젝트는 256X256 사이즈의 스프라이트를 출력하기에, 카메라에 Render Texture를 입히면 위 사이즈에 맞게만 카메라를 비춥니다. 그래서 스프라이트 이미지를 1920X1080 에 맞는 빈 스프라이트 데이터를 넣어서 다시 초기화를 해주면 카메라가 짤려서 나오는 것이 아닌, 정상적으로 출력할 수 있습니다.