Garry's Mod Wiki

Revision Difference

Material#511560

<panel>⤶ <parent>Button</parent>⤶ <preview>Material_preview.gif</preview>⤶ <description>Material is a VGUI element that renders a VMT material.</description>⤶ <hooks></hooks>⤶ ⤶ </panel>⤶ ⤶ ⤶ <example>⤶ <description>Creates a Material panel with TV static under a <page>DModelPanel</page> with a spinning Garry's Mod logo model.</description>⤶ <code>⤶ -- Background panel⤶ BGPanel = vgui.Create("DPanel")⤶ BGPanel:SetSize(400, 400)⤶ BGPanel:Center()⤶ BGPanel:SetBackgroundColor(Color(0, 0, 0, 255))⤶ ⤶ -- Material panel with TV static⤶ local mat = vgui.Create("Material", BGPanel)⤶ mat:SetPos(10, 10)⤶ mat:SetSize(380, 380)⤶ mat:SetMaterial("effects/tvscreen_noise002a") -- Path to material VMT⤶ ⤶ -- Set this to false to enable material stretching⤶ mat.AutoSize = false⤶ ⤶ -- Model panel for GMod Logo⤶ local mdl = vgui.Create("DModelPanel", BGPanel)⤶ mdl:SetPos(10, 10)⤶ mdl:SetSize(380, 380)⤶ mdl:SetModel("models/maxofs2d/logo_gmod_b.mdl")⤶ mdl:SetCamPos(Vector(240, 0, 0))⤶ mdl:SetLookAt(Vector(0, 0, 0))⤶ mdl:SetFOV(40)⤶ ⤶ -- Spin faster⤶ function mdl:LayoutEntity(ent)⤶ ent:SetAngles(Angle(0, RealTime()*100, 0))⤶ end⤶ </code>⤶ <output></output>⤶ ⤶ </example>⤶ ⤶ ⤶ <example>⤶ <description>Creates a custom material (using existing textures) of a Portal background with scrolling scan lines, and then displays that material in a Material panel in the center of the screen.</description>⤶ <code>⤶ -- Background panel⤶ BGPanel = vgui.Create("DPanel")⤶ BGPanel:SetSize(720, 480)⤶ BGPanel:Center()⤶ BGPanel:SetBackgroundColor(Color(0, 0, 0, 255))⤶ ⤶ -- Material data for the scanline background⤶ local matdata = {⤶ ["$basetexture"]="vgui/appchooser/background_portal_widescreen",⤶ ["$texture2"]="dev/dev_scanline",⤶ ["Proxies"]={⤶ ["TextureScroll"]={⤶ ["texturescrollvar"]="$texture2transform",⤶ ["texturescrollrate"]=.06,⤶ ["texturescrollangle"]=-90⤶ }⤶ }⤶ }⤶ ⤶ -- Create material and recompute just in case⤶ local portal_scanlines = CreateMaterial("PortalScanlines", "UnlitTwoTexture", matdata)⤶ portal_scanlines:Recompute()⤶ ⤶ -- Create material panel⤶ local mat = vgui.Create("Material", BGPanel)⤶ mat:SetPos(5, 5)⤶ mat:SetSize(710, 470)⤶ ⤶ -- This has to be set manually since mat:SetMaterial only accepts string argument⤶ mat.Material = portal_scanlines⤶ ⤶ -- Stretch to fit⤶ mat.AutoSize = false⤶ </code>⤶ <output></output>⤶ ⤶ </example>⤶ ⤶