Moderator elections are being held. See Valve Developer Community:Moderator elections for more details.
Users who would like to run for moderator must be autoconfirmed and have at least 100 edits. Users can check their own edit count at Special:Preferences.
The Message template has been deleted. A list of pages that transclude it are at Valve Developer Community:Message transclusions.
This article's documentation is for anything that uses the Source engine. Click here for more information.

$envmapmask

From Valve Developer Community
Jump to: navigation, search

$envmapmask is a material shader parameter available in all Source Source games. Этот параметр определяет маску бликов, которая влияет на то, насколько сильно каждый пиксель материала отражает свет от $envmap. Маска должна быть изображением в градациях серого, в котором полностью отражающие области являются белыми, а полностью матовые области - черными. Для отражения диффузного типа, которое не зависит от$envmap,см.$phong.

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

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

  • (only in Mapbase) Shader-ball.png

VertexLitGeneric

  • (only in Counter-Strike: Global Offensive)Shader-ball.png

LightmappedGeneric

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

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

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

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

Маска блика npc_cscanner'а.
Трансформирует текстуру маски бликов.
Позиция по умолчанию: center .5 .5 scale 1 1 rotate 0 translate 0 0.
  1. center определяет ценр вращения. Необходим только при использовании rotate.
  2. scale вставляет текстуру в материал заданное количество раз. 2 1 — это 50%-ый масштаб по оси X.
  3. rotate вращает текстуру "против часовой стрелки/по часовой стрелке" в градусах. Принимает любое число, включая негативы.
  4. translate сдвигает текстуру до заданных значений. Значение .5 сдвинет текстуру на 50%.
Note.pngПримечание:Все значения должны быть добавлены!
Icon-Bug.pngОшибка:Масштабирование текстуры может вызвать странные проблемы, когда инструмент «Texture Lock» в Hammer фактически не фиксирует текстуру на месте.
Icon-Bug.pngОшибка:Вращающиеся текстуры, примененные к брашам, будут вращаться вокруг начала координат карты. Чтобы исправить это, нужно изменить центральное положение в VMT на начало координат браша.
Масштабирует маску бликов до заданного значения. Смотреть $envmapmasktransform (выше).
Кадр для начала анимированной маски бликов.

CS:GO WorldVertexTransition Parameters

$envmapmask2 <texture> (только в Counter-Strike: Global Offensive)
Shader(s): WorldVertexTransition
Маска бликов для второго слоя WorldVertexTransition.
$envmapmasktransform2 <matrix> (только в Counter-Strike: Global Offensive)
Shader(s): WorldVertexTransition
Трансформация текстуры для $envmapmask2.
$envmapframe2 <целое число> (только в Counter-Strike: Global Offensive)
Shader(s): WorldVertexTransition
Кадр для начала анимации $envmapmask2.

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

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

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

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


Использует альфа-канал $bumpmap или $normalmap как маску бликов.
Warning.pngПредупреждение:Using this in combination with $basemapalphaphongmask or $basemapluminancephongmask will set the mask used for the $envmap to be those instead.
Существуют некоторые нюансы при использовании $phong. Смотреть его запись для получения дополнительной информации о возможных проблемах..
Icon-Bug.pngОшибка:* Во всех: Garry's ModSource 2013Team Fortress 2Alien SwarmCounter-Strike: Global Offensive в оттенении VertexLitGeneric (Без $phong), $normalmapalphaenvmapmask не может быть использован вместе с $selfillumfresnel.
Note.pngПримечание: При использовании $normalmapalphaenvmapmask вместе с $phong и $selfillumfresnel имеются особые нюансы, которые следует учитывать. Смотреть $phong для большей информации.



Использует альфа-канал $envmapmask как маску $selfillum, вместо альфа-канала $basetexture.
Icon-Bug.pngОшибка:Этот параметр заменяет $selfillum. Если используются оба параметра, то это приведёт к ошибке. Материал не отобразится.
Warning.pngПредупреждение:Только в оттенении VertexLitGeneric - Учтите, что $envmapmask не работает вместе с $bumpmap или $phong.
Blank image.pngНужно сделать: This is not an alternative method to $envmapmask and in fact that parameter is required to use this. Move it to Additional Parameters and pray links on other pages don't break.


Shader(s): VertexLitGeneric
Использует красный канал $tintmasktexture как маску бликов.

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 - самосвечение