Когда я сел делать Way to Home, у меня сразу возник вопрос: «Как сделать реалистичный эффект заниженного разрешения, как на старых консолях?»
Вариантов было много, и самым правильным казалось использовать шейдеры и камеру, но для меня это выглядело немного запарно. Можно было взять готовое решение, но за действительно хорошие варианты пришлось бы платить, да и хотелось сделать всё самому.
И тут в голову внезапно пришла идея: «А что, если просто транслировать изображение камеры на текстуру со специально заниженным разрешением?»
Решение оказалось очень простым и я решил почему бы не поделиться им с вами.
Итак, сейчас расскажу, как сделать PSX-эффект камеры буквально за несколько минут 🍆
1️⃣ Первым делом создаём текстуру, на которую будет рендериться изображение с камеры.
Create → Rendering → RenderTexture
В Inspector выбираем нужное разрешение. Лично я поставил 320×240.
Самое главное в Filter Mode выбираем Point, то есть без сглаживания. Иначе вместо пиксельной картинки получите просто мыло.
2️⃣ После этого переходим к камере на сцене и в разделе Output → Output Texture указываем нашу Render Texture.
3️⃣ Завершающий штрих - создаём отдельный UI Canvas и устанавливаем у него Scale Mode → Scale With Screen Size.
На этом Canvas создаём Raw Image, растягиваем его на весь экран и в Stretch выставляем привязку ко всем сторонам, чтобы изображение всегда занимало весь экран. Затем в Raw Image → Texture помещаем нашу Render Texture.
Готово! Всего за пять минут у нас получился эффект камеры как на первой плойке.
Костыльно? Да 😔
Работает? Ещё как! 😮💨
Единственная проблема, с которой можно столкнуться, уведомление Unity о том, что на дисплей не рендерит ни одна камера. В билде эта надпись исчезнет, но во время разработки она немного раздражает. Я решил проблему просто, сделав отдельную камеру-затычку. 🤷♂️
На этом сегодняшний мини-гайд подошёл к концу. Надеюсь, был полезен.
Жду ваших реакций и комментариев! ☕