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

$phong

From Valve Developer Community
< Ru
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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.

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

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