Как стать автором
Обновить

Комментарии 8

О всех неточностях и ошибках в переводе прошу сообщать в ЛС. Спасибо.
Примерно о том же но для веб движка от наших русских разработчиков:

Ряба получилась неплохо, да
Ряба?
Рябь* т9 ))
Хотелось бы больше деталей про фары машин и их отражения на асфальте, но это уже к автору, а не к переводчику. А перевод отличный!

При таком рассмотрении становится очевидным одно большое преимущество отложенного шейдинга по сравнению с прямым: в сцене можно визуализировать большое количество источников света, практически, без помощи пиксельного шейдера, который обрабатывает только пиксели, освещенные теми или иными объектами. При прямом шейдинге приходится рассчитывать воздействие сразу нескольких источников света на фрагмент кадра, даже если он не освещен или впоследствии перекрывается другим фрагментом.

Даже если шейдинг не отложенный, есть один грязный способ получить отдаленно похожий эффект.
Когда-то я возился с светом фар, на проекте они были сделаны просто плэйниками с альфой, т.е. поверх кадра просто накладывается белая полупрозрачная текстура. Выглядит ужасно, т.к. такой свет ничего не освещает, а просто подмешивает больше «белого».
У меня возникла идея умножать значение в буфере на некую величину, тем самым как-бы увеличивая освещенность. На первый взгляд, может показаться, что тут без постэффекта никак, но есть один хитрый способ это сделать, с помощью блэндинга:

  • BlendEquation: GL_FUNC_ADD
  • source: GL_DST_COLOR
  • destination: GL_ONE

В итоге мы имеем, что:
destinationColor = destinationColor + destinationColor * sourceColor
Теперь, если в текстуру запечь фейковое освещение, то оно будет как бы «добавляться» в уже отрендренную сцену.

Есть еще замечательный extension: EXT_shader_framebuffer_fetch, который позволяет читать из текущего фреймбуфера в пиксельном шейдере. С помощью него обычно реализуют программный блэндинг и различные простые постэффекты, которые получаются очень дешевыми, так как не нужно переключать рендертаргет. Использую этот extension можно реализовать различные схемы такого фейкового освещения.
Вот так оно выглядит


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