К чему я так
исписался про вранье?
Есть одна интересная графическая технология - Parallax Mapping.
Она позволяет получать глубокие неровности на изначально ровных поверхностях.
Реальным воплощением Parallax Mapping являются объёмные рисунки на асфальте. Параллакс работает по такому же принципу, только в зависимости от положения камеры этот рисунок перестраивается, чтобы магия не пропадала.
Выглядит оно довольно впечатляюще:
Все эти стены изначально ровные, а выпуклые камни на них нарисованы.
Магия пропадает на стыках стен. Стыки прямые (как и должно быть при ровных стенах) и "нарисованному" рельефу они уже не соответствуют.
Более того, если на такие вот "неровности" бросить какой-то предмет, он зависнет в воздухе. Точнее, он ляжет на ровный настоящий пол, а неровности проигнорирует - они на нем намалеваны.
Это как если встать на объемный рисунок на асфальте. Упасть в нарисованную пропасть не получится. Становится понятно, что она ненастоящая.
Чаще всего технологию параллакса используют для выбоин на стенах. Стена изначально ровная, но я залепил в нее ракетой и отколол кусок кирпича или бетона. Получил неровность.
Эта неровность рисуется на стене, прямо как объемный рисунок на асфальте.
А теперь, например, я хочу сделать так, чтобы при выбивании таких вот кусков бетона в местах выбоин начала бы торчать арматура. И начинается проблема.
Арматуру плоским рисунком сделать нельзя - она плоско выглядит, и вряд ли кому-то понравится.
И нарисовать ее объемным телом тоже нельзя - арматура находится внутри стены, и стена ее закрывает. Да, выглядит так, будто в стене дыра - но на самом-то деле ее нет!
Приходится усложнять вранье. Помимо самой картинки параллакс вынужден перерисовывать глубину сцены (расстояние от камеры до пикселя). Если после этого нарисовать арматуру внутри стены - она "проявится" в этих дырках.
Но появляется новая проблема. Тени для сцены просчитаны заранее, для ситуации, когда дырки в стене нет. И эта дырка из-за этого всегда находится в тени - даже если свет лупит на нее со всех сторон. Потому что путь к свету для дырки закрывает сама стена. Которой как бы нет, но она как бы есть.
И надо как-то изгильнуться теперь уже и для теней. Соврать ещё и там.
А дальше появится еще какая-то проблема. И еще.