$emissiveblend: Difference between revisions
Jump to navigation
Jump to search
Note:
Note:
Note:This effect does not need to use a flowmap, and can instead be used as a simple emissive map. Use dummy textures (
Note: you don't need to declare "CurrentTime" Proxie in cases where you don't need to relative modify time scale.
Deprecated (talk | contribs) (Rewritten, added information, added example and see also sections, changed category from Material System to List of Shader Parameters) |
Deprecated (talk | contribs) m (Minor cleanup) |
||
| Line 1: | Line 1: | ||
{{screenshot}} | {{screenshot}} | ||
{{Shaderparam|$emissiveblend|since=Source 2007|shader1=VertexLitGeneric}} It provides advanced self-illumination that can be flowed using a flowmap. It used | {{Shaderparam|$emissiveblend|since=Source 2007|shader1=VertexLitGeneric}} It provides advanced self-illumination that can be flowed using a flowmap. It is used for the Vortigaunts in {{Game link|Half-Life 2: Episode Two}} and succeeds the {{ent|VortWarp}} shader from {{Game link|Half-Life 2: Episode One}}. All parameters must be specified except for <code>$emissiveblendstrength</code> in order for the effect to work properly. | ||
{{Note|<code>$emissiveblend</code> is additive, and does not read from the material's [[albedo]].}} | {{Note|<code>$emissiveblend</code> is additive, and does not read from the material's [[albedo]].}} | ||
{{Note|<code>$emissiveblend</code> parameters are X+ and Y-, for both flowmap and scroll. (e.g. Giving X a positive scroll vector will have it go left and giving Y a positive scroll vector will have it go up)}} | {{Note|<code>$emissiveblend</code> parameters are X+ and Y-, for both flowmap and scroll. (e.g. Giving X a positive scroll vector will have it go left and giving Y a positive scroll vector will have it go up)}} | ||
{{Note| | {{Note|This effect does not need to use a flowmap, and can instead be used as a simple emissive map. Use dummy textures (<code>dev/null</code> or a pure white texture with a pure black alpha channel) for <code>$emissiveblendtexture</code> and <code>$emissiveblendflowtexture</code>, and use a value of <code>"[0 0]"</code> for <code>$emissiveblendscrollvector</code>. In this instance, illumination is solely provided by the <code>$emissiveblendbasetexture</code>, and the time proxy is not required.}} | ||
==Parameters== | ==Parameters== | ||
Revision as of 17:07, 17 November 2019
This article or section needs a screenshot to help visually convey the subject.
You can upload screenshots at Special:Upload. For help, see Help:Images.
You can upload screenshots at Special:Upload. For help, see Help:Images.
Template:Shaderparam It provides advanced self-illumination that can be flowed using a flowmap. It is used for the Vortigaunts in Template:Game link and succeeds the VortWarp shader from Template:Game link. All parameters must be specified except for $emissiveblendstrength in order for the effect to work properly.
$emissiveblend is additive, and does not read from the material's albedo.$emissiveblend parameters are X+ and Y-, for both flowmap and scroll. (e.g. Giving X a positive scroll vector will have it go left and giving Y a positive scroll vector will have it go up)dev/null or a pure white texture with a pure black alpha channel) for $emissiveblendtexture and $emissiveblendflowtexture, and use a value of "[0 0]" for $emissiveblendscrollvector. In this instance, illumination is solely provided by the $emissiveblendbasetexture, and the time proxy is not required.Parameters
$emissiveblendenabled
$emissiveblendtexture
$emissiveblendbasetexture
$emissiveblendflowtexture
$emissiveblendtint
$emissiveblendstrength
$emissiveblendscrollvector
Time Proxy
For any reason, you may want to modulate time by scale it. The below material proxy is a simple sample to work properly.
"$time" "0.0"
"$CurrentTime" "0.0" // declare a custom VMT Parameter to "CurrentTime" Proxie output
"$timeMult" "0.5" // declare a custom VMT Parameter to use at "Multiply" Proxie
"Proxies"
{
"CurrentTime"
{
// It pass CurrentTime Proxie to "$CurrentTime" variable to scale materials effects such $emissiveblendscrollvector.
"resultVar" "$CurrentTime"
}
"Multiply"
{
"srcVar1" "$CurrentTime" // get $CurrentTime VMT parameter to multiply with srcVar2
"srcVar2" "$timeMult" // get $timeMult VMT parameter to multiply with srcVar1
"resultVar" "$time" // writes multiplication product into $time, scaling "CurrentTime"
}
}
Example
The only known material using this shader parameter, found in Template:Game link, materials/models/vortigaunt/vortigaunt_blue.vmt
"VertexLitGeneric"
{
"$surfaceprop" "default"
"$basetexture" "Models/vortigaunt/vortigaunt_base"
"$bumpmap" "Models/vortigaunt/vortigaunt_normal"
"$phong" "1"
"$phongboost" "10"
"$phongexponenttexture" "Models/vortigaunt/vortigaunt_exponent"
"$phongalbedotint" "1"
"$phongfresnelranges" "[.18 .4 1]"
"$halflambert" "1"
"$nodecal" "1"
// Rim lighting parameters
"$rimlight" "1" // To enable rim lighting (requires phong)
"$rimlightexponent" "10" // Exponent for phong component of rim lighting
"$rimlightboost" "3" // Boost for ambient cube component of rim lighting
// Blend between color textures
"$detail" "Models/Vortigaunt/vortigaunt_blue"
"$detailblendmode" "3"
"$detailblendfactor" "0.0"
"$detailScale" "1.0"
// Emissive Scroll Pass
"$emissiveBlendEnabled" "1" // Enables effect
"$emissiveBlendTexture" "models/vortigaunt/vortigaunt_illum"
"$emissiveBlendBaseTexture" "Models/Vortigaunt/vortigaunt_blue"
"$emissiveBlendFlowTexture" "models/vortigaunt/vortigaunt_flow"
"$emissiveBlendTint" "[1 1 1]"
"$emissiveBlendScrollVector" "[0.11 0.124]"
"$time" "0"
"Proxies"
{
"VortEmissive"
{
}
"MaterialModify"
{
}
"CurrentTime"
{
"resultVar" "$time"
}
}
}