Material map compile flags: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (→‎%NoPortal {{only|{{portal}}{{portal2}}}}: used the "portals" template instead of separate templates for the funni text color)
m (added language bar. also some formatting.)
Line 1: Line 1:
Several special shader parameters exist, starting with a <code>%</code> sign instead of <code>$</code>. These are read by the compile tools to alter the properties of the face or the brush they are attached to. Most are intended to produce the special <code>tools/</code> textures, but may also be used for other materials. All are boolean properties. These cannot be affected by [[Material_Proxies|Proxies]].
{{lang|{{PAGENAME}}}}
Several special shader parameters exist that start with a <code>%</code> sign instead of <tt>$</tt>. These are read by the compile tools to alter the properties of the face or the brush they are attached to. Most are intended to produce the special <code>tools/</code> textures, but they may also be used for other materials. All are boolean properties. These cannot be affected by [[Material Proxies|Proxies]].


See also [[Tool_textures|Tool Textures]] for more detail about the propeties of individual materials.
See also [[Tool textures|Tool Textures]] for more detail about the propeties of individual materials.


Example:
Example:
Line 9: Line 10:
   '''%compileclip 1'''
   '''%compileclip 1'''
  }
  }
 
== Exclusive Flags ==
== Exclusive Flags ==
'''Only one''' of the following flags may be set on any given material.
'''Only one''' of the following flags may be set on any given material.


=== %CompileClip (<code>toolsclip</code>) ===
=== %CompileClip (<tt>toolsclip</tt>) ===
[[image:Toolsclip.gif|32px]] Makes the brush block only [[player]]s and [[NPC]]s. This is equivalent to a combination of '''PlayerClip''' and '''NPCClip'''.
[[image:Toolsclip.gif|32px]] Makes the brush block only [[player]]s and [[NPC]]s. This is equivalent to a combination of <tt>PlayerClip</tt> and <tt>NPCClip</tt>.


=== %CompileNoChop ===
=== %CompileNoChop ===
Prevents 'subdividing patches' on the surface. This presumably affects how the face is converted to triangles.  
Prevents "subdividing patches" on the surface. This presumably affects how the face is converted to triangles.  


=== %CompileNPCClip (<code>toolsnpcclip</code>) ===  
=== %CompileNPCClip (<tt>toolsnpcclip</tt>) ===  
[[image:Toolsnpcclip.gif|32px]] Makes the brush block only [[NPC]]s. This implies '''NoLight''' and '''NoDraw'''.
[[image:Toolsnpcclip.gif|32px]] Makes the brush block only [[NPC]]s. This implies <tt>NoLight</tt> and </tt>NoDraw</tt>.
{{Note | {{csgo}} Blocks [[bot]]s, even though they are [[player]]s.}}
{{Note|{{csgo}} Blocks [[bot]]s, even though they are [[player]]s.}}


=== %CompileOrigin (<code>toolsorigin</code>) ===
=== %CompileOrigin (<tt>toolsorigin</tt>) {{obs}} ===
[[image:Toolsorigin.gif|32px]] Sets the origin of a brush entity. This is deprecated for Source maps. In GoldSource, origin brushes were used to set the rotation origin of rotating entities.
[[image:Toolsorigin.gif|32px]] Sets the origin of a brush entity. This is deprecated in {{Source|2}} and {{source2|2}}. In {{gldsrc|2}}, origin brushes were used to set the rotation origin of rotating entities.


=== %CompileTrigger (<code>toolstrigger</code>) ===  
=== %CompileTrigger (<tt>toolstrigger</tt>) ===  
[[image:Toolstrigger.gif|32px]] Makes the brush suitable for [[Trigger]]s.
[[image:Toolstrigger.gif|32px]] Makes the brush suitable for [[Trigger]]s.


=== %CompileSkip(toolsskip) ===  
=== %CompileSkip(<tt>toolsskip</tt>) ===  
[[image:Toolsskip.gif|32px]] Removes the face during compilation, making the brush into sets of planes.
[[image:Toolsskip.gif|32px]] Removes the face during compilation, making the brush into sets of planes.


=== %CompileSky (toolsskybox) ===  
=== %CompileSky (<tt>toolsskybox</tt>) ===  
[[image:Toolsskybox.gif|32px]] Makes the face render the (2D/3D) [[Skybox]] and emit [[light_environment]] light.
[[image:Toolsskybox.gif|32px]] Makes the face render the (2D/3D) [[Skybox]] and emit {{ent|light_environment}} light.


=== %Compile2DSky (toolsskybox2d) ===
=== %Compile2DSky (<tt>toolsskybox2d</tt>) ===
[[image:Toolsskybox2d.gif|32px]] Makes the face render the 2D [[Skybox]] only, in addition to emitting [[light_environment]] light.
[[image:Toolsskybox2d.gif|32px]] Makes the face render the 2D [[Skybox]] only, in addition to emitting <tt>light_environment</tt> light.


=== %PlayerClip (<code>tools/toolsplayerclip</code>) ===  
=== %PlayerClip (<tt>toolsplayerclip</tt>) ===  
[[image:Toolsplayerclip.gif|32px]] Makes the brush only block [[player]]s.
[[image:Toolsplayerclip.gif|32px]] Makes the brush only block [[player]]s.


=== %CompileNoLight (<code>nolight</code>) ===  
=== %CompileNoLight (<tt>nolight</tt>) ===  
{{since|{{as}}}}{{also|{{src13}}}}<br>
[[image:Toolsblack.gif|32px]]{{as|since}}{{src13|also}}<br>
Disables generating lightmaps for a brush face. Useful for materials that don't need lighting info or are always invisible. This is disabled on water materials. [[Valve]] introduced this parameter with [[Alien Swarm]], using it for the black areas you see in the levels.
Disables generating lightmaps for a brush face. Useful for materials that don't need lighting info or are always invisible. This is disabled on water materials. [[Valve]] introduced this parameter with {{as|2}}, using it for the black areas you see in the levels.


== Additive Flags ==
== Additive Flags ==
Multiple of the following flags may be applied to any given material.  
Multiple of the following flags may be applied to any given material.  


=== %CompileBlockLOS (<code>toolsblocklos</code>) ===
=== %CompileBlockLOS (<tt>toolsblocklos</tt>) ===
[[image:Toolsblocklos.gif|32px]] Makes the brush block only the [[line of sight]] for [[NPC]]s.
[[image:Toolsblocklos.gif|32px]] Makes the brush block only the [[line of sight]] for [[NPC]]s.
{{Note | Also works for [[bot]]s in {{csgo}}.}}
{{Note|Also works for [[bot]]s in {{csgo}}.}}


=== %CompileDetail ===
=== %CompileDetail ===
Forces the brush to no longer cut [[visleaf]]s, similar to [[func_detail]].  
Forces the brush to no longer cut [[visleaf]]s, similar to {{ent|func_detail}}.  


=== %CompileHint (<code>toolshint</code>)===
=== %CompileHint (<tt>toolshint</tt>)===
[[image:Toolshint.gif|32px]] Makes the face hint-cut [[visleaf]]s. This implies '''NoLight''' and '''NoDraw'''.
[[image:Toolshint.gif|32px]] Makes the face hint-cut [[visleaf]]s. This implies <tt>NoLight</tt> and <tt>NoDraw</tt>.


=== %CompileInvisible (<code>toolsinvisible</code>) ===  
=== %CompileInvisible (<tt>toolsinvisible</tt>) ===  
[[image:Toolsinvisible.gif|32px]] Makes a surface behave like '''NoDraw''', but still allows bullets to pass through it, except in {{csgo}}. This implies '''NoLight''' also.
[[image:Toolsinvisible.gif|32px]] Makes a surface behave like <tt>NoDraw</tt>, but still allows bullets to pass through it, except in {{csgo|2}}. This also implies <tt>NoLight</tt>.


=== %CompileLadder ===
=== %CompileLadder (<tt>toolsladder</tt>)===
[[image:Toolsladder.gif|32px]] Makes the brush usable as a [[func_ladder]].
[[image:Toolsladder.gif|32px]] Makes the brush usable as a {{ent|func_ladder}}.
   
   
=== %CompileNoDraw (<code>toolsnodraw</code>) ===  
=== %CompileNoDraw (<tt>toolsnodraw</tt>) ===  
[[image:Toolsnodraw.gif|32px]] Makes a brush behave like <code>tools/toolsnodraw</code>.
[[image:Toolsnodraw.gif|32px]] Makes a brush behave like <code>tools/toolsnodraw</code>.


Line 76: Line 77:
=== %CompilePassBullets===  
=== %CompilePassBullets===  
Makes the brush behave like a grating, allowing bullets to pass through but blocking other objects. Useful for foliage or metal grates.
Makes the brush behave like a grating, allowing bullets to pass through but blocking other objects. Useful for foliage or metal grates.
{{bug| Non-functional in {{csgo}} and {{css}}.}}
{{bug|Non-functional in {{csgo|2}} and {{css|2}}.}}


===%CompileTeam===
===%CompileTeam===
{{l4d2}} Decides which team should be affected by this tool texture. Seen in climb_versus, a ladder for infected only.
{{Seealso|{{ent|%compileteam}}}}
*See [[%25compileteam]] for more info.
{{l4d2|only}}<br>Decides which team should be affected by this tool texture. Seen in <tt>climb_versus</tt>, a ladder for infected only.


=== %CompileWater, %CompileSlime ===  
=== %CompileWater, %CompileSlime ===  
Marks the brush as a [[Water_(shader)|water]]-type material. Makes it non-solid, allows swimming inside, etc. The slime variant switches to green splash particles. If <code>%CompileKeepLight</code> is also set, the brush will retain its lighting data.
Marks the brush as a [[Water (shader)|water]]-type material. Makes it non-solid, allows swimming inside, etc. The slime variant switches to green splash particles. If <code>%CompileKeepLight</code> is also set, the brush will retain its lighting data.
{{bug|%CompileSlime uses default water splash particles in {{l4d2}}.}}
{{bug|{{l4d2}} <tt>%CompileSlime</tt> uses default water splash particles.}}


=== %NoPortal {{only|{{portals}}}} ===
===%NoPortal===
In Portal and Portal 2, makes the texture non-portalable, unless [[Gel_(Portal_2)|Conversion Gel]] is used.
{{only|{{Portal2series}}}}<br>
Makes the texture non-portalable unless [[Gel (Portal 2)|Conversion Gel]] is used.


=== %NoPaint {{only|{{portal2}}}} ===
===%NoPaint===
In Portal 2, makes the material unable to be painted by [[Gel_(Portal_2)|Gel]].  
{{portal2|only}}<br>
Makes the material unable to be painted by [[Gel (Portal 2)|Gel]].  


=== %CompileStairs {{only|{{infra}}}} ===
=== %CompileStairs ===
{{infra|only}}<br>
Makes brushwork traversable up to an angle of 63.4349488, as opposed to the usual  45°.
Makes brushwork traversable up to an angle of 63.4349488, as opposed to the usual  45°.


[[Category:Material System]]
[[Category:List of Shader Parameters]]
[[Category:List of Shader Parameters]]

Revision as of 10:15, 30 June 2022

English (en)中文 (zh)Translate (Translate)

Several special shader parameters exist that start with a % sign instead of $. These are read by the compile tools to alter the properties of the face or the brush they are attached to. Most are intended to produce the special tools/ textures, but they may also be used for other materials. All are boolean properties. These cannot be affected by Proxies.

See also Tool Textures for more detail about the propeties of individual materials.

Example:

LightmappedGeneric
{
  $basetexture developer/custom_clip
  %compileclip 1
}

Exclusive Flags

Only one of the following flags may be set on any given material.

%CompileClip (toolsclip)

Toolsclip.gif Makes the brush block only players and NPCs. This is equivalent to a combination of PlayerClip and NPCClip.

%CompileNoChop

Prevents "subdividing patches" on the surface. This presumably affects how the face is converted to triangles.

%CompileNPCClip (toolsnpcclip)

Toolsnpcclip.gif Makes the brush block only NPCs. This implies NoLight and NoDraw.

Note.pngNote:Counter-Strike: Global Offensive Blocks bots, even though they are players.

%CompileOrigin (toolsorigin) Obsolete

Toolsorigin.gif Sets the origin of a brush entity. This is deprecated in Source Source and Source 2 Source 2. In GoldSrc GoldSrc, origin brushes were used to set the rotation origin of rotating entities.

%CompileTrigger (toolstrigger)

Toolstrigger.gif Makes the brush suitable for Triggers.

%CompileSkip(toolsskip)

Toolsskip.gif Removes the face during compilation, making the brush into sets of planes.

%CompileSky (toolsskybox)

Toolsskybox.gif Makes the face render the (2D/3D) Skybox and emit light_environment light.

%Compile2DSky (toolsskybox2d)

Toolsskybox2d.gif Makes the face render the 2D Skybox only, in addition to emitting light_environment light.

%PlayerClip (toolsplayerclip)

Toolsplayerclip.gif Makes the brush only block players.

%CompileNoLight (nolight)

Toolsblack.gif(in all games since Alien Swarm)(also in Source 2013)
Disables generating lightmaps for a brush face. Useful for materials that don't need lighting info or are always invisible. This is disabled on water materials. Valve introduced this parameter with Alien Swarm Alien Swarm, using it for the black areas you see in the levels.

Additive Flags

Multiple of the following flags may be applied to any given material.

%CompileBlockLOS (toolsblocklos)

Toolsblocklos.gif Makes the brush block only the line of sight for NPCs.

Note.pngNote:Also works for bots in Counter-Strike: Global Offensive.

%CompileDetail

Forces the brush to no longer cut visleafs, similar to func_detail.

%CompileHint (toolshint)

Toolshint.gif Makes the face hint-cut visleafs. This implies NoLight and NoDraw.

%CompileInvisible (toolsinvisible)

Toolsinvisible.gif Makes a surface behave like NoDraw, but still allows bullets to pass through it, except in Counter-Strike: Global Offensive Counter-Strike: Global Offensive. This also implies NoLight.

%CompileLadder (toolsladder)

Toolsladder.gif Makes the brush usable as a func_ladder.

%CompileNoDraw (toolsnodraw)

Toolsnodraw.gif Makes a brush behave like tools/toolsnodraw.

%CompileNonSolid

Makes the brush not solid to anything.

Icon-Bug.pngBug:Left 4 Dead 2 Turns brushes non-solid and invisible but still casts shadows.  [todo tested in ?]

%CompileNoShadows

Prevents shadows from being cast onto the texture.

%CompilePassBullets

Makes the brush behave like a grating, allowing bullets to pass through but blocking other objects. Useful for foliage or metal grates.

Icon-Bug.pngBug:Non-functional in Counter-Strike: Global Offensive Counter-Strike: Global Offensive and Counter-Strike: Source Counter-Strike: Source.  [todo tested in ?]

%CompileTeam

See also:  %compileteam

(only in Left 4 Dead 2)
Decides which team should be affected by this tool texture. Seen in climb_versus, a ladder for infected only.

%CompileWater, %CompileSlime

Marks the brush as a water-type material. Makes it non-solid, allows swimming inside, etc. The slime variant switches to green splash particles. If %CompileKeepLight is also set, the brush will retain its lighting data.

Icon-Bug.pngBug:Left 4 Dead 2 %CompileSlime uses default water splash particles.  [todo tested in ?]

%NoPortal

(only in Template:Portal2series)
Makes the texture non-portalable unless Conversion Gel is used.

%NoPaint

(only in Portal 2)
Makes the material unable to be painted by Gel.

%CompileStairs

(only in INFRA)
Makes brushwork traversable up to an angle of 63.4349488, as opposed to the usual 45°.