Требуется обновление браузера.

Провалиться под текстуры!


Просмотров: 5144
03 апреля 2016 года
Цитата
Волны падали вниз стремительным домкратом

Среди программистов и членов команды, хоть как-то понимающих алгоритмику визуализации трёхмерных сцен, фраза "провалиться под текстуры" является ярким признаком: говорящий, скорее всего рядовой геймер с претензией на "продвинутость".

Единожды кем-то оброненная несуразность приклеилась как "силиконовая долина" (в значении "кремниевая"): её используют многочисленные обзорщики/летсплейщики, смело набивают в обращениях к техподдержке игроки. Между тем, практически всегда подразумевается совсем другая ситуация: "проваливание" сквозь полигоны модели.

Давайте уже разберёмся с этим вопросом.

Как и в большинстве подобных ситуаций, начнём с терминологии.

Цитата

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

Иными словами: текстура - это просто рисунок, которым раскрашен объект. "Провалиться под текстуры" - это тоже самое что провалиться в рисунок ковра.

Рассмотрим на примере. Возьмём группу объектов: сферу, "лежащую" на кубе.


Рисунок выше показывает: как видит сцену игрок. А вот как это выглядит, если оставить только отрисовку рёбер полигональных сеток моделей.

Цитата

Полигональная сетка (жарг. меш от англ. polygon mesh) — это совокупность вершин, рёбер и граней, которые определяют форму многогранного объекта в трехмерной компьютерной графике и объёмном моделировании.


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

Предположим, что из-за какой-то ошибки: неверного описания фрагмента модели или её физического (габаритного) примитива, артефакта работы физического движка, прочего - сфера частично "провалилась" в куб.


А вот - сетка:


Вот именно это среднестатистический геймер называет "провалиться под текстуры". Но есть ли вообще место этому обороту? - Да, только означает он совсем не то событие, что можно было бы подумать. Вероятно, провалиться в рисунок можно как-то так:


Сфера исчезла, а один из её ракурсов "запёкся" в текстуру куба:


Сложно представить: в ходе какого недосмотра в логике программы может возникнуть подобный эффект ("изготовление фотографии с уничтожением объекта съёмки"). Но - "сон разума рождает чудовищ" - ситуация вполне может реализоваться.

На заметку
Если Вы наблюдаете, как в виртуальном трёхмерном мире один объект вошёл в другой - такая ситуация называется:
(В комментариях справедливо замечают, что полигон - фигура с нулевой толщиной, поэтому провалиться "в неё" нельзя: или "сквозь", или "под". Составил несколько типовых формулировок, подходящих к той или иной ситуации в виртуальном мире)
одна модель провалилась под полигоны другой;
одна модель провалилась в другую;
одна модель застряла в полигонах другой.

На заметку
Если Вы наблюдаете, как в виртуальном трёхмерном мире один объект впечатался в рисунок, являющийся текстурой другого объекта, а сам при этом исчез - такая ситуация называется:
одна модель провалилась под текстуры другой.


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


Запись опубликована в категориях:

Игростроение  
 

Комментарии

Инкогнито
  Загружаем captcha
Александр
10 Александр  30 июля 2016 23:09
>> 8 Ну, в первую очередь, это теоретическая попытка. Из практических примеров на ум приходит экран монитора, на который с некоторым FPS натягивается текстура, являющая собой результат рендера мира с позиции и ориентации камеры наблюдения.
При отсутствии в движке другого инструментария, несколько слоёв полупрозрачных квадов (трёхмерных примитивов, составленных из двух полигонов-треугольников, и представляющих собой плоский прямоугольник с нулевой толщиной) с динамически меняющейся текстурой позволяют реализовать полноэкранный blur эффект. Текстура, аналогично первому примеру, получается путём рендера мира. Если перед наблюдателем N пронумерованных в сторону "от наблюдателя" квадов, то в момент времени T: на 1-ом кваде содержится изображение мира в момент времени T, на втором - (T-dt), на третьем - (T-dt*2), и т.д.
Дмитрий Маслов
8 Дмитрий Маслов  20 июля 2016 00:17
> Сфера исчезла, а один из её ракурсов "запёкся" в текстуру куба
Вопрос в том, в каких ситуациях это может происходить?
Я вот что-то не припомню на практике. Есть ли примеры? Или это теоретическая попытка представить, возможно ли вообще "провалиться под текстуры"?
Александр
6 Александр  03 апреля 2016 23:02
>> 5 Совершенно верно. Поправил текст.
Инкогнито
5 Инкогнито  03 апреля 2016 21:40
Учитывая что полигоны обладают нулевой толщиной, провалится в полигон тоже не получится.
Я бы назвал эту ситуацию "Объект провалился в другой объект".
Например: "Мой перс провалился под землю!", объекты: "перс" и "земля"