Ru/$envmapmask: Difference between revisions
No edit summary |
Churkinator (talk | contribs) No edit summary |
||
Line 3: | Line 3: | ||
{{toc-right}} | {{toc-right}} | ||
{{this is a|shader parameter|name=$envmapmask}} Этот параметр определяет | {{this is a|shader parameter|name=$envmapmask}} Этот параметр определяет '''маску бликов''', которая влияет на то, насколько сильно каждый пиксель материала отражает свет от {{ent|$envmap}}. Маска должна быть изображением в градациях серого, в котором полностью отражающие области являются белыми, а полностью матовые области - черными. Для отражения диффузного типа, которое не зависит от<code>$envmap,</code>см.{{ent|$phong}}. | ||
{{bug|suf=:ru|В играх на {{ | {{bug|suf=:ru|В играх на {{src07|2}} использование <code>$envmapmask</code>, которая не хранится во вложенной подпапке, приведет к сбою загрузки текстуры в игре.}} | ||
{{warning|suf=:ru|<code>$envmapmask</code> не будет работать с материалами, использующими | {{warning|suf=:ru|В большинстве случаев, <code>$envmapmask</code> не будет работать с материалами, использующими {{ent|$bumpmap}}. Смотреть [[#Альтернативные_методы]]. | ||
{{note|Исключения: | |||
* {{shader|LightmappedReflective}} (использует {{ent|$normalmap}}) | |||
* {{mapbase|only}} {{shader|VertexLitGeneric}} | |||
* {{csgo|only}}{{shader|LightmappedGeneric}} | |||
}} }} | |||
{{warning|<code>$envmapmask</code> не будет работать с материалами использующими {{ent|$phong}}. По-умолчанию envmap будет использовать альфа-канал {{ent|$basetexture}} для маскировки.}} | |||
{{note|Маски бликов традиционно являются чёрно-белыми, однако они всё ещё могут быть покрашены. В таком случае, информация о цвете будет использоваться как потексельная $envmaptint.}} | |||
==Пример синтаксиса VMT== | ==Пример синтаксиса VMT== | ||
Line 18: | Line 25: | ||
==Дополнительные параметры== | ==Дополнительные параметры== | ||
[[File:Scanner mask.jpg|thumb|250px| | [[File:Scanner mask.jpg|thumb|250px|Маска блика [[npc_cscanner]]'а.]] | ||
{{MatParam|$envmapmasktransform|matrix| | {{MatParam|$envmapmasktransform|matrix| | ||
: Трансформирует | : Трансформирует текстуру маски бликов. | ||
{{VMT_UVtransform|suf=:ru}}|dx9=1}} | {{VMT_UVtransform|suf=:ru}}|dx9=1}} | ||
{{MatParam|$envmapmaskscale|float|Масштабирует | {{MatParam|$envmapmaskscale|float|Масштабирует маску бликов до заданного значения. Смотреть <code>$envmapmasktransform</code> (выше).|dx8=1}} | ||
{{MatParam|$envmapmaskframe|int|Кадр для начала анимированной | {{MatParam|$envmapmaskframe|int|Кадр для начала анимированной маски бликов.}} | ||
====CS:GO WorldVertexTransition Parameters==== | ====CS:GO WorldVertexTransition Parameters==== | ||
{{MatParam|$envmapmask2|texture| | {{MatParam|$envmapmask2|texture|Маска бликов для второго слоя {{ent|WorldVertexTransition}}.|only={{csgo}}|shaders=WorldVertexTransition}} | ||
{{MatParam|$envmapmasktransform2|matrix|Трансформация текстуры для <code>$envmapmask2</code>.|only={{csgo}}|shaders=WorldVertexTransition}} | {{MatParam|$envmapmasktransform2|matrix|Трансформация текстуры для <code>$envmapmask2</code>.|only={{csgo}}|shaders=WorldVertexTransition}} | ||
{{MatParam|$envmapframe2|int|Кадр для начала анимации <code>$envmapmask2</code>.|only={{csgo}}|shaders=WorldVertexTransition}} | {{MatParam|$envmapframe2|int|Кадр для начала анимации <code>$envmapmask2</code>.|only={{csgo}}|shaders=WorldVertexTransition}} | ||
==Альтернативные методы== | ==Альтернативные методы== | ||
Вместо создания новой полноценной текстуры для маски бликов, вы можете встроить её в [[alpha channel|альфа-канал]] {{ent|$basetexture}} или {{code|$bumpmap}}. Материалы моделей с {{code|$bumpmap}} '''обязаны''' иметь маску бликов в альфа-канале. К сожалению, это ''не'' уменьшит использование памяти. | |||
Если вы используете эти команды, то трансформации и другие похожие параметры, применённые к {{code|$basetexture / $bumpmap}}, также будут применяться к маске бликов. | |||
{{MatParam|$basealphaenvmapmask|bool| | {{MatParam|$basealphaenvmapmask|bool|Использует альфа-канал {{code|$basetexture}} как маску бликов.}} | ||
{{note| | |||
* Маска бликов, встроенная в альфа-канал {{code|$basetexture}} работает наоборот. Прозрачные области являются отражающими, а непрозрачные области являются матовыми. Всё из-за того, что, скажем, альфа маска текстуры окна будет чёрной, по большей части, чтобы сделать её прозрачной, но эта же чёрная часть маски также будет наиболее отражающей частью. Вместо дублирования текстуры, чтобы просто инвертировать альфа маску, вы можете использовать этот параметр материала. | |||
{{ | * Альфа-канал '''''не''''' инвертирован в {{src07|2}} ''и'' {{csgo|2}} для моделей, но альфа-канал '''''инвертирован''''' для объёмов! | ||
* {{l4d2}} автоматически включает этот параметр, если '''$envmap''' присутствует. Непрозрачные области являются отражающими, тогда как прозрачные являются матовыми. Установите значение на [[bool|true]], чтобы инвертировать альфа-канал {{code|$basetexture}}. Это позволяет {{code|[[$bumpmap]]}} иметь выделенную маску {{code|[[$phong]]}}, когда прозрачность материала не нужна.}} | |||
{{MatParam|$selfillum_envmapmask_alpha|float| | {{bug|<ul> | ||
{{MatParam|$envmapmaskintintmasktexture|bool| | <li> В {{csgo}}, этот параметр ломает материалы, использующие {{ent|$translucent}}. Вместо него используйте {{code|$envmapmask}} или {{code|$normalmapalphaenvmapmask}}.<br> | ||
<li> Во всех: {{gmod}}{{src13}}{{tf2}}{{as}}{{csgo}} в оттенениях {{ent|VertexLitGeneric}} ('''Без''' {{ent|$phong}}), {{ent|WorldVertexTransition}} и {{ent|LightmappedGeneric}}, <code>$basealphaenvmapmask</code> не может быть использован с {{ent|$bumpmap}}.<br> | |||
<li> Во всех: {{gmod}}{{src13}}{{tf2}}{{as}}{{csgo}} в оттенениях {{ent|LightmappedGeneric}} и {{ent|WorldVertexTransition}}, <code>$basealphaenvmapmask</code> не может быть использован с {{ent|$selfillum}}, {{ent|$seamless_detail}} или {{ent|$distancealpha}}.<br> | |||
<li> В {{csgo}}, в оттенениях {{ent|LightmappedGeneric}} и {{ent|WorldVertexTransition}}, <code>$basealphaenvmapmask</code> не может быть использован с [[$detail#Parameters and Effects|$detailblendmode]] "9" или {{ent|$envmapanisotropy}}.<br> | |||
<li> В {{csgo}}, в оттенении {{ent|Lightmapped_4WayBlend}}, <code>$basealphaenvmapmask</code> не может быть использован с {{ent|$selfillum}}. | |||
<li> Этот параметр не может быть использован вместе с {{ent|$bumpmap}} в оттенении {{ent|LightmappedGeneric}} | |||
</ul>}} | |||
<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> | |||
'''Существуют некоторые нюансы''' при использовании {{ent|$phong}}. Смотреть его запись для получения дополнительной информации о возможных проблемах..}} | |||
}} | |||
{{bug| | |||
* Во всех: {{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}} для большей информации.}} | |||
* В {{csgo}}, в оттенениях {{ent|LightmappedGeneric}} и {{ent|WorldVertexTransition}}, {{code|[[$normalmapalphaenvmapmask]]}} не может быть использован вместе с [[$detail#Parameters and Effects|$detailblendmode]] "9" или {{ent|$envmapanisotropy}}.}}<br> | |||
<br>{{MatParam|$selfillum_envmapmask_alpha|float|Использует альфа-канал {{code|$envmapmask}} как маску {{ent|$selfillum}}, вместо альфа-канала {{code|$basetexture}}.<br> | |||
: {{bug|Этот параметр заменяет {{code|$selfillum}}. Если используются оба параметра, то это приведёт к ошибке. Материал не отобразится.}} | |||
: {{warning|Только в оттенении {{ent|VertexLitGeneric}} - Учтите, что <code>$envmapmask</code> не работает '''вместе с''' {{ent|$bumpmap}} или {{ent|$phong}}.}} | |||
{{todo|This is not an alternative method to <code>$envmapmask</code> and in fact that parameter is required to use this. <code>Move it to Additional Parameters</code> and pray links on other pages don't break.}}}} | |||
<br>{{MatParam|$envmapmaskintintmasktexture|bool|Использует красный канал {{ent|$tintmasktexture}} как маску бликов.|only={{csgo}}|shaders=VertexLitGeneric}} | |||
==Merging Specular Level into Normal Alpha in 3ds Max== | ==Merging Specular Level into Normal Alpha in 3ds Max== | ||
Line 48: | Line 75: | ||
These steps are automated in the [http://dev.wallworm.com/topic/34/alpha_spec.html Alpha Spec] tool in Wall Worm 2.72+. | These steps are automated in the [http://dev.wallworm.com/topic/34/alpha_spec.html Alpha Spec] tool in Wall Worm 2.72+. | ||
== | ==Смотреть также== | ||
* [[$basetexture:ru|$basetexture]] - основная текстура | * [[$basetexture:ru|$basetexture]] - основная текстура | ||
* [[$envmap]] - карта окружения | * [[$envmap]] - (карта окружения) | ||
* [[$phong]] - диффузное отражение | * [[$phong]] - (диффузное отражение) | ||
* [[$selfillum]] - самосвечение | * [[$selfillum]] - самосвечение |
Revision as of 03:09, 9 June 2024
$envmapmask
- это материальный параметр шейдера , доступно для всех игр на движке Source. Этот параметр определяет маску бликов, которая влияет на то, насколько сильно каждый пиксель материала отражает свет от $envmap. Маска должна быть изображением в градациях серого, в котором полностью отражающие области являются белыми, а полностью матовые области - черными. Для отражения диффузного типа, которое не зависит от
$envmap,
см.$phong.


$envmapmask
, которая не хранится во вложенной подпапке, приведет к сбою загрузки текстуры в игре. [нужно проверить в ?]
$envmapmask
не будет работать с материалами, использующими $bumpmap. Смотреть #Альтернативные_методы.

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

$envmapmask
не будет работать с материалами использующими $phong. По-умолчанию envmap будет использовать альфа-канал $basetexture для маскировки.
Пример синтаксиса VMT
$envmapmask <текстура>
VertexLitGeneric { $envmap env_cubemap $envmapmask "props/tvscreen_test" }
Дополнительные параметры

$envmapmasktransform
$envmapmaskscale
$envmapmaskframe
CS:GO WorldVertexTransition Parameters
$envmapmask2
$envmapmasktransform2
$envmapframe2
Альтернативные методы
Вместо создания новой полноценной текстуры для маски бликов, вы можете встроить её в альфа-канал $basetexture или $bumpmap. Материалы моделей с $bumpmap обязаны иметь маску бликов в альфа-канале. К сожалению, это не уменьшит использование памяти.
Если вы используете эти команды, то трансформации и другие похожие параметры, применённые к $basetexture / $bumpmap, также будут применяться к маске бликов.

- Маска бликов, встроенная в альфа-канал $basetexture работает наоборот. Прозрачные области являются отражающими, а непрозрачные области являются матовыми. Всё из-за того, что, скажем, альфа маска текстуры окна будет чёрной, по большей части, чтобы сделать её прозрачной, но эта же чёрная часть маски также будет наиболее отражающей частью. Вместо дублирования текстуры, чтобы просто инвертировать альфа маску, вы можете использовать этот параметр материала.
- Альфа-канал не инвертирован в
Source 2007 и
Counter-Strike: Global Offensive для моделей, но альфа-канал инвертирован для объёмов!
автоматически включает этот параметр, если $envmap присутствует. Непрозрачные области являются отражающими, тогда как прозрачные являются матовыми. Установите значение на true, чтобы инвертировать альфа-канал $basetexture. Это позволяет $bumpmap иметь выделенную маску $phong, когда прозрачность материала не нужна.

- В
, этот параметр ломает материалы, использующие $translucent. Вместо него используйте $envmapmask или $normalmapalphaenvmapmask.
- Во всех:
в оттенениях VertexLitGeneric (Без $phong), WorldVertexTransition и LightmappedGeneric,
$basealphaenvmapmask
не может быть использован с $bumpmap.
- Во всех:
в оттенениях LightmappedGeneric и WorldVertexTransition,
$basealphaenvmapmask
не может быть использован с $selfillum, $seamless_detail или $distancealpha.
- В
, в оттенениях LightmappedGeneric и WorldVertexTransition,
$basealphaenvmapmask
не может быть использован с $detailblendmode "9" или $envmapanisotropy.
- В
, в оттенении Lightmapped_4WayBlend,
$basealphaenvmapmask
не может быть использован с $selfillum. - Этот параметр не может быть использован вместе с $bumpmap в оттенении LightmappedGeneric

- Во всех:
в оттенении VertexLitGeneric (Без $phong),
$normalmapalphaenvmapmask
не может быть использован вместе с $selfillumfresnel.
Примечание: При использовании
$normalmapalphaenvmapmask
вместе с $phong и $selfillumfresnel имеются особые нюансы, которые следует учитывать. Смотреть $phong для большей информации.
- В
, в оттенениях LightmappedGeneric и WorldVertexTransition, $normalmapalphaenvmapmask не может быть использован вместе с $detailblendmode "9" или $envmapanisotropy. [нужно проверить в ?]
$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+.
Смотреть также
- $basetexture - основная текстура
- $envmap - (карта окружения)
- $phong - (диффузное отражение)
- $selfillum - самосвечение