вернуться на beanet.ru вернуться к списку проектов вернуться на главную страницу сборника

Тема: Режимы рендеринга


Ключевые слова: рендеринг, отображение, спрайт, прозрачность, свечение, "корона"

См. также: -
Список используемых понятий, сокращений и обозначений

перейти к общему списку

Статья применима как для спрайтов, так и для энтити.


Общие сведения о рендеринге в Source

Большинство режимов рендеринга реализованы неудовлетворительно, поэтому они почти не используются.
Главным образом, изменять режим рендеринга требуется, если нужно реализовать:
  • корректное отображение спрайта, изначально выполненное в виде картинки на черном фоне;
  • прозрачность энтити в той или иной степени;
  • полностью невидимую энтити (т.е. не изображать ее вообще).
Для правильного отображения спрайта предусмотрено 4 режима: свечение (Glow), добавление (Additive) и их альтернативные варианты - добавление с плавной сменой кадров (Additive Fractional Frame) и свечение в перспективе (World Space Glow).


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

Режимы свечения предназначены для того, чтобы имитировать источники света. Спрайт в этих режимах отображается корректно, его плоскость специально не выделяется.
В режиме World Space Glow размер спрайта корректируется с учетом перспективы. В режиме Glow размер спрайта увеличивается с увеличением расстояния.

Пояснение: в режимах добавления спрайт рассматривается как грань, которая может пересекать любые другие грани.
В режимах свечения спрайт рассматривается как точка, и отображается всегда целиком, но только в том случае, если виден его центр (т.е. аналогично точечному источнику света).


Чтобы сделать энтити прозрачной, нужно изменить режим рендеринга на любой, кроме Normal или Don't Render. При этом на эффект оказывает влияние параметр FX Amount (0-255).

В режиме Don't Render энтити активна в игре, только полностью невидима.


Замечание: в редакторе Hammer спрайты в основном рисуются неправильно, но в игре каждый спрайт отображается в соответствии с настройками.



Normal

Обычный режим рендеринга (по умолчанию), без специальных эффектов.
Атрибут FX Amount (0-255) в этом режиме не влияет на рендеринг.

Для спрайтов данный режим не рекомендуется, т.к. отсутствует прозрачность.



Color

В этом режиме для энтити можно задать степени цвета и прозрачности. Однако по сравнению с остальными режимами его можно считать неактуальным.

Для спрайтов данный режим также не рекомендуется, т.к. отсутствует прозрачность фона.



Texture

Визуально режим аналогичен предыдущему.

Также не рекомендуется для спрайтов.



Glow

Режим предназначен для спрайтов, имитирующих светящиеся объекты (например, источник света или огонь). Объекты в этом режиме всегда выглядят "светящимися", будто источники света, однако реального освещения сцене не добавляют.
В этом режиме работает прозрачность, размер спрайта увеличивается с увеличением расстояния.
Атрибут GlowProxySize спрайта в данном режиме учитывается.

Режим полезен, когда нужно обратить внимание игрока на что-либо (например, кнопку пульта).



Solid (устаревший режим)

Данный режим также упоминается как Alphatest (альфа-тест).
Альфа-тест представляет собой попиксельную обработку текстуры, которая отображает прозрачными пиксели с определенным оттенком синего (например, текстура debug/debugluxels). Это очень полезно для отображения несплошных решеток, прутьев и ограждений, которые в противном случае использовали бы не более одной текстуры при любой геометрии брашей.

Goldsource (движок Half-Life) нуждался в данном режиме для рендеринга специальных текстур, однако в современном Source альфа-тест выполняется для материалов автоматически.

Аналогично, не рекомендуется для спрайтов (т.к. не учитывает альфа-компоненту).



Additive

В данном режиме альфа-компонента спрайта делается прозрачной, т.е. спрайт рисуется корректно.
Однако заметна плоскость изображения спрайта (как было отмечено выше). А поскольку спрайт в Source всегда поворачивается "лицом" к игроку, эффект плоскости только усиливается.



Additive fractional frame

Выполняется плавный переход между кадрами анимации (затухание текущего и проявление следующего кадров). Очень удобно для сглаживания резкой анимации (когда не хватает промежуточных кадров).
В остальном режим аналогичен Additive.



Alpha add

Название режима отсутствует в редакторе (не описано в *.fgd-файле ресурсов), тем не менее, режим задается вводом значения 8 для атрибута Render Mode.

Визуально аналогичен режиму Color. Не рекомендуется для спрайтов.



World space glow

Режим аналогичен Glow, только размер спрайта корректируются с учетом перспективы.

Один из лучших режимов для отображения спрайтов.



Don't render

Данный режим также упоминается как None.
При этом объект не отображается, но ведет себя в соответствии со своим типом (классом энтити); игрок и другие NPC, энтити также могут взаимодействовать с таким объектом.



Статьи (рус):
Статьи (eng): Render Modes

перейти к общему списку

Номер статьи: 23

Сборник полезной информации по созданию модификаций на движке Valve Source Engine (игры Half-Life 2, Episode One, Episode Two)