Material

From Garry's Mod
Jump to: navigation, search
 Material( )

Contents

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.

Arguments

string materialName

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 CreateMaterial, just prepend a "!" to the material name.

Arguments

string pngParameters=nil

A string containing space separated keywords which will be used to add material parameters.

See Material Parameters for more information.

NOTE

This feature only works when importing .png or .jpeg image files

Returns

IMaterial

Generated material

Returns

number

How long it took for the function to run

Examples

Example

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

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 )


Examples

Example

Acquires and uses one of the Post-Processing Materials to make the screen darker and more saturated

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 )


Personal tools
Navigation