Эта статья документации для всего, что использует платформу Source. Нажмите для получения дополнительной информации.

$phong

From Valve Developer Community
< Ru
Jump to navigation Jump to search
English (en)Español (es)Русский (ru)中文 (zh)Translate (Translate)
link =
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 - это материальный(en) параметр шейдера(en), доступно для всех игр на движке Source Source начиная с Source 2006 Source 2006.

Фонг наделяет кожу, губы и головную повязку Аликс бликами.

It is also available on the LightmappedGeneric and WorldVertexTransition shaders in all games since Counter-Strike: Global Offensive Counter-Strike: Global Offensive(также в Garry's ModXengineMapbase). It provides Wikipedia icon diffuse reflections at low intensity and Wikipedia icon specular highlights at apex intensity, masked by a texture which control per-texel its intensity. Для полного объяснения смотреть материалы Фонга.

Note.pngПримечание:Затенение Фонга для LightmappedGeneric и WorldVertexTransition доступен только в CS:GO engine branchStrata Source. 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. ((во всех играх начиная с Strata Source) env_projectedtexture также влияет на примитивы с включённым фонгом)
Icon-Bug.pngБаг*:Garry's Mod Garry's Mod reads lighting direction for brush phong from env_sun; карты с нескольким количеством солнц могут иметь не совсем точные отражения фонга на примитивах.
Note.pngПримечание:Затенение Фонга для LightmappedGeneric также доступно и в Mapbase Mapbase, но в нём оно реализовано по другому.

Синтаксис

$phong <bool(en)>
Note.pngПримечание:Все параметры в примере ниже должны быть указаны в материале, иначе затенение Фонга не появится вовсе, исключением является Insurgency Insurgency.
Нужно сделать: Другие игры, которые не требуют присутствия всех параметров фонга в материале (Скорее всего Portal 2 и дальше)
VertexLitGeneric
{
	$phong 1

	$bumpmap				[текстура]
	$phongexponent			5			// либо это
	$phongexponenttexture	[текстура]	// либо это
	$phongboost				1.0
	$phongfresnelranges		"[0 0.5 1]"
}

Параметры шейдера

Маски

Warning.pngПредупреждение:Имеются некоторые нюансы касаемо $normalmapalphaenvmapmask и $selfillumfresnel, когда используется $phong!


Для работы Фонга требуется маска. Альфа-канал карты нормалей работает как маска Фонга по умолчанию.
$basemapalphaphongmask(en) <boolean(en)> (Во всех играх начиная с Source 2007)
Shader(s): VertexLitGeneric
Использует альфа-канал $basetexture как маску Фонга, вместо альфа-канала $bumpmap.
Warning.pngПредупреждение:Используя этот параметр вместе с $normalmapalphaenvmapmask перекроет маску используемую для $envmap, и сделает её содержимым альфа-канала $basetexture!
Warning.pngПредупреждение:В Garry's Mod Garry's Mod используя этот параметр вместе с $normalmapalphaenvmapmask и $envmap отображения в $envmap и $phong будут замаскированы как альфа-каналом $basemapalphaphongmask, так и альфа-каналом $normalmapalphaenvmapmask.
$basemapluminancephongmask(en) <boolean(en)> (Во всех играх начиная с Left 4 Dead)
Shader(s): VertexLitGeneric
Маскирует силу фонга основываясь на яркости $basetexture.
Icon-Bug.pngБаг:Basetexture Luminance заменит маску используемую для $envmap, если $normalmapalphaenvmapmask уже используется.  [todo tested in?]
Icon-Bug.pngБаг:Не работает в Garry's Mod Garry's Mod.  [todo tested in?]
Общее значение экспоненты. Перекрывает маску экспоненты, если она присутствует.
$phongexponent2 предназначен для второго материала WorldVertexTransition в CS:GO engine branch CS:GO engine branch.
Shader(s): VertexLitGeneric
По-тексельная карта экспоненты. В карте экспоненты хранятся:
  • Красный канал: Маска экспоненты (размер блика, значение варьируется от 0 до 255, 0 - большой блик, 255 - маленький.)
  • Зелёный канал: Маска оттенка альбедо (работает только если $phongalbedotint 1, значение варьируется от 0 до 255, 0 - нет оттенка, 255 - полный оттенок.)
  • Синий канал: Ничего.
  • Альфа-канал: Маска $rimlight (работает только если $rimmask 1.)
Note.pngПримечание:Затенения LightmappedGeneric и WorldVertexTransition не поддерживают $phongexponenttexture. Вместо этого используйте $phongexponent.
$phongexponentfactor(en) <float(en)> (только в Source 2013 MultiplayerTeam Fortress 2)
Shader(s): VertexLitGeneric
Multiply the exponent from the $phongexponenttexture by this amount.
Tip.pngСовет: По умолчанию значение этого параметра "0.0". Однако, более разумным значением по умолчанию было бы "149.0"
$invertphongmask(en) <boolean(en)> (Во всех играх начиная с Source 2007)
Shader(s): VertexLitGeneric
Инвертирует значения маски Фонга.
Icon-Bug.pngБаг:In Alien Swarms and Source 2013s Shadercode, using this parameter will invert the mask used for $envmap, not the one used for $phong!   [todo tested in?]
Подтвердить: Is this the case for all branches?
$forcephong(en) <boolean(en)> (Во всех играх начиная с Portal 2)
Shader(s): VertexLitGeneric
Заставляет работать затенение фонга на материалах использующих его, даже на низких уровнях видеокарты, когда mat_phong отключён.
$diffuseexp(en) <float(en)> (только в Серия игр Left 4 Dead)
Shader(s): VertexLitGeneric, Infected
Diffuse exponent used for dynamic lights only.
Note.pngПримечание:При использовании этого параметра с $halflambert сильно снизит его эффект.
$shinyblood(en) <integer(en)> (только в Серия игр Left 4 Dead)
Shader(s): VertexLitGeneric, Infected
Derive phong mask from areas that are more red than others. Only when variation is disabled.
$shinybloodexponent(en) <integer(en)> (только в Серия игр Left 4 Dead)
Shader(s): VertexLitGeneric, Infected
Экспонента для параметра выше.

Яркость

Shader(s): VertexLitGeneric, LightmappedGeneric((только в Mapbase))
Коэффициент яркости фонга. Чем выше значение, тем ярче блик. Полезен для таких поверхностей как металл и стекло.
Shader(s): VertexLitGeneric, LightmappedGeneric((только в Mapbase))
Смотреть Диапазоны Фонга по Френелю. Значения по умолчанию: "[0 0.5 1]".
Note.pngПримечание:Эти диапазоны френеля также влияют и на $envmap, если он и Фонг включены в материале.
Note.pngПримечание: drives the x component of a phongwarptexture if specified.
$phongdisablehalflambert(en) <boolean(en)> (Во всех играх начиная с Alien Swarm) (также в Garry's Mod,Mapbase)
Shader(s): VertexLitGeneric
Отключает принудительное half-lambertian затенение на материалах Фонга.
Note.pngПримечание:This parameter is effectively forced on in CS:GO engine branch CS:GO engine branch due to $halflambert being disabled.

Цвета

$phongalbedotint(en) <boolean(en)> (Во всех играх начиная с Source 2007)
Shader(s): VertexLitGeneric
Окрашивает блик цветом $basetexture. Количество окраски определяется зелёным каналом $phongexponenttexture. $phongexponenttexture должен быть указан, чтобы $phongalbedotint мог заработать.
Warning.pngПредупреждение:$phongalbedotint не может быть использован вместе с $phongtint. Последний параметр отключит эффект.
Note.pngПримечание:$phongalbedotint работает путём умножения $basetexture на отражение, при это не затемняя альбедо. В результате блик станет тусклее, поэтому учтите это в вашей маске фонга или с помощью $phongboost.
Note.pngПримечание:$phongalbedotint окрасит блики оригинальным цветом $basetexture, даже когда материал окрашен используя $color2 или rendercolor.
Пример, демонстрирующий как AlbedoTint отображается на модели.
$phongalbedoboost(en) <float(en)> (Во всех играх начиная с Counter-Strike: Global Offensive) (также в Garry's Mod)
Shader(s): VertexLitGeneric
Phong albedo overbrightening factor. Диапазон: 0-255.
Note.pngПримечание: Этот параметр умножит окрас применяемый к фонгу от $phongalbedotint.
Icon-Bug.pngБаг: Этот параметр не работает при использовании $detail.   [todo tested in?]
Охотник без и со своей $phongwarptexture.
$phongtint(en) <RGB(en) matrix(en)> (Во всех играх начиная с Source 2007)
Shader(s): VertexLitGeneric
Оттенок цвета отражения Фонга.
Warning.pngПредупреждение:Этот параметр перекроет $phongalbedotint, если используются оба.
Note.pngПримечание: Также окрашивает $rimlight
Разбор $phongwarptexture на составляющие: рассчитанные координаты, текстура и результат.
$phongwarptexture(en) <texture(en)> (Во всех играх начиная с Source 2007)
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)
Note.pngПримечание:Disables the initial phongfresnelranges masking
Icon-Bug.pngБаг:Не работает в Left 4 Dead 2 Left 4 Dead 2.  [todo tested in?]
Фонг на примитиве в Counter-Strike: Global Offensive Counter-Strike: Global Offensive с использованием tile/hr_t/inferno/tile_a. Заметьте полное отсутствие отражения в затемнённой области.

Параметры затенения на примитивах(только в CS:GO engine branch)(также в Garry's Mod)

Shader(s): LightmappedGeneric, WorldVertexTransition
Первое значение контролирует уровень контраста между светлыми и тёмными областями в маске, а второе значение контролирует общую яркость.
$phongmaskcontrastbrightness2 предназначен для второго материала WorldVertexTransition.
Нужно сделать: Узнать диапазон обоих значений.
Shader(s): LightmappedGeneric, WorldVertexTransition
Первые три значения контролируют оттенок цвета, а четвёртое значение управляет яркостью. Четвёртое значение может быть больше 1, но в таком случае оно повлияет на яркость всей текстуры, а не только блика.
$phongamount2 предназначен для второго материала WorldVertexTransition.
Shader(s): LightmappedGeneric, WorldVertexTransition
Позволяет $basetexture и/или $basetexture2 окрасить цвет блика.

Консольные команды

mat_phong <boolean(en)>
Отключает или включает затенение Фонга. Значение по умолчанию: 1.

Смотреть также

Дополнительные ссылки