WedX - журнал о программировании и компьютерных науках

Освещение, закрывающее небо

У меня есть система освещения на основе 2D-плиток, которая нарисована на Render Target. Я также рисую фон с горами, солнцем/луной и облаками. Есть также незажженная игра; блоки, персонажи и т.д.

Вот порядок, в котором все рисуется:

1. Background
2. Game World
3. Lighting

Проблема в том, что ОСВЕЩЕНИЕ закрывает ФОН, когда темно:

Луна и фон покрыты тьмой.

Хотя днем ​​все в порядке, потому что свет полный: Альфа света равна 1, поэтому фон виден

Вы можете спросить, а почему бы вам просто не смешать каждый блок, не рисуя освещение на RenderTarget?

Потому что это помешало бы мне выполнить плавное освещение, как видно на картинках. Чтобы создать плавное освещение, я рисую квадраты света на RenderTarget, выполняю размытие по Гауссу, а затем рисую этот RenderTarget.

Как насчет того, чтобы не рисовать квадрат света в пустых местах?

Свет размывается на любых соседних блоках, и не все объекты в моей игре, на которые влияет освещение, являются квадратными, поэтому они будут выглядеть как спрайт с размытым квадратом поверх него.

Свет НЕ рисуется в пустых местах: Свет НЕ рисуется в пустых местах

Свет рисуется везде: Свет рисуется везде

Есть ли способ сохранить фон видимым или что-то еще, что могло бы помочь в моем затруднительном положении?

12.12.2013

  • Я понятия не имею, что вы на самом деле спрашиваете или что пытается показать снимок экрана. 12.12.2013
  • Свет затемняет фон. 12.12.2013
  • Я собирался задать точно такой же вопрос, это проблема со звездами и луной на фоне моей игры, они становятся серыми, когда должны быть яркими из-за темноты освещения. 14.12.2013
  • О, хеееее, я видел твой вопрос о плавном освещении! Хотя на самом деле я использовал размытие по Гауссу, а не метод, описанный в ответе на ваш вопрос. 15.12.2013
  • ну отсутствие света затемняет фон? мне это кажется правильным, но если вы хотите что-то увидеть, добавьте окружающий свет и/или используйте менее строгое размытие. Также тени не должны уходить в подполье... так некрасиво выглядит. Кстати, как насчет того, чтобы сделать это как в реальном мире (не затемнять цвет, если нет света, а увеличивать интенсивность при наличии света) 18.12.2013

Ответы:


1

Я предлагаю вам сделать следующее:

  • Рендеринг освещения в rendertarget
  • Рендеринг сцены в rendertarget (оставьте фон прозрачным)
  • Умножьте сцену с целью рендеринга освещения
  • Рендеринг фона на экран
  • Рендеринг сцены (с уже примененным освещением) на экране

Поскольку фон добавляется после применения освещения, он не будет затронут.

27.07.2015
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]