TGViewer
Unity Architect: архитектура unity проектов Unity Architect: архитектура unity проектов @uniarchitect · 5.23K subscribers
Post #61 2.76K
АРХИТЕКТУРА И РЕНДЕР

Имеют ли они хоть какую-нибудь связь?

Архитектура - это способ организации кода, который отвечает на вопросы:
🔸 Какие элементы будут и какова их ответственность
🔸 Как они будут создаваться и уничтожаться
🔸 Как они будут общаться между собой

Хорошая архитектура позволит:
🔹Не переписывать код при изменении или добавлении требований (разве что лишь маленький кусочек)
🔹Улучшить производительность всего приложения. Причем этот пункт куда важнее, чем при написании обычных скриптов
🔹Позволит легче искать/исправлять баги

Вот конкретные кейсы, когда рендер о части рендера нужно думать заранее:
🔸Когда пишешь свой SRP (Scriptable Render Pipeline)
🔸Есть, пишется свой кастомный шейдер (аля убер-шейдер)
🔸И даже если у тебя уже готовый рендер: Built-in, URP, HDRP, но нужно написать какие-то кастомные фичи

Вот список вопросов, на которые нужно ответить на каждом проекте:
🔹Тени будут или будем fake'ать
🔹Какое способ орисовки, порядок opaque/transparent
🔹Postprocessing нужен ли
🔹Промежуточные pass'ы будут ли и где
🔹Различные пресеты настроек, крутилки художественные (причем некоторые из них должны переопределяться в сцене, а какие-то даже на участке сцены).

ШЕЙДЕРЫ

Странно, но шейдеры это тоже программа, которая просто пишется на другом языке.

Вот почему код в шейдерах и в *.cs файлах одинаков с точки зрения архитектуры:
🔸Находится так же внутри проекта, компилируется, исполняется своим runtime'ом на конечном устройстве
🔸Зашивается и исполняется на клиенте
🔸Можно выносить общую функциональность в отдельные методы.
В отдельные .hlsl файлы и подключать их как include'ы в шейдеры и в другие include'ы.

Соответственно проблемы, которые нужно решать очень похожи, термины местами просто другие:
🔹Какую функциональность куда подключить и нужно ли это вообще
🔹Как должны общаться функции для лучшей производительность и удобства
🔹Как следует подключать include'ы, в каком порядке, как разместить методы в них, по какому признаку
🔹Кого как и почему вынести под keyword'ы и как их организовать

CUSTOM RENDER FEATURE

Допустим, что-то элементарное:
🔸Игрок кликает на юнита и юнит должен получить обводку.
🔸Как сообщить материалу о том, что вот сейчас обводку надо включить а потом выключить?
🔸А цвет обводки?
🔸А если потом понадобится, чтобы обводка меняла паттерн или начинала мигать?

Под конец маленькие список потенциальных проблем, если пустить рендер часть на авось:
🔹Большое количество keyword'ов может привести к взрывному росту комбинаторной сложности.
Это значит — сотни тысяч, миллионы вариантов шейдеров, что отразится в часах компиляции проекта и на размере финального билда
🔹 NaN'ы, +-Infinity роняют проект на проде ни чуть не реже, чем баги в обычных скриптах

И при реализации фичи, эти вопросы всё равно должен кто-то решить. И вполне возможно, что этим "кто-то" окажешься именно ты)

Пост подготовлен при поддержке и редактуре @shiko_q, спасибо😘
Специально для любимого чатика Unity CG Tech

@UniArchitect #проект_с_нуля
Telegram Unity CG Tech Unity CG, все что связано с графикой, Tech Art и Graphic Dev. Рендер, шейдеры, эффекты, текстуры, работа GPU, jobs system, burst, оптимизации и вычисления на видеокарте, etc. По базовым вопросам о unity: @unity3d_ru Флудилка: @unity_flood
  • 👍 17
  • 🤷‍♂ 4
  • 🔥 1
More from @uniarchitect
  1. Jul 24, 2026Post #199
  2. Jul 12, 2026AI НЕ ДЕЛАЕТ ВАС ПРОДУКТИВНЕЕ Незыблемый факт: AI уже очень хорош в маленьких задачах. Нап…
  3. Jul 9, 2026Post #196
  4. Jul 7, 2026UNITY BUILD PIPELINE ПО КИРПИЧИКАМ Полгода назад я решил попробовать активность в блоге, г…
  5. Jul 4, 2026ПРОКЛЯТИЕ ПЕРЕИСПОЛЬЗУЕМОСТИ Делюсь болью. Я последние 5 лет на разных уровнях у разработч…
  6. Jun 29, 2026AI КАК РЕДАКТОР, А НЕ АВТОР Это вторая статья из серии про AI. Первая тут. Когда я запуска…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →