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

Ru/$envmapmask: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
m (Nesciuse moved page $envmapmask/ru to Ru/$envmapmask over redirect: Language prefixes)
m (-Using L template for links)
Line 18: Line 18:
  $envmapmask <текстура>
  $envmapmask <текстура>


  [[VertexLitGeneric]]
  {{L|VertexLitGeneric}}
  {
  {
  [[$envmap]] env_cubemap
  {{L|$envmap}} env_cubemap
  '''$envmapmask "props/tvscreen_test"'''
  '''$envmapmask "props/tvscreen_test"'''
  }
  }


==Дополнительные параметры==
==Дополнительные параметры==
[[File:Scanner mask.jpg|thumb|250px|Маска блика [[npc_cscanner]]'а.]]
[[File:Scanner mask.jpg|thumb|250px|Маска блика {{L|npc_cscanner}}'а.]]


{{MatParam|$envmapmasktransform|matrix|
{{MatParam|$envmapmasktransform|matrix|
Line 38: Line 38:


==Альтернативные методы==
==Альтернативные методы==
Вместо создания новой полноценной текстуры для маски бликов, вы можете встроить её в [[alpha channel|альфа-канал]] {{ent|$basetexture}} или {{code|$bumpmap}}. Материалы моделей с {{code|$bumpmap}} '''обязаны''' иметь маску бликов в альфа-канале. К сожалению, это ''не'' уменьшит использование памяти.
Вместо создания новой полноценной текстуры для маски бликов, вы можете встроить её в {{L|alpha channel|альфа-канал}} {{ent|$basetexture}} или {{code|$bumpmap}}. Материалы моделей с {{code|$bumpmap}} '''обязаны''' иметь маску бликов в альфа-канале. К сожалению, это ''не'' уменьшит использование памяти.


Если вы используете эти команды, то трансформации и другие похожие параметры, применённые к {{code|$basetexture / $bumpmap}}, также будут применяться к маске бликов.
Если вы используете эти команды, то трансформации и другие похожие параметры, применённые к {{code|$basetexture / $bumpmap}}, также будут применяться к маске бликов.
Line 46: Line 46:
* Маска бликов, встроенная в альфа-канал {{code|$basetexture}} работает наоборот. Прозрачные области являются отражающими, а непрозрачные области являются матовыми. Всё из-за того, что, скажем, альфа маска текстуры окна будет чёрной, по большей части, чтобы сделать её прозрачной, но эта же чёрная часть маски также будет наиболее отражающей частью. Вместо дублирования текстуры, чтобы просто инвертировать альфа маску, вы можете использовать этот параметр материала.
* Маска бликов, встроенная в альфа-канал {{code|$basetexture}} работает наоборот. Прозрачные области являются отражающими, а непрозрачные области являются матовыми. Всё из-за того, что, скажем, альфа маска текстуры окна будет чёрной, по большей части, чтобы сделать её прозрачной, но эта же чёрная часть маски также будет наиболее отражающей частью. Вместо дублирования текстуры, чтобы просто инвертировать альфа маску, вы можете использовать этот параметр материала.
* Альфа-канал '''''не''''' инвертирован в {{src07|2}} ''и'' {{csgo|2}} для моделей, но альфа-канал '''''инвертирован''''' для объёмов!
* Альфа-канал '''''не''''' инвертирован в {{src07|2}} ''и'' {{csgo|2}} для моделей, но альфа-канал '''''инвертирован''''' для объёмов!
* {{l4d2}} автоматически включает этот параметр, если '''$envmap''' присутствует. Непрозрачные области являются отражающими, тогда как прозрачные являются матовыми. Установите значение на [[bool|true]], чтобы инвертировать альфа-канал {{code|$basetexture}}. Это позволяет {{code|[[$bumpmap]]}} иметь выделенную маску {{code|[[$phong]]}}, когда прозрачность материала не нужна.}}
* {{l4d2}} автоматически включает этот параметр, если '''$envmap''' присутствует. Непрозрачные области являются отражающими, тогда как прозрачные являются матовыми. Установите значение на {{L|bool|true}}, чтобы инвертировать альфа-канал {{code|$basetexture}}. Это позволяет {{code|{{L|$bumpmap}}}} иметь выделенную маску {{code|{{L|$phong}}}}, когда прозрачность материала не нужна.}}
{{bug|<ul>
{{bug|<ul>
<li> В {{csgo}}, этот параметр ломает материалы, использующие {{ent|$translucent}}. Вместо него используйте {{code|$envmapmask}} или {{code|$normalmapalphaenvmapmask}}.<br>
<li> В {{csgo}}, этот параметр ломает материалы, использующие {{ent|$translucent}}. Вместо него используйте {{code|$envmapmask}} или {{code|$normalmapalphaenvmapmask}}.<br>
Line 57: Line 57:


<br>{{MatParam|$normalmapalphaenvmapmask|bool|Использует альфа-канал {{code|$bumpmap}} или {{code|$normalmap}} как маску бликов.
<br>{{MatParam|$normalmapalphaenvmapmask|bool|Использует альфа-канал {{code|$bumpmap}} или {{code|$normalmap}} как маску бликов.
{{warning|Using this in combination with {{code|[[$phong|$basemapalphaphongmask]]}} or {{code|[[$phong|$basemapluminancephongmask]]}} will set the mask used for the {{ent|$envmap}} to be those instead. <br>
{{warning|Using this in combination with {{code|{{L|$phong|$basemapalphaphongmask}}}} or {{code|{{L|$phong|$basemapluminancephongmask}}}} will set the mask used for the {{ent|$envmap}} to be those instead. <br>
'''Существуют некоторые нюансы''' при использовании {{ent|$phong}}. Смотреть его запись для получения дополнительной информации о возможных проблемах..}}
'''Существуют некоторые нюансы''' при использовании {{ent|$phong}}. Смотреть его запись для получения дополнительной информации о возможных проблемах..}}
}}
}}
Line 63: Line 63:
* Во всех: {{gmod}}{{src13}}{{tf2}}{{as}}{{csgo}} в оттенении {{ent|VertexLitGeneric}} ('''Без''' {{ent|$phong}}), <code>$normalmapalphaenvmapmask</code> не может быть использован вместе с [[Glowing_Textures#.24selfillum|$selfillumfresnel]].<br>
* Во всех: {{gmod}}{{src13}}{{tf2}}{{as}}{{csgo}} в оттенении {{ent|VertexLitGeneric}} ('''Без''' {{ent|$phong}}), <code>$normalmapalphaenvmapmask</code> не может быть использован вместе с [[Glowing_Textures#.24selfillum|$selfillumfresnel]].<br>
:{{note| При использовании <code>$normalmapalphaenvmapmask</code> вместе с {{ent|$phong}} и [[Glowing_Textures#.24selfillum|$selfillumfresnel]] имеются особые нюансы, которые следует учитывать. Смотреть {{ent|$phong}} для большей информации.}}
:{{note| При использовании <code>$normalmapalphaenvmapmask</code> вместе с {{ent|$phong}} и [[Glowing_Textures#.24selfillum|$selfillumfresnel]] имеются особые нюансы, которые следует учитывать. Смотреть {{ent|$phong}} для большей информации.}}
* В {{csgo}}, в оттенениях {{ent|LightmappedGeneric}} и {{ent|WorldVertexTransition}}, {{code|[[$normalmapalphaenvmapmask]]}} не может быть использован вместе с [[$detail#Parameters and Effects|$detailblendmode]] "9" или {{ent|$envmapanisotropy}}.}}<br>
* В {{csgo}}, в оттенениях {{ent|LightmappedGeneric}} и {{ent|WorldVertexTransition}}, {{code|{{L|$normalmapalphaenvmapmask}}}} не может быть использован вместе с [[$detail#Parameters and Effects|$detailblendmode]] "9" или {{ent|$envmapanisotropy}}.}}<br>
<br>{{MatParam|$selfillum_envmapmask_alpha|float|Использует альфа-канал {{code|$envmapmask}} как маску {{ent|$selfillum}}, вместо альфа-канала {{code|$basetexture}}.<br>
<br>{{MatParam|$selfillum_envmapmask_alpha|float|Использует альфа-канал {{code|$envmapmask}} как маску {{ent|$selfillum}}, вместо альфа-канала {{code|$basetexture}}.<br>
: {{bug|Этот параметр заменяет {{code|$selfillum}}. Если используются оба параметра, то это приведёт к ошибке. Материал не отобразится.}}
: {{bug|Этот параметр заменяет {{code|$selfillum}}. Если используются оба параметра, то это приведёт к ошибке. Материал не отобразится.}}
Line 76: Line 76:


==Смотреть также==
==Смотреть также==
* [[$basetexture/ru|$basetexture]] - основная текстура
* {{L|$basetexture}} - основная текстура
* [[$envmap]] - (карта окружения)
* {{L|$envmap}} - (карта окружения)
* [[$phong]] - (диффузное отражение)
* {{L|$phong}} - (диффузное отражение)
* [[$selfillum]] - самосвечение
* {{L|$selfillum}} - самосвечение

Revision as of 08:46, 11 July 2024

English (en)Français (fr)Русский (ru)中文 (zh)Translate (Translate)

$envmapmask - это материальный(en) параметр шейдера(en), доступно для всех игр на движке Source Source. Этот параметр определяет маску бликов, которая влияет на то, насколько сильно каждый пиксель материала отражает свет от $envmap. Маска должна быть изображением в градациях серого, в котором полностью отражающие области являются белыми, а полностью матовые области - черными. Для отражения диффузного типа, которое не зависит от$envmap,см.$phong.

Icon-Bug.pngБаг:В играх на Source 2007 Source 2007 использование $envmapmask, которая не хранится во вложенной подпапке, приведет к сбою загрузки текстуры в игре.  [нужно проверить в ?]
Warning.pngПредупреждение:В большинстве случаев, $envmapmask не будет работать с материалами, использующими $bumpmap. Смотреть #Альтернативные_методы.
Note.pngПримечание:Исключения:
  • Shader-ball.png

LightmappedReflective (использует $normalmap)

  • (только в Mapbase) Shader-ball.png

VertexLitGeneric

  • (только в Counter-Strike: Global Offensive)Shader-ball.png

LightmappedGeneric

Warning.pngПредупреждение:$envmapmask не будет работать с материалами использующими $phong. По-умолчанию envmap будет использовать альфа-канал $basetexture для маскировки.
Note.pngПримечание:Маски бликов традиционно являются чёрно-белыми, однако они всё ещё могут быть покрашены. В таком случае, информация о цвете будет использоваться как потексельная $envmaptint.

Пример синтаксиса VMT

$envmapmask <текстура>
VertexLitGeneric(en)
{
	$envmap(en)			env_cubemap
	$envmapmask		"props/tvscreen_test"
}

Дополнительные параметры

Маска блика npc_cscanner(en)'а.

$envmapmasktransform $envmapmaskscale $envmapmaskframe

CS:GO WorldVertexTransition Parameters

$envmapmask2 $envmapmasktransform2 $envmapframe2

Альтернативные методы

Вместо создания новой полноценной текстуры для маски бликов, вы можете встроить её в альфа-канал(en) $basetexture или $bumpmap. Материалы моделей с $bumpmap обязаны иметь маску бликов в альфа-канале. К сожалению, это не уменьшит использование памяти.

Если вы используете эти команды, то трансформации и другие похожие параметры, применённые к $basetexture / $bumpmap, также будут применяться к маске бликов.

$basealphaenvmapmask

Note.pngПримечание:
  • Маска бликов, встроенная в альфа-канал $basetexture работает наоборот. Прозрачные области являются отражающими, а непрозрачные области являются матовыми. Всё из-за того, что, скажем, альфа маска текстуры окна будет чёрной, по большей части, чтобы сделать её прозрачной, но эта же чёрная часть маски также будет наиболее отражающей частью. Вместо дублирования текстуры, чтобы просто инвертировать альфа маску, вы можете использовать этот параметр материала.
  • Альфа-канал не инвертирован в Source 2007 Source 2007 и Counter-Strike: Global Offensive Counter-Strike: Global Offensive для моделей, но альфа-канал инвертирован для объёмов!
  • Left 4 Dead 2 автоматически включает этот параметр, если $envmap присутствует. Непрозрачные области являются отражающими, тогда как прозрачные являются матовыми. Установите значение на true(en), чтобы инвертировать альфа-канал $basetexture. Это позволяет $bumpmap(en) иметь выделенную маску $phong(en), когда прозрачность материала не нужна.
Icon-Bug.pngБаг:  [нужно проверить в ?]


$normalmapalphaenvmapmask

Icon-Bug.pngБаг:
Note.pngПримечание: При использовании $normalmapalphaenvmapmask вместе с $phong и $selfillumfresnel имеются особые нюансы, которые следует учитывать. Смотреть $phong для большей информации.



$selfillum_envmapmask_alpha
$envmapmaskintintmasktexture

Merging Specular Level into Normal Alpha in 3ds Max

To merge a Specular Level map into the Normal Map alpha, you can create a Composite Map node with the normal map in Layer 1 and the specular map in Mask 1. Then right-click the composite map, click Render Map and save this new image to file (remembering to keep the Gamma at 1.0 and using 32 bits per pixel in the save options).

These steps are automated in the Alpha Spec tool in Wall Worm 2.72+.

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