Как об стенку горох

Sep 11, 2020 14:06


К чему я так исписался про вранье?

Есть одна интересная графическая технология - Parallax Mapping.



Она позволяет получать глубокие неровности на изначально ровных поверхностях.


Реальным воплощением Parallax Mapping являются объёмные рисунки на асфальте. Параллакс работает по такому же принципу, только в зависимости от положения камеры этот рисунок перестраивается, чтобы магия не пропадала.

Выглядит оно довольно впечатляюще:



Все эти стены изначально ровные, а выпуклые камни на них нарисованы.

Магия пропадает на стыках стен. Стыки прямые (как и должно быть при ровных стенах) и "нарисованному" рельефу они уже не соответствуют.



Более того, если на такие вот "неровности" бросить какой-то предмет, он зависнет в воздухе. Точнее, он ляжет на ровный настоящий пол, а неровности проигнорирует - они на нем намалеваны.

Это как если встать на объемный рисунок на асфальте. Упасть в нарисованную пропасть не получится. Становится понятно, что она ненастоящая.

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

Эта неровность рисуется на стене, прямо как объемный рисунок на асфальте.

А теперь, например, я хочу сделать так, чтобы при выбивании таких вот кусков бетона в местах выбоин начала бы торчать арматура. И начинается проблема.

Арматуру плоским рисунком сделать нельзя - она плоско выглядит, и вряд ли кому-то понравится.

И нарисовать ее объемным телом тоже нельзя - арматура находится внутри стены, и стена ее закрывает. Да, выглядит так, будто в стене дыра - но на самом-то деле ее нет!

Приходится усложнять вранье. Помимо самой картинки параллакс вынужден перерисовывать глубину сцены (расстояние от камеры до пикселя). Если после этого нарисовать арматуру внутри стены - она "проявится" в этих дырках.

Но появляется новая проблема. Тени для сцены просчитаны заранее, для ситуации, когда дырки в стене нет. И эта дырка из-за этого всегда находится в тени - даже если свет лупит на нее со всех сторон. Потому что путь к свету для дырки закрывает сама стена. Которой как бы нет, но она как бы есть.

И надо как-то изгильнуться теперь уже и для теней. Соврать ещё и там.

А дальше появится еще какая-то проблема. И еще.



графика, работа

Previous post Next post
Up