$phong
< Ru
Jump to navigation
Jump to search
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. Для полного объяснения смотреть материалы Фонга.
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
LightmappedGeneric
и WorldVertexTransition
доступен только в ![CS:GO engine branch](/w/images/thumb/8/85/Csgo_icon.png/16px-Csgo_icon.png)
![Strata Source](/w/images/thumb/2/2b/Strata-16px.png/16px-Strata-16px.png)
![Strata Source](/w/images/thumb/2/2b/Strata-16px.png/16px-Strata-16px.png)
![Icon-Bug.png](/w/images/thumb/b/b4/Icon-Bug.png/10px-Icon-Bug.png)
![Garry's Mod](/w/images/thumb/e/ea/Gmod_icon.png/16px-Gmod_icon.png)
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
LightmappedGeneric
также доступно и в ![Mapbase](/w/images/thumb/5/5b/Mapbase-16px.png/16px-Mapbase-16px.png)
Синтаксис
$phong <bool >
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
![Insurgency](/w/images/thumb/c/ca/Insurgency-2014-Icon.png/18px-Insurgency-2014-Icon.png)
- Нужно сделать: Другие игры, которые не требуют присутствия всех параметров фонга в материале (Скорее всего Portal 2 и дальше)
VertexLitGeneric
{
$phong 1
$bumpmap [текстура]
$phongexponent 5 // либо это
$phongexponenttexture [текстура] // либо это
$phongboost 1.0
$phongfresnelranges "[0 0.5 1]"
}
Параметры шейдера
Маски
![Warning.png](/w/images/thumb/c/cb/Warning.png/10px-Warning.png)
- Используя $selfillumfresnel без $normalmapalphaenvmapmask вынудит $envmap использовать альфа-канал $basetexture как маску.
- Используя $selfillumfresnel вместе с $normalmapalphaenvmapmask умножит $envmap на
0.0f
, тем самым отключив эффект! - Когда $selfillumfresnel не используется, то маска, используемая для $envmap будет альфа-каналом $basetexture до тех пор пока не будет использован $normalmapalphaenvmapmask.
- Если $normalmapalphaenvmapmask используется, то альфа-канал $bumpmap будет использоваться как маска Фонга. Используя
$basemapalphaphongmask
или$basemapluminancephongmask
перекроет этот параметр.
Для работы Фонга требуется маска. Альфа-канал карты нормалей работает как маска Фонга по умолчанию.
Shader(s): VertexLitGeneric
Использует альфа-канал $basetexture как маску Фонга, вместо альфа-канала
Предупреждение:Используя этот параметр вместе с $normalmapalphaenvmapmask перекроет маску используемую для $envmap, и сделает её содержимым альфа-канала $basetexture!
Предупреждение:В
Garry's Mod используя этот параметр вместе с $normalmapalphaenvmapmask и $envmap отображения в $envmap и
$bumpmap
.
![Warning.png](/w/images/thumb/c/cb/Warning.png/10px-Warning.png)
![Warning.png](/w/images/thumb/c/cb/Warning.png/10px-Warning.png)
![Garry's Mod](/w/images/thumb/e/ea/Gmod_icon.png/16px-Gmod_icon.png)
$phong
будут замаскированы как альфа-каналом $basemapalphaphongmask
, так и альфа-каналом $normalmapalphaenvmapmask.
Shader(s): VertexLitGeneric
Маскирует силу фонга основываясь на яркости
Баг:Basetexture Luminance заменит маску используемую для $envmap, если $normalmapalphaenvmapmask уже используется. [todo tested in ?]
Баг:Не работает в
Garry's Mod. [todo tested in ?]
$basetexture
.
![Icon-Bug.png](/w/images/thumb/b/b4/Icon-Bug.png/10px-Icon-Bug.png)
![Icon-Bug.png](/w/images/thumb/b/b4/Icon-Bug.png/10px-Icon-Bug.png)
![Garry's Mod](/w/images/thumb/e/ea/Gmod_icon.png/16px-Gmod_icon.png)
Общее значение экспоненты. Перекрывает маску экспоненты, если она присутствует.
$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. ![Tip.png](/w/images/thumb/4/45/Tip.png/9px-Tip.png)
"0.0"
. Однако, более разумным значением по умолчанию было бы "149.0"
Shader(s): VertexLitGeneric
Shader(s): VertexLitGeneric
Заставляет работать затенение фонга на материалах использующих его, даже на низких уровнях видеокарты, когда
mat_phong
отключён.
Shader(s): VertexLitGeneric, Infected
Diffuse exponent used for dynamic lights only.
Примечание:При использовании этого параметра с $halflambert сильно снизит его эффект.
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
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((только в ![Mapbase](/w/images/thumb/5/5b/Mapbase-16px.png/16px-Mapbase-16px.png)
Коэффициент яркости фонга. Чем выше значение, тем ярче блик. Полезен для таких поверхностей как металл и стекло.
Смотреть Диапазоны Фонга по Френелю. Значения по умолчанию:
"[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
![Note.png](/w/images/thumb/c/cc/Note.png/10px-Note.png)
![CS:GO engine branch](/w/images/thumb/8/85/Csgo_icon.png/16px-Csgo_icon.png)
$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 ?]
![](/w/images/thumb/b/b8/Brush_phong.jpg/200px-Brush_phong.jpg)
Фонг на примитиве в
Counter-Strike: Global Offensive с использованием tile/hr_t/inferno/tile_a. Заметьте полное отсутствие отражения в затемнённой области.
![Counter-Strike: Global Offensive](/w/images/thumb/8/85/Csgo_icon.png/16px-Csgo_icon.png)
Параметры затенения на примитивах(только в
)(также в
)
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