render.Viewport(x:number, y:number, w:number, h:number)Set the render viewport rectangle.
Render state, scene drawing, render targets, stencil.
render.Viewport(x:number, y:number, w:number, h:number)Set the render viewport rectangle.
render.GetViewport():tableReturn the current viewport as {x, y, w, h}.
render.DepthRange(zNear:number, zFar:number)Set the near and far depth buffer range.
render.GetDepthRange():number, numberReturn the last set zNear and zFar.
render.SetRenderTarget(texture:Texture?)Bind a render target, or nil to bind the back buffer.
render.GetRenderTarget():TextureReturn the current render target texture; nil if none bound.
render.ClearBuffers(clearColor:boolean, clearDepth:boolean, clearStencil:boolean)Clear the color, depth and/or stencil buffers.
render.ClearColor3ub(r:number, g:number, b:number)Set the clear color to an RGB byte value.
render.ClearColor4ub(r:number, g:number, b:number, a:number)Set the clear color to an RGBA byte value.
render.OverrideDepthEnable(enable:boolean, depthEnable:boolean)Override depth testing on or off.
render.OverrideAlphaWriteEnable(enable:boolean, alphaWriteEnable:boolean)Override alpha channel writes on or off.
render.PushRenderTargetAndViewport()Save the current render target and viewport.
render.PopRenderTargetAndViewport()Restore the saved render target and viewport.
render.SetStencilEnable(on:boolean)Enable or disable the stencil buffer.
render.SetStencilFailOperation(op:number)Set the stencil operation when the stencil test fails.
render.SetStencilZFailOperation(op:number)Set the stencil operation when the depth test fails.
render.SetStencilPassOperation(op:number)Set the stencil operation when both tests pass.
render.SetStencilCompareFunction(fn:number)Set the stencil compare function.
render.SetStencilReferenceValue(ref:number)Set the stencil reference value.
render.SetStencilTestMask(mask:number)Set the stencil test mask.
render.SetStencilWriteMask(mask:number)Set the stencil write mask.
render.ClearStencilBufferRectangle(x0:number, y0:number, x1:number, y1:number, value:number)Clear a rectangle of the stencil buffer to a value.
render.DrawScreenSpaceQuad(material:Material)Draw a fullscreen quad with the given material.
render.ForcedMaterialOverride(material:Material)Force every model to render with the material; pass nil to clear.
render.SetBlend(blend:number)Set the view blend (0-1); applies to the current render pass.
render.GetBlend():numberReturn the current blend value.
render.SetColorModulation(r:number, g:number, b:number)Tint the view RGB; combine with SetBlend for opacity.
render.GetColorModulation():Vector3Return the current color modulation as r, g, b.
render.Push3DView(view:ViewSetup, clearFlags:number, texture:Texture)Push a 3D view rendering into the target texture (nil = screen).
render.PopView()Pop the last pushed view.
render.CreateRenderTarget(w:number, h:number):TextureAllocate an RGBA render target texture of the given size.
render.ViewDrawScene(drawSkybox:boolean, flags:number, view:ViewSetup, viewID:number?, drawFlags:number?, drawViewModel:boolean?, unk1:number?, unk2:number?)Render the 3D scene into the current view and render target.
Color every enemy a flat red that shows through walls. Uses materials.Create, DrawModel and render.SetColorModulation.
-- One flat material drawn with depth ignored so it appears through walls.
local mat = materials.Create("verge_chams", [[
"UnlitGeneric"
{
"$basetexture" "vgui/white"
"$model" "1"
}
]])
callbacks.Register("DrawModel", function(ctx)
local ent = ctx:GetEntity()
if not ent:IsValid() or not ent:IsPlayer() then
return
end
local me = client.GetLocalPlayer()
if not me:IsValid() or ent:GetTeam() == me:GetTeam() then
return
end
render.SetColorModulation(1, 0.15, 0.15)
ctx:ForcedMaterialOverride(mat)
end)