$specmap texture: Difference between revisions
MyGamepedia (talk | contribs) |
No edit summary |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{LanguageBar}} | {{LanguageBar}} | ||
{{This is a|shader parameter|name=$specmap_texture|game=Black Mesa}} | |||
[[File:NewSpecular=.jpg|thumb|right|New specular shader, example in <code>bs_c3m0d</code>. You can see how the floor reflects the red light source, | [[File:NewSpecular=.jpg|thumb|right|New specular shader, example in <code>bs_c3m0d</code>. You can see how the floor reflects the red light source, same with the floodlight.]] | ||
Shader used on surfaces to give them PBR style speculars. Works with {{ent|VertexLitGeneric}} and {{ent|LightmappedGeneric}}. This shader ''only'' works with deferred rendering lighting entities, which are using the <code>SpecularMultiplier</code> parameter. Those entities are: {{ent|NewLight_Point}}, {{ent|NewLight_Spot}}, {{ent|npc_zombie_hev}} (flashlight), {{ent|prop_barrel_cactus}}, {{ent|prop_barrel_cactus_semilarge}}, {{ent|prop_barrel_interloper}}, {{ent|prop_barrel_interloper_small}}, {{ent|env_cascade_light}}, {{ent|bmortar}}, {{ent|npc_plantlight}}, {{ent|npc_plantlight_stalker}}, and {{ent|player}} (flashlight). | |||
Mainly used with {{ent|LightmappedGeneric}}, because it is the only option for glossy effects on world geometry and [[bmodel | brush models]]. {{ent|VertexLitGeneric}} is mainly used with {{ent|$phong}} instead, because {{ent|$phong}} supports new lights, while this shader only supports baked lights and has a lot of parameters. The only exception to this is {{ent|prop_static}}. | |||
{{ | {{Confirm|Is this list full?}} | ||
{{warning|This shader is pretty expensive for GPU. | {{warning|This shader is pretty expensive for the GPU. Not necessarily FPS drops, but it will heat up your GPU. Use wisely.}} | ||
{{note|Doesn't work if [[$phong]] is enabled.}} | {{note|Doesn't work if [[$phong]] is enabled.}} | ||
{{bug|hidetested=1|If [[$alphatest | {{bug|hidetested=1|If a material with [[$alphatest]] applied has a specular, and beneath it, there is another material with the same shader, will cause artifacts under a light source. This bug started occurring after Crowbar Collective fixed the outline artifacts for materials with [[$alphatest]].}} | ||
{{note|{{ent|env_cascade_light}} doesn't work with this shader (at least on [[Bmodel| | {{note|{{ent|env_cascade_light}} doesn't work with this shader (at least on [[Bmodel|brush models]] and world geometry).}} | ||
{{back | Black Mesa Level Creation}} | {{back | Black Mesa Level Creation}} | ||
== Parameters and Effects == | == Parameters and Effects == | ||
{{ | {{MatParamDef|$specmap_texture|texture|Defines a [[specularmap]] texture for the shader. | ||
{{expand|title=An example.| | {{expand|title=An example.| | ||
<br> | <br> | ||
Line 24: | Line 24: | ||
}} | }} | ||
}} | }} | ||
{{ | {{MatParamDef|$specularcolor|RGB matrix|Controls the color and saturation of the specularity. If all three values are the same, the color obtained from deferred rendering light source will be used instead. Also affects specular intensity. | ||
{{expand|title=Examples.| | {{expand|title=Examples.| | ||
<br> | <br> | ||
Line 34: | Line 34: | ||
}} | }} | ||
}} | }} | ||
{{ | {{MatParamDef|$specmap_mode|int|Defines style and behaviour for speculars. Only 3 applicable values: 0, 1, and 2. | ||
{{expand|title=Examples.| | {{expand|title=Examples.| | ||
<br> | <br> | ||
Line 44: | Line 44: | ||
}} | }} | ||
}} | }} | ||
{{ | {{MatParamDef|$speculargloss|float|Defines glossiness. Works differently depending on <code>$specmap_mode</code> value. | ||
{{expand|title=Examples of $specmap_mode - 0.| | {{expand|title=Examples of $specmap_mode - 0.| | ||
<br> | <br> | ||
Line 70: | Line 70: | ||
}} | }} | ||
}} | }} | ||
{{ | {{MatParamDef|$normalmapalphaenvmapmask|bool|Use the alpha channel of the {{code|$bumpmap}} or {{code|$normalmap}} as a specular mask. {{code|$specmap_texture}} will be used as an additional mask or glossiness mask if {{code|$specmap_mode}} is set. This allows a blendable specular mask on {{code|LightmappedGeneric}}. | ||
{{todo|Check to see if parameters such as {{code|$envmapmask}} or {{code|$basealphaenvmapmask}} and others affect | {{todo|Check to see if parameters such as {{code|$envmapmask}} or {{code|$basealphaenvmapmask}} and others affect new specular lights.}} | ||
}} | |||
{{MatParamDef|$fresnelreflection|float|If an [[$envmap]] is also defined, adds a fresnel effect to specularity. Operates the same as it does on [[$envmap]]. 0 is full effect, 1 is no fresnel. | |||
{{tip|Use a value of ~0.8 for metal, ~0.1 for everything else to adhere to PBR.}} | |||
}} | }} | ||
Latest revision as of 12:06, 23 August 2025


$specmap_texture
is a material shader parameter available in Black Mesa.
Shader used on surfaces to give them PBR style speculars. Works with VertexLitGeneric and LightmappedGeneric. This shader only works with deferred rendering lighting entities, which are using the SpecularMultiplier
parameter. Those entities are: NewLight_Point, NewLight_Spot, npc_zombie_hev (flashlight), prop_barrel_cactus, prop_barrel_cactus_semilarge, prop_barrel_interloper, prop_barrel_interloper_small, env_cascade_light, bmortar, npc_plantlight, npc_plantlight_stalker, and player (flashlight).
Mainly used with LightmappedGeneric, because it is the only option for glossy effects on world geometry and brush models. VertexLitGeneric is mainly used with $phong instead, because $phong supports new lights, while this shader only supports baked lights and has a lot of parameters. The only exception to this is prop_static.





Parameters and Effects
|
$specmap_mode
value.
|
|
|
Example VMT:
See also
- $moss_enable - moss shader.
- $pomscale - parallax occlusion mapping shader.
- Lightmapped_4WayBlend - 4 way blend shader.
- $halflambert_gbuffer_off - gbuffer's halflambert option.
- newLight_Dir - directional sun light with godrays only.
- NewLights_Spawner - spawner of deferred point lights.
- env_lensflare - cinematic dynamic lens flare.
- newLight_Spot - spot deferred light entity.
- newLights_settings - entity that changes deferred light settings.
- godrays_settings - entity that changes godrays settings.
- env_cascade_light - deferred cascade sun light entity.
- New Lights Editor - in game deferred lights editor.
- Effect flags - effects flags, some of them are dynamic light effects.
- BlackMesa XenEngine: Part 4 – Lighting & Shadows - page from Chetan (lead programmer for Black Mesa) about new lights.
- BlackMesa XenEngine: Part2 – How a Frame is Rendered - page from Chetan (lead programmer for Black Mesa) about how a frame is rendered.
- BlackMesa XenEngine: Part1 – Heavily Modified Source Engine page from Chetan (lead programmer for Black Mesa) about
Xengine.