$phong
< Ru
This translated page needs to be updated.
You can help by updating the translation.
Also, please make sure the article tries to comply with the alternate languages guide.$phong
- это материальный параметр шейдера , доступно для всех игр на движке Source начиная с Source 2006.
It is also available on the LightmappedGeneric
and WorldVertexTransition
shaders in all games since Counter-Strike: Global Offensive(также в ). It provides diffuse reflections at low intensity and specular highlights at apex intensity, masked by a texture which control per-texel its intensity. Для полного объяснения смотреть материалы Фонга.
Примечание:Затенение Фонга для
LightmappedGeneric
и WorldVertexTransition
доступен только в . It requires the material to be lit by the sunlight from a env_cascade_light
entity to work properly and uses the dynamic shadows generated by it as a mask on top of the traditional phong masking. ((во всех играх начиная с ) env_projectedtexture
также влияет на примитивы с включённым фонгом)
Баг*: Garry's Mod reads lighting direction for brush phong from
env_sun
; карты с нескольким количеством солнц могут иметь не совсем точные отражения фонга на примитивах.Примечание:Затенение Фонга для
LightmappedGeneric
также доступно и в Mapbase, но в нём оно реализовано по другому.Contents
Синтаксис
$phong <bool >
Примечание:Все параметры в примере ниже должны быть указаны в материале, иначе затенение Фонга не появится вовсе, исключением является Insurgency.
- Нужно сделать: Другие игры, которые не требуют присутствия всех параметров фонга в материале (Скорее всего Portal 2 и дальше)
VertexLitGeneric
{
$phong 1
$bumpmap [текстура]
$phongexponent 5 // либо это
$phongexponenttexture [текстура] // либо это
$phongboost 1.0
$phongfresnelranges "[0 0.5 1]"
}
Параметры шейдера
Маски
Предупреждение:Имеются некоторые нюансы касаемо
$normalmapalphaenvmapmask
и $selfillumfresnel, когда используется $phong
!- Используя $selfillumfresnel без
$normalmapalphaenvmapmask
вынудит$envmap
использовать альфа-канал$basetexture
как маску. - Используя $selfillumfresnel вместе с
$normalmapalphaenvmapmask
умножит$envmap
на0.0f
, тем самым отключив эффект! - Когда $selfillumfresnel не используется, то маска, используемая для
$envmap
будет альфа-каналом$basetexture
до тех пор пока не будет использован$normalmapalphaenvmapmask
. - Если
$normalmapalphaenvmapmask
используется, то альфа-канал$bumpmap
будет использоваться как маска Фонга. Используя$basemapalphaphongmask
или$basemapluminancephongmask
перекроет этот параметр.
Для работы Фонга требуется маска. Альфа-канал карты нормалей работает как маска Фонга по умолчанию.
Shader(s): VertexLitGeneric
Использует альфа-канал
$basetexture
как маску Фонга, вместо альфа-канала $bumpmap
.
Предупреждение:Используя этот параметр вместе с
$normalmapalphaenvmapmask
перекроет маску используемую для $envmap
, и сделает её содержимым альфа-канала $basetexture
!Предупреждение:В Garry's Mod используя этот параметр вместе с
$normalmapalphaenvmapmask
и $envmap
отображения в $envmap
и $phong
будут замаскированы как альфа-каналом $basemapalphaphongmask
, так и альфа-каналом $normalmapalphaenvmapmask
.
Shader(s): VertexLitGeneric
Маскирует силу фонга основываясь на яркости
$basetexture
.
Баг:Basetexture Luminance заменит маску используемую для
$envmap
, если $normalmapalphaenvmapmask
уже используется. [todo tested in?]Баг:Не работает в Garry's Mod. [todo tested in?]
Общее значение экспоненты. Перекрывает маску экспоненты, если она присутствует.
$phongexponent2
предназначен для второго материалаWorldVertexTransition
в CS:GO engine branch.
Shader(s): VertexLitGeneric
По-тексельная карта экспоненты. В карте экспоненты хранятся:
- Красный канал: Маска экспоненты (размер блика, значение варьируется от 0 до 255, 0 - большой блик, 255 - маленький.)
- Зелёный канал: Маска оттенка альбедо (работает только если
$phongalbedotint 1
, значение варьируется от 0 до 255, 0 - нет оттенка, 255 - полный оттенок.) - Синий канал: Ничего.
- Альфа-канал: Маска
$rimlight
(работает только если$rimmask 1
.)
- Примечание:Затенения
LightmappedGeneric
иWorldVertexTransition
не поддерживают$phongexponenttexture
. Вместо этого используйте$phongexponent
.
Shader(s): VertexLitGeneric
Multiply the exponent from the
$phongexponenttexture
by this amount. Совет: По умолчанию значение этого параметра
"0.0"
. Однако, более разумным значением по умолчанию было бы "149.0"
Shader(s): VertexLitGeneric
Shader(s): VertexLitGeneric
Заставляет работать затенение фонга на материалах использующих его, даже на низких уровнях видеокарты, когда
mat_phong
отключён.
Shader(s): VertexLitGeneric, Infected
Diffuse exponent used for dynamic lights only.
Примечание:При использовании этого параметра с
$halflambert
сильно снизит его эффект.
Shader(s): VertexLitGeneric, Infected
Derive phong mask from areas that are more red than others. Only when variation is disabled.
Shader(s): VertexLitGeneric, Infected
Экспонента для параметра выше.
Яркость
$phongboost <float >
Shader(s): VertexLitGeneric, LightmappedGeneric((только в ))
Коэффициент яркости фонга. Чем выше значение, тем ярче блик. Полезен для таких поверхностей как металл и стекло.
Смотреть Диапазоны Фонга по Френелю. Значения по умолчанию:
"[0 0.5 1]"
.
- Примечание:Эти диапазоны френеля также влияют и на
$envmap
, если он и Фонг включены в материале. - Примечание: drives the x component of a phongwarptexture if specified.
Shader(s): VertexLitGeneric
Отключает принудительное half-lambertian затенение на материалах Фонга.
Примечание:This parameter is effectively forced on in CS:GO engine branch due to
$halflambert
being disabled.Цвета
Shader(s): VertexLitGeneric
Окрашивает блик цветом
$basetexture
. Количество окраски определяется зелёным каналом $phongexponenttexture
. $phongexponenttexture
должен быть указан, чтобы $phongalbedotint
мог заработать.
- Предупреждение:
$phongalbedotint
не может быть использован вместе с$phongtint
. Последний параметр отключит эффект. - Примечание:
$phongalbedotint
работает путём умножения$basetexture
на отражение, при это не затемняя альбедо. В результате блик станет тусклее, поэтому учтите это в вашей маске фонга или с помощью$phongboost
. - Примечание:
$phongalbedotint
окрасит блики оригинальным цветом$basetexture
, даже когда материал окрашен используя$color2
илиrendercolor.
Shader(s): VertexLitGeneric
Shader(s): VertexLitGeneric
Оттенок цвета отражения Фонга.
- Предупреждение:Этот параметр перекроет
$phongalbedotint
, если используются оба. - Примечание: Также окрашивает
$rimlight
Shader(s): VertexLitGeneric
Используется для создания эффекта переливчатости, как показано на Охотниках из Второго Эпизода.
- The highlight is multiplied with a texture. The coordinates of the sampled pixel are as follows:
- x: 1 - (distance to the center of the highlight)
- y: 1 - (fresnel component as computed by Phong Fresnel ranges)
- Примечание:Disables the initial phongfresnelranges masking
- Баг:Не работает в Left 4 Dead 2. [todo tested in?]
Параметры затенения на примитивах(только в )(также в )
Shader(s): LightmappedGeneric, WorldVertexTransition
Первое значение контролирует уровень контраста между светлыми и тёмными областями в маске, а второе значение контролирует общую яркость.
$phongmaskcontrastbrightness2
предназначен для второго материалаWorldVertexTransition
.- Нужно сделать: Узнать диапазон обоих значений.
Shader(s): LightmappedGeneric, WorldVertexTransition
Первые три значения контролируют оттенок цвета, а четвёртое значение управляет яркостью. Четвёртое значение может быть больше 1, но в таком случае оно повлияет на яркость всей текстуры, а не только блика.
$phongamount2
предназначен для второго материалаWorldVertexTransition
.
Shader(s): LightmappedGeneric, WorldVertexTransition
Позволяет
$basetexture
и/или $basetexture2
окрасить цвет блика.Консольные команды
mat_phong
<boolean >- Отключает или включает затенение Фонга. Значение по умолчанию: 1.
Смотреть также
- Phong materials
- $envmap (карта окружения)
- $lightwarptexture
- $rimlight
Дополнительные ссылки
- $Phong on brushes*: The Hacky Way - A TF2maps.net guide on how to fake $Phong on brushes for games prior to CS:GO. Can also be used to fake phong on static props which are lit per-vertex, without falling back to lower-quality point lighting on the main prop
- SubstancePainter Source Engine Complex Phong Shader