Revision Difference
Global.Material#545851
<function name="Material" parent="Global" type="libraryfunc">
	<description>
Either returns the material with the given name, or loads the material interpreting the first argument as the path.
<note>When using .png or .jpg textures, try to make their sizes Power Of 2 (1, 2, 4, 8, 16, 32, 64, etc). While images are no longer scaled to Power of 2 sizes since February 2019, it is a good practice for things like icons, etc.</note>
<warning>This function is very expensive when used in rendering hooks or in operations requiring very frequent calls (like loops for example). It is better to store the Material in a variable (like in exemples).</warning>
<warning>This function is very expensive when used in rendering hooks or in operations requiring very frequent calls. It is better to store the Material in a variable (like in examples).</warning>
	</description>
	<realm>Shared and Menu</realm>
	<file line="17-L30">lua/includes/util.lua</file>
	<args>
		<arg name="materialName" type="string">The material name or path. The path is relative to the **materials/** folder. You do not need to add **materials/** to your path.
To retrieve a Lua material created with <page>Global.CreateMaterial</page>, just prepend a "!" to the material name.
<note>Since paths are relative to the materials folder, resource paths like ../data/MyImage.jpg will work since ".." translates to moving up a parent directory in the file tree.</note></arg>⤶
<note>Since paths are relative to the materials folder, resource paths like ../data/MyImage.jpg will work since ".." translates to moving up a parent directory in the file tree.</note>.</arg>⤶
		<arg name="pngParameters" type="string" default="nil">A string containing space separated keywords which will be used to add material parameters.
See <page>Material Parameters</page> for more information.
<note>This feature only works when importing .png or .jpeg image files</note></arg>⤶
<note>This feature only works when importing .png or .jpeg image files.</note></arg>⤶
	</args>
	<rets>
		<ret name="" type="IMaterial">Generated material</ret>⤶
		<ret name="" type="number">How long it took for the function to run</ret>⤶
		<ret name="" type="IMaterial">Generated material.</ret>⤶
		<ret name="" type="number">How long it took for the function to run.</ret>⤶
	</rets>
</function>
<example>
	<description>
Creates a PNG material with noclamp and smooth parameters set and then draws on screen.
In this example the .png file is located in **materials/vgui/wave.png**⤶
In this example the .png file is located in **materials/vgui/wave.png**.⤶
	</description>
	<code>
local wave = Material( "vgui/wave.png", "noclamp smooth" )
hook.Add( "HUDPaint", "HUDPaint_DrawATexturedBox", function()
	surface.SetMaterial( wave )
	surface.SetDrawColor( 255, 255, 255, 255 )
	surface.DrawTexturedRect( 50, 50, 128, 128 )
end )
	</code>
</example>
<example>
	<description>Acquires and uses one of the <page>Post-Processing Materials</page> to make the screen darker and more saturated</description>⤶
	<description>Acquires and uses one of the <page>Post-Processing Materials</page> to make the screen darker and more saturated.</description>⤶
	<code>
local mat_color = Material( "pp/colour" )  -- used outside of the hook for performance
local mat_color = Material( "pp/colour" ) -- used outside of the hook for performance
hook.Add("RenderScreenspaceEffects", "ColorExample", function()
	render.UpdateScreenEffectTexture()
	mat_color:SetTexture( "$fbtexture", render.GetScreenEffectTexture() )
	mat_color:SetFloat( "$pp_colour_addr", 0 )
	mat_color:SetFloat( "$pp_colour_addg", 0 )
	mat_color:SetFloat( "$pp_colour_addb", 0 )
	mat_color:SetFloat( "$pp_colour_mulr", 0 )
	mat_color:SetFloat( "$pp_colour_mulg", 0 )
	mat_color:SetFloat( "$pp_colour_mulb", 0 )
	mat_color:SetFloat( "$pp_colour_brightness", 0 )
	mat_color:SetFloat( "$pp_colour_contrast", 0.5 )
	mat_color:SetFloat( "$pp_colour_colour", 5 )
	render.SetMaterial( mat_color )
	render.DrawScreenQuad()
end )
	</code>
</example>
 Garry's Mod
			Garry's Mod 
		 Rust
			Rust 
		 Steamworks
			Steamworks 
		 Wiki Help
			Wiki Help