Ru/$phong: Difference between revisions
< Ru
		
		
		
		Jump to navigation
		Jump to search
		| No edit summary | Churkinator (talk | contribs)  | ||
| (2 intermediate revisions by 2 users not shown) | |||
| Line 3: | Line 3: | ||
| {{this is a|shader parameter|name=$phong|since=Source 2006|shader=VertexLitGeneric}}   | {{this is a|shader parameter|name=$phong|since=Source 2006|shader=VertexLitGeneric}}   | ||
| [[File:Alyx phong closeup.jpg|thumb|200px|Фонг наделяет кожу, губы и головную повязку Аликс бликами.]] | [[File:Alyx phong closeup.jpg|thumb|200px|Фонг наделяет кожу, губы и головную повязку Аликс бликами.]] | ||
| Он также доступен в таких шейдерах как: {{code|[[LightmappedGeneric]]}} и {{code|[[WorldVertexTransition]]}} во всех играх начиная с {{csgo|4}}{{also|{{gmod}}{{xengine}}{{mapbase}}}}. С маской, которая по-тексельно управляет его яркостью, фонг, при низкой яркости, даёт {{w|diffuse reflection|рассеянные отражения|icon=hide}}, а при самой высокой яркости - {{w|specular highlight|icon=hide|зеркальные блики}}. Более полное объяснение вы можете прочитать здесь: {{L|Phong materials|Материалы Фонга}}. | |||
| ==Синтаксис== | ==Синтаксис== | ||
|   $phong < |   $phong <[[bool]]> | ||
| {{note|Все параметры в примере ниже должны быть указаны в материале, иначе затенение Фонга не появится вовсе, исключением является {{insurgency|4}}.}} | {{note|Все параметры в примере ниже должны быть указаны в материале, иначе затенение Фонга не появится вовсе, исключением является {{insurgency|4}}.}} | ||
| :{{todo| | :{{todo|Добавить другие игры, которые не требуют присутствия всех параметров фонга в файле материала (Скорее всего Portal 2 и дальше)}} | ||
| <syntaxhighlight  | <syntaxhighlight> | ||
| VertexLitGeneric | VertexLitGeneric | ||
| { | { | ||
| Line 32: | Line 29: | ||
| * Используя [[Glowing_Textures#.24selfillum|$selfillumfresnel]] '''без''' {{ent|$normalmapalphaenvmapmask}} вынудит {{ent|$envmap}} использовать альфа-канал {{ent|$basetexture}} как маску. | * Используя [[Glowing_Textures#.24selfillum|$selfillumfresnel]] '''без''' {{ent|$normalmapalphaenvmapmask}} вынудит {{ent|$envmap}} использовать альфа-канал {{ent|$basetexture}} как маску. | ||
| * Используя [[Glowing_Textures#.24selfillum|$selfillumfresnel]] '''вместе с''' {{ent|$normalmapalphaenvmapmask}} умножит {{ent|$envmap}} на <code>0.0f</code>, тем самым отключив эффект! | * Используя [[Glowing_Textures#.24selfillum|$selfillumfresnel]] '''вместе с''' {{ent|$normalmapalphaenvmapmask}} умножит {{ent|$envmap}} на <code>0.0f</code>, тем самым отключив эффект! | ||
| * Когда [[Glowing_Textures#.24selfillum|$selfillumfresnel]] '''не''' используется, то маска, используемая для {{ent|$envmap}} будет альфа-каналом {{ent|$basetexture}} '''до тех пор''' пока  | * Когда [[Glowing_Textures#.24selfillum|$selfillumfresnel]] '''не''' используется, то маска, используемая для {{ent|$envmap}} будет альфа-каналом {{ent|$basetexture}} '''до тех пор''', пока параметр {{ent|$normalmapalphaenvmapmask}} не будет использован. | ||
| * '''Если''' {{ent|$normalmapalphaenvmapmask}} используется, то альфа-канал {{ent|$bumpmap}} будет использоваться как маска Фонга. Используя <code>$basemapalphaphongmask</code> или <code>$basemapluminancephongmask</code> перекроет этот параметр. | * '''Если''' {{ent|$normalmapalphaenvmapmask}} уже используется, то альфа-канал {{ent|$bumpmap}} будет использоваться как маска Фонга. Используя <code>$basemapalphaphongmask</code> или <code>$basemapluminancephongmask</code> перекроет этот параметр. | ||
| <br> | <br> | ||
| {{ | {{MatParamDef|$bumpmap|texture|Для работы Фонга требуется маска. [[alpha channel|Альфа-канал]] [[$bumpmap|карты нормалей]] работает как маска Фонга по умолчанию.}} | ||
| {{ | {{MatParamDef|$basemapalphaphongmask|bool|Использует [[alpha channel|альфа-канал]] {{ent|$basetexture}} как маску Фонга, вместо [[alpha channel|альфа-канала]] <code>$bumpmap</code>. | ||
| {{warning|Используя этот параметр вместе с {{ent|$normalmapalphaenvmapmask}} перекроет маску используемую для {{ent|$envmap}}, и сделает её содержимым альфа-канала {{ent|$basetexture}}!}} | {{warning|Используя этот параметр вместе с {{ent|$normalmapalphaenvmapmask}} перекроет маску используемую для {{ent|$envmap}}, и сделает её содержимым альфа-канала {{ent|$basetexture}}!}} | ||
| {{warning|В {{gmod|4}} используя этот параметр вместе с {{ent|$normalmapalphaenvmapmask}} и {{ent|$envmap}} отображения в {{ent|$envmap}} и '''<code>$phong</code>''' будут замаскированы как альфа-каналом '''<code>$basemapalphaphongmask</code>''', так и альфа-каналом {{ent|$normalmapalphaenvmapmask}}.}} |since={{src07}}|shaders=VertexLitGeneric}} | {{warning|В {{gmod|4}} используя этот параметр вместе с {{ent|$normalmapalphaenvmapmask}} и {{ent|$envmap}} отображения в {{ent|$envmap}} и '''<code>$phong</code>''' будут замаскированы как альфа-каналом '''<code>$basemapalphaphongmask</code>''', так и альфа-каналом {{ent|$normalmapalphaenvmapmask}}.}} |since={{src07}}|shaders=VertexLitGeneric}} | ||
| {{ | {{MatParamDef|$basemapluminancephongmask|bool|Маскирует силу фонга основываясь на яркости <code>$basetexture</code>. | ||
| {{bug|Basetexture Luminance заменит маску используемую для {{ent|$envmap}}, '''если''' {{ent|$normalmapalphaenvmapmask}} уже используется.}} | {{bug|Basetexture Luminance заменит маску используемую для {{ent|$envmap}}, '''если''' {{ent|$normalmapalphaenvmapmask}} уже используется.}} | ||
| {{bug|Не работает в {{gmod|4}}.}} | {{bug|Не работает в {{gmod|4}}.}} | ||
| |not={{gmod}}|since={{l4d}}|shaders=VertexLitGeneric}} | |not={{gmod}}|since={{l4d}}|shaders=VertexLitGeneric}} | ||
| {{ | {{MatParamDef|$phongexponent|and=$phongexponent2|int|Общее значение [[Phong materials#Phong mask and exponent texture|экспоненты]]. Перекрывает маску экспоненты, если она присутствует. | ||
| : <code>$phongexponent2</code> предназначен для второго материала <code>WorldVertexTransition</code> в {{csgobranch|4}}.}} | : <code>$phongexponent2</code> предназначен для второго материала <code>WorldVertexTransition</code> в {{csgobranch|4}}.}} | ||
| {{ | {{MatParamDef|$phongexponenttexture|texture|По-тексельная карта экспоненты. В карте экспоненты хранятся: | ||
| :* '''Красный канал:''' Маска экспоненты (размер блика, значение варьируется от 0 до 255, 0 - большой блик, 255 - маленький.) | :* '''Красный канал:''' Маска экспоненты (размер блика, значение варьируется от 0 до 255, 0 - большой блик, 255 - маленький.) | ||
| :* '''Зелёный канал:''' Маска оттенка альбедо (работает только если <code>$phongalbedotint 1</code>, значение варьируется от 0 до 255, 0 - нет оттенка, 255 - полный оттенок.) | :* '''Зелёный канал:''' Маска оттенка альбедо (работает только если <code>$phongalbedotint 1</code>, значение варьируется от 0 до 255, 0 - нет оттенка, 255 - полный оттенок.) | ||
| Line 51: | Line 48: | ||
| :* '''Альфа-канал:''' Маска {{ent|$rimlight}} (работает только если '''<code>$rimmask 1</code>'''.) | :* '''Альфа-канал:''' Маска {{ent|$rimlight}} (работает только если '''<code>$rimmask 1</code>'''.) | ||
| :{{Note|Затенения <code>LightmappedGeneric</code> и <code>WorldVertexTransition</code> не поддерживают <code>$phongexponenttexture</code>. Вместо этого используйте <code>$phongexponent</code>.}}|shaders=VertexLitGeneric}} | :{{Note|Затенения <code>LightmappedGeneric</code> и <code>WorldVertexTransition</code> не поддерживают <code>$phongexponenttexture</code>. Вместо этого используйте <code>$phongexponent</code>.}}|shaders=VertexLitGeneric}} | ||
| {{ | {{MatParamDef|$phongexponentfactor|float|Multiply the exponent from the <code>$phongexponenttexture</code> by this amount. {{tip| По умолчанию значение этого параметра <code>"0.0"</code>. Однако, более разумным значением по умолчанию было бы <code>"149.0"</code>}}|only={{src13mp}}{{tf2}}|shaders=VertexLitGeneric}} | ||
| {{ | {{MatParamDef|$invertphongmask|bool|Инвертирует значения маски Фонга. | ||
| {{bug|In {{as}}s and {{src13}}s Shadercode, using this parameter will invert the mask used for {{ent|$envmap}}, not the one used for <code>$phong</code>! }} | {{bug|In {{as}}s and {{src13}}s Shadercode, using this parameter will invert the mask used for {{ent|$envmap}}, not the one used for <code>$phong</code>! }} | ||
| {{confirm| Is this the case for all branches?}} | {{confirm| Is this the case for all branches?}} | ||
| |since={{src07}}|shaders=VertexLitGeneric}} | |since={{src07}}|shaders=VertexLitGeneric}} | ||
| {{ | {{MatParamDef|$forcephong|bool|Заставляет работать затенение фонга на материалах использующих его, даже на низких уровнях видеокарты, когда <code>mat_phong</code> отключён.|since={{portal2}}|shaders=VertexLitGeneric}} | ||
| {{ | {{MatParamDef|$diffuseexp|float|Diffuse exponent used for dynamic lights only. | ||
| {{note|При использовании этого параметра с {{ent|$halflambert}} сильно снизит его эффект.}}|only={{L4ds}}|shaders=VertexLitGeneric, Infected}} | {{note|При использовании этого параметра с {{ent|$halflambert}} сильно снизит его эффект.}}|only={{L4ds}}|shaders=VertexLitGeneric, Infected}} | ||
| {{ | {{MatParamDef|$shinyblood|int|Derive phong mask from areas that are more red than others. Only when variation is disabled.|only={{L4ds}}|shaders=VertexLitGeneric, Infected}} | ||
| {{ | {{MatParamDef|$shinybloodexponent|int|Экспонента для параметра выше.|only={{L4ds}}|shaders=VertexLitGeneric, Infected}} | ||
| === Яркость === | === Яркость === | ||
| {{ | {{MatParamDef|$phongboost|float|Коэффициент яркости фонга. Чем выше значение, тем ярче блик. Полезен для таких поверхностей как металл и стекло.{{tip|A phong boost of zero is visually identical to no phong, and can be used to work around certain shader parameter combinations that require phong (ex [[$lightwarptexture]]).}}|shaders=VertexLitGeneric, LightmappedGeneric({{mapbase|only}})}} | ||
| {{ | {{MatParamDef|$phongfresnelranges|matrix|См.[[Phong materials#Phong Fresnel ranges|Диапазоны Фонга по Френелю]]. Значения по умолчанию: <code>"[0 0.5 1]"</code>. | ||
| :{{note|Эти диапазоны френеля также влияют и на <code>$envmap</code>, если он и Фонг включены в материале.}} | :{{note|Эти диапазоны френеля также влияют и на <code>$envmap</code>, если он и Фонг включены в материале.}} | ||
| :{{note| drives the x component of a phongwarptexture if specified.}}|shaders=VertexLitGeneric, LightmappedGeneric({{mapbase|only}})}} | :{{note| drives the x component of a phongwarptexture if specified.}}|shaders=VertexLitGeneric, LightmappedGeneric({{mapbase|only}})}} | ||
| {{ | {{MatParamDef|$phongdisablehalflambert|bool|Отключает принудительное [[$halflambert|half-lambertian]] затенение на материалах Фонга. {{note|Фактически, этот параметр принудительно включён в {{csgobranch|4}}, из-за того что параметр <code>$halflambert</code> был полностью отключён.}}<!-- | ||
| -->{{tip|В играх, где этого параметра нет, можно сымитировать этот эффект используя параметр {{cmd|$lightwarptexture}} вместе с [[:File:Phongdisablehalflambert_warp.png|этой]] текстурой.}}|since={{as}}|also={{gmod}},{{Mapbase}}|shaders=VertexLitGeneric}} | |||
| === Цвета === | === Цвета === | ||
| {{ | {{MatParamDef|$phongalbedotint|bool|Окрашивает блик цветом <code>$basetexture</code>. Количество окраски определяется зелёным каналом <code>$phongexponenttexture</code>. <code>$phongexponenttexture</code> должен быть указан, чтобы <code>$phongalbedotint</code> мог заработать. | ||
| : {{Warning|<code>$phongalbedotint</code> не может быть использован вместе с <code>$phongtint</code>. Последний параметр отключит эффект.}} | : {{Warning|<code>$phongalbedotint</code> не может быть использован вместе с <code>$phongtint</code>. Последний параметр отключит эффект.}} | ||
| : {{Note|<code>$phongalbedotint</code> работает путём умножения <code>$basetexture</code> на отражение, при это не затемняя альбедо. В результате блик станет тусклее, поэтому учтите это в вашей маске фонга или с помощью <code>$phongboost</code>.}} | : {{Note|<code>$phongalbedotint</code> работает путём умножения <code>$basetexture</code> на отражение, при это не затемняя альбедо. В результате блик станет тусклее, поэтому учтите это в вашей маске фонга или с помощью <code>$phongboost</code>.}} | ||
| : {{Note|<code>$phongalbedotint</code> окрасит блики оригинальным цветом <code>$basetexture</code>, даже когда материал окрашен используя <code>$color2</code> или <code>rendercolor.</code>}}|since={{src07}}|shaders=VertexLitGeneric}} | : {{Note|<code>$phongalbedotint</code> окрасит блики оригинальным цветом <code>$basetexture</code>, даже когда материал окрашен используя <code>$color2</code> или <code>rendercolor.</code>}}|since={{src07}}|shaders=VertexLitGeneric}} | ||
| [[File:Albedotint example.jpg|thumb|200px|Пример, демонстрирующий как AlbedoTint отображается на модели.]] | [[File:Albedotint example.jpg|thumb|200px|Пример, демонстрирующий как AlbedoTint отображается на модели.]] | ||
| {{ | {{MatParamDef|$phongalbedoboost|float|Phong albedo overbrightening factor. Диапазон: 0-255. | ||
| : {{note| Этот параметр умножит окрас применяемый к фонгу от $phongalbedotint.}} | : {{note| Этот параметр умножит окрас применяемый к фонгу от $phongalbedotint.}} | ||
| : {{bug| Этот параметр не работает при использовании [[$detail]]. }}|since={{csgo}}|also={{gmod}}|shaders=VertexLitGeneric}} | : {{bug| Этот параметр не работает при использовании [[$detail]]. }}|since={{csgo}}|also={{gmod}}|shaders=VertexLitGeneric}} | ||
| [[File:Phongwarp example.png|thumb|200px|Охотник без и со своей <code>$phongwarptexture</code>.]] | [[File:Phongwarp example.png|thumb|200px|Охотник без и со своей <code>$phongwarptexture</code>.]] | ||
| {{ | {{MatParamDef|$phongtint|RGB matrix|Оттенок цвета отражения Фонга. | ||
| : {{Warning|Этот параметр перекроет <code>$phongalbedotint</code>, если используются оба.}} | : {{Warning|Этот параметр перекроет <code>$phongalbedotint</code>, если используются оба.}} | ||
| : {{note| Также окрашивает {{ent|$rimlight}}}}|since={{src07}}|shaders=VertexLitGeneric}} | : {{note| Также окрашивает {{ent|$rimlight}}}}|since={{src07}}|shaders=VertexLitGeneric}} | ||
| [[File:Phongwarp_coordinate_guide.png|thumb|200px|Разбор $phongwarptexture на составляющие: рассчитанные координаты, текстура и результат.]] | [[File:Phongwarp_coordinate_guide.png|thumb|200px|Разбор $phongwarptexture на составляющие: рассчитанные координаты, текстура и результат.]] | ||
| {{ | {{MatParamDef|$phongwarptexture|texture|Используется для создания эффекта переливчатости, как показано на [[npc_hunter|Охотниках]] из Второго Эпизода. | ||
| : The highlight is multiplied with a texture. The coordinates of the sampled pixel are as follows: | : 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) | :x: 1 - (distance to the center of the highlight) | ||
| Line 92: | Line 90: | ||
| ===Параметры затенения на примитивах{{csgobranch|only}}{{also|{{gmod}}}} === | ===Параметры затенения на примитивах{{csgobranch|only}}{{also|{{gmod}}}} === | ||
| {{ | {{MatParamDef|$phongmaskcontrastbrightness|and=$phongmaskcontrastbrightness2|vector2|Первое значение контролирует уровень контраста между светлыми и тёмными областями в маске, а второе значение контролирует общую яркость. | ||
| : <code>$phongmaskcontrastbrightness2</code> предназначен для второго материала <code>WorldVertexTransition</code>. | : <code>$phongmaskcontrastbrightness2</code> предназначен для второго материала <code>WorldVertexTransition</code>. | ||
| : {{todo|Узнать диапазон обоих значений.}}|shaders=LightmappedGeneric, WorldVertexTransition}} | : {{todo|Узнать диапазон обоих значений.}}|shaders=LightmappedGeneric, WorldVertexTransition}} | ||
| {{ | {{MatParamDef|$phongamount|and=$phongamount2|vector4|Первые три значения контролируют оттенок цвета, а четвёртое значение управляет яркостью. Четвёртое значение может быть больше 1, но в таком случае оно повлияет на яркость всей текстуры, а не только блика. | ||
| : <code>$phongamount2</code> предназначен для второго материала <code>WorldVertexTransition</code>.|shaders=LightmappedGeneric, WorldVertexTransition}} | : <code>$phongamount2</code> предназначен для второго материала <code>WorldVertexTransition</code>.|shaders=LightmappedGeneric, WorldVertexTransition}} | ||
| {{ | {{MatParamDef|$phongbasetint|and=$phongbasetint2|float|Позволяет <code>$basetexture</code> и/или <code>$basetexture2</code> окрасить цвет блика.|shaders=LightmappedGeneric, WorldVertexTransition}} | ||
| == Консольные команды == | == Консольные команды == | ||
| {{varcom|start}} | {{varcom|start}} | ||
| {{varcom|mat_phong||bool|Отключает или включает затенение Фонга. Значение по умолчанию: 1.}} | {{varcom|mat_phong||bool|Отключает или включает затенение Фонга. Значение по умолчанию: 1. {{bug|Не работает в {{csgo|4}}.|tested={{p2ce}}}}}} | ||
| {{varcom|end}} | {{varcom|end}} | ||
| == Примечания == | |||
| {{Note|Затенение Фонга для <code>LightmappedGeneric</code> и <code>WorldVertexTransition</code> доступен только в {{csgobranch}}{{strata}}. It requires the material to be lit by the sunlight from a {{ent|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|since}} {{ent|env_projectedtexture}} также влияет на примитивы с включённым фонгом) | |||
| {{bug|{{gmod|4}} просчитывает направление света для примитивов с фонгом от {{ent|env_sun}}; карты с нескольким количеством солнц могут иметь не совсем точные отражения фонга на примитивах.}}}} | |||
| {{Note|Затенение Фонга для <code>LightmappedGeneric</code> также доступно и в {{mapbase|4}}, но в нём оно реализовано по другому.}} | |||
| {{important|Во всех играх на [[Source Engine|движке Source]], начиная с {{src07|4}} (вышедшие до {{csgo}}), включив это затенение вместе с ним автоматически включится [[$halflambert]] (включая [[$halflambert_gbuffer_off|gbuffer's halflambert]] в {{bms|1}}), если только {{cmd|$phongdisablehalflambert}}{{since|{{as}}}} не будет использован. Этот эффект не физически точен, поэтому, в большинстве случаев, его стоит отключить, если имеется такая возможность.}} | |||
| {{bug|tested={{bms}},{{csgo}}|Векторы отражений Фонга сломаны на {{L|prop_static|статических пропах}} с вершинным освещением.}} | |||
| {{tip|Use [[$specmap_mode|new specular]] shader in {{bms|4}} as an alternative of phong on brushes.}} | |||
| == Смотреть также == | == Смотреть также == | ||
| *  | * {{L|Phong materials|Материалы Фонга}} | ||
| * {{L|$envmap}} (карта окружения) | * {{L|$envmap}} (карта окружения) | ||
| * {{L|$lightwarptexture}} | * {{L|$lightwarptexture}} | ||
| Line 111: | Line 117: | ||
| == Дополнительные ссылки == | == Дополнительные ссылки == | ||
| * {{YouTube|tLCUE25KEmM|page=watch|A comprehensive YouTube video on how phong materials work in Source}} | |||
| * [https://tf2maps.net/threads/phong-on-brushes-the-hacky-way.26765 $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 [[prop_static|static props]] which are lit per-vertex, without falling back to lower-quality point lighting on the main prop | * [https://tf2maps.net/threads/phong-on-brushes-the-hacky-way.26765 $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 [[prop_static|static props]] which are lit per-vertex, without falling back to lower-quality point lighting on the main prop | ||
| *[https://share.substance3d.com/libraries/6595 SubstancePainter Source Engine Complex Phong Shader] | *[https://share.substance3d.com/libraries/6595 SubstancePainter Source Engine Complex Phong Shader] | ||
| [[Category:Shader parameters|p]][[Category:VMT Lighting]] | [[Category:Shader parameters|p]][[Category:VMT Lighting]] | ||
| [[Category:Material System]] | [[Category:Material System]] | ||
Latest revision as of 07:44, 22 September 2025

This translated page needs to be updated.
You can help by updating the translation.
Also, please make sure the article complies with the alternate languages guide.
You can help by updating the translation.
Also, please make sure the article complies with the alternate languages guide.
$phong  - это   материальный параметр шейдера, доступно для всех игр на движке  Source начиная с
 Source начиная с  Source 2006.
 Source 2006. 
Он также доступен в таких шейдерах как: LightmappedGeneric и WorldVertexTransition во всех играх начиная с  Counter-Strike: Global Offensive(также в
 Counter-Strike: Global Offensive(также в 

 ). С маской, которая по-тексельно управляет его яркостью, фонг, при низкой яркости, даёт
). С маской, которая по-тексельно управляет его яркостью, фонг, при низкой яркости, даёт  рассеянные отражения, а при самой высокой яркости -
 рассеянные отражения, а при самой высокой яркости -  зеркальные блики. Более полное объяснение вы можете прочитать здесь: Материалы Фонга.
 зеркальные блики. Более полное объяснение вы можете прочитать здесь: Материалы Фонга.
Синтаксис
$phong <bool>
 Примечание:Все параметры в примере ниже должны быть указаны в материале, иначе затенение Фонга не появится вовсе, исключением является
Примечание:Все параметры в примере ниже должны быть указаны в материале, иначе затенение Фонга не появится вовсе, исключением является  Insurgency.
 Insurgency.- Нужно сделать: Добавить другие игры, которые не требуют присутствия всех параметров фонга в файле материала (Скорее всего Portal 2 и дальше)
VertexLitGeneric
{
	$phong 1
	$bumpmap				[текстура]
	$phongexponent			5			// либо это
	$phongexponenttexture	[текстура]	// либо это
	$phongboost				1.0
	$phongfresnelranges		"[0 0.5 1]"
}Параметры шейдера
Маски
 Предупреждение:Имеются некоторые нюансы касаемо $normalmapalphaenvmapmask и $selfillumfresnel, когда используется $phong!
Предупреждение:Имеются некоторые нюансы касаемо $normalmapalphaenvmapmask и $selfillumfresnel, когда используется $phong!- Используя $selfillumfresnel без $normalmapalphaenvmapmask вынудит $envmap использовать альфа-канал $basetexture как маску.
- Используя $selfillumfresnel вместе с $normalmapalphaenvmapmask умножит $envmap на 0.0f, тем самым отключив эффект!
- Когда $selfillumfresnel не используется, то маска, используемая для $envmap будет альфа-каналом $basetexture до тех пор, пока параметр $normalmapalphaenvmapmask не будет использован.
- Если $normalmapalphaenvmapmask уже используется, то альфа-канал $bumpmap будет использоваться как маска Фонга. Используя $basemapalphaphongmaskили$basemapluminancephongmaskперекроет этот параметр.
Для работы Фонга требуется маска. Альфа-канал карты нормалей работает как маска Фонга по умолчанию.
	 Shader(s): VertexLitGeneric
Использует альфа-канал $basetexture как маску Фонга, вместо альфа-канала  Предупреждение:Используя этот параметр вместе с $normalmapalphaenvmapmask перекроет маску используемую для $envmap, и сделает её содержимым альфа-канала $basetexture!
Предупреждение:Используя этот параметр вместе с $normalmapalphaenvmapmask перекроет маску используемую для $envmap, и сделает её содержимым альфа-канала $basetexture!
 Предупреждение:В
Предупреждение:В  Garry's Mod используя этот параметр вместе с $normalmapalphaenvmapmask и $envmap отображения в $envmap и
 Garry's Mod используя этот параметр вместе с $normalmapalphaenvmapmask и $envmap отображения в $envmap и 
$bumpmap.
 Предупреждение:Используя этот параметр вместе с $normalmapalphaenvmapmask перекроет маску используемую для $envmap, и сделает её содержимым альфа-канала $basetexture!
Предупреждение:Используя этот параметр вместе с $normalmapalphaenvmapmask перекроет маску используемую для $envmap, и сделает её содержимым альфа-канала $basetexture! Предупреждение:В
Предупреждение:В  Garry's Mod используя этот параметр вместе с $normalmapalphaenvmapmask и $envmap отображения в $envmap и
 Garry's Mod используя этот параметр вместе с $normalmapalphaenvmapmask и $envmap отображения в $envmap и $phong будут замаскированы как альфа-каналом $basemapalphaphongmask, так и альфа-каналом $normalmapalphaenvmapmask.
	 Shader(s): VertexLitGeneric
Маскирует силу фонга основываясь на яркости  Баг:Basetexture Luminance заменит маску используемую для $envmap, если $normalmapalphaenvmapmask уже используется.  [нужно проверить в ?]
Баг:Basetexture Luminance заменит маску используемую для $envmap, если $normalmapalphaenvmapmask уже используется.  [нужно проверить в ?]
 Баг:Не работает в
Баг:Не работает в  Garry's Mod.  [нужно проверить в ?]
 Garry's Mod.  [нужно проверить в ?]
$basetexture.
 Баг:Basetexture Luminance заменит маску используемую для $envmap, если $normalmapalphaenvmapmask уже используется.  [нужно проверить в ?]
Баг:Basetexture Luminance заменит маску используемую для $envmap, если $normalmapalphaenvmapmask уже используется.  [нужно проверить в ?] Баг:Не работает в
Баг:Не работает в  Garry's Mod.  [нужно проверить в ?]
 Garry's Mod.  [нужно проверить в ?]Общее значение экспоненты. Перекрывает маску экспоненты, если она присутствует.
- $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.)
 
 Примечание:Затенения Примечание:Затенения- 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 сильно снизит его эффект.
Примечание:При использовании этого параметра с $halflambert сильно снизит его эффект.
 Примечание:При использовании этого параметра с $halflambert сильно снизит его эффект.
Примечание:При использовании этого параметра с $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
Экспонента для параметра выше.
Яркость
Коэффициент яркости фонга. Чем выше значение, тем ярче блик. Полезен для таких поверхностей как металл и стекло. Совет:A phong boost of zero is visually identical to no phong, and can be used to work around certain shader parameter combinations that require phong (ex $lightwarptexture).
Совет:A phong boost of zero is visually identical to no phong, and can be used to work around certain shader parameter combinations that require phong (ex $lightwarptexture).
 Совет:A phong boost of zero is visually identical to no phong, and can be used to work around certain shader parameter combinations that require phong (ex $lightwarptexture).
Совет:A phong boost of zero is visually identical to no phong, and can be used to work around certain shader parameter combinations that require phong (ex $lightwarptexture).См.Диапазоны Фонга по Френелю. Значения по умолчанию: 
"[0 0.5 1]".
 Примечание:Эти диапазоны френеля также влияют и на Примечание:Эти диапазоны френеля также влияют и на- $envmap, если он и Фонг включены в материале.
 Примечание: drives the x component of a phongwarptexture if specified. Примечание: drives the x component of a phongwarptexture if specified.
	 Shader(s): VertexLitGeneric
Отключает принудительное half-lambertian затенение на материалах Фонга.  Примечание:Фактически, этот параметр принудительно включён в
Примечание:Фактически, этот параметр принудительно включён в  CS:GO engine branch, из-за того что параметр
 CS:GO engine branch, из-за того что параметр  Совет:В играх, где этого параметра нет, можно сымитировать этот эффект используя параметр
Совет:В играх, где этого параметра нет, можно сымитировать этот эффект используя параметр 
 Примечание:Фактически, этот параметр принудительно включён в
Примечание:Фактически, этот параметр принудительно включён в  CS:GO engine branch, из-за того что параметр
 CS:GO engine branch, из-за того что параметр $halflambert был полностью отключён. Совет:В играх, где этого параметра нет, можно сымитировать этот эффект используя параметр
Совет:В играх, где этого параметра нет, можно сымитировать этот эффект используя параметр $lightwarptexture вместе с этой текстурой.Цвета
	 Shader(s): VertexLitGeneric
Окрашивает блик цветом 
$basetexture. Количество окраски определяется зелёным каналом $phongexponenttexture. $phongexponenttexture должен быть указан, чтобы $phongalbedotint мог заработать.
 Предупреждение: Предупреждение:- $phongalbedotintне может быть использован вместе с- $phongtint. Последний параметр отключит эффект.
 Примечание: Примечание:- $phongalbedotintработает путём умножения- $basetextureна отражение, при это не затемняя альбедо. В результате блик станет тусклее, поэтому учтите это в вашей маске фонга или с помощью- $phongboost.
 Примечание: Примечание:- $phongalbedotintокрасит блики оригинальным цветом- $basetexture, даже когда материал окрашен используя- $color2или- rendercolor.
	 Shader(s): VertexLitGeneric
	 Shader(s): VertexLitGeneric
Оттенок цвета отражения Фонга.
 Предупреждение:Этот параметр перекроет Предупреждение:Этот параметр перекроет- $phongalbedotint, если используются оба.
 Примечание: Также окрашивает $rimlight Примечание: Также окрашивает $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 Примечание:Disables the initial phongfresnelranges masking
 Баг:Не работает в Баг:Не работает в Left 4 Dead 2.  [нужно проверить в ?] Left 4 Dead 2.  [нужно проверить в ?]
 
  Фонг на примитиве в  Counter-Strike: Global Offensive с использованием tile/hr_t/inferno/tile_a. Заметьте полное отсутствие отражения в затемнённой области.
 Counter-Strike: Global Offensive с использованием tile/hr_t/inferno/tile_a. Заметьте полное отсутствие отражения в затемнённой области.
 Counter-Strike: Global Offensive с использованием tile/hr_t/inferno/tile_a. Заметьте полное отсутствие отражения в затемнённой области.
 Counter-Strike: Global Offensive с использованием tile/hr_t/inferno/tile_a. Заметьте полное отсутствие отражения в затемнённой области.Параметры затенения на примитивах(только в  )(также в
)(также в  )
)
	 Shader(s): LightmappedGeneric, WorldVertexTransition
Первое значение контролирует уровень контраста между светлыми и тёмными областями в маске, а второе значение контролирует общую яркость.
- $phongmaskcontrastbrightness2предназначен для второго материала- WorldVertexTransition.
- Нужно сделать: Узнать диапазон обоих значений.
	 Shader(s): LightmappedGeneric, WorldVertexTransition
Первые три значения контролируют оттенок цвета, а четвёртое значение управляет яркостью. Четвёртое значение может быть больше 1, но в таком случае оно повлияет на яркость всей текстуры, а не только блика.
- $phongamount2предназначен для второго материала- WorldVertexTransition.
	 Shader(s): LightmappedGeneric, WorldVertexTransition
Позволяет 
$basetexture и/или $basetexture2 окрасить цвет блика.Консольные команды
| Cvar/Command | Parameters or default value | Descriptor | Effect | 
|---|---|---|---|
| mat_phong | bool | Отключает или включает затенение Фонга. Значение по умолчанию: 1.  Баг:Не работает в  Counter-Strike: Global Offensive.  (подтверждено в:  ) | 
Примечания
 Примечание:Затенение Фонга для
Примечание:Затенение Фонга для 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. ((Во всех играх начиная с
. 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 также влияет на примитивы с включённым фонгом)
) env_projectedtexture также влияет на примитивы с включённым фонгом)
 Баг:
Баг: Garry's Mod просчитывает направление света для примитивов с фонгом от env_sun; карты с нескольким количеством солнц могут иметь не совсем точные отражения фонга на примитивах.  [нужно проверить в ?]
 Garry's Mod просчитывает направление света для примитивов с фонгом от env_sun; карты с нескольким количеством солнц могут иметь не совсем точные отражения фонга на примитивах.  [нужно проверить в ?] Примечание:Затенение Фонга для
Примечание:Затенение Фонга для LightmappedGeneric также доступно и в  Mapbase, но в нём оно реализовано по другому.
 Mapbase, но в нём оно реализовано по другому. Важно:Во всех играх на движке Source, начиная с
Важно:Во всех играх на движке Source, начиная с  Source 2007 (вышедшие до
 Source 2007 (вышедшие до  ), включив это затенение вместе с ним автоматически включится $halflambert (включая gbuffer's halflambert в Black Mesa), если только
), включив это затенение вместе с ним автоматически включится $halflambert (включая gbuffer's halflambert в Black Mesa), если только $phongdisablehalflambert(Во всех играх начиная с  ) не будет использован. Этот эффект не физически точен, поэтому, в большинстве случаев, его стоит отключить, если имеется такая возможность.
) не будет использован. Этот эффект не физически точен, поэтому, в большинстве случаев, его стоит отключить, если имеется такая возможность. Баг:Векторы отражений Фонга сломаны на статических пропах с вершинным освещением.  (подтверждено в:
Баг:Векторы отражений Фонга сломаны на статических пропах с вершинным освещением.  (подтверждено в:  ,
, )
) Совет:Use new specular shader in
Совет:Use new specular shader in  Black Mesa as an alternative of phong on brushes.
 Black Mesa as an alternative of phong on brushes.Смотреть также
- Материалы Фонга
- $envmap (карта окружения)
- $lightwarptexture
- $rimlight
Дополнительные ссылки
 A comprehensive YouTube video on how phong materials work in Source A comprehensive YouTube video on how phong materials work in Source
- $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
































 Подтвердить:
 Подтвердить:


