render.ClearBuffersObeyStencil
Örnek
Stencil arabelleği aracılığıyla ekranın bir bölümünü temizleme (Lex'in Stencil Eğitimi'nden alınmıştır).
hook.Add( "PostDrawOpaqueRenderables", "Stencil Tutorial Example", function()
-- Her şeyi bilinen iyi duruma sıfırla
render.SetStencilWriteMask( 0xFF )
render.SetStencilTestMask( 0xFF )
render.SetStencilReferenceValue( 0 )
render.SetStencilCompareFunction( STENCIL_ALWAYS )
render.SetStencilPassOperation( STENCIL_KEEP )
render.SetStencilFailOperation( STENCIL_KEEP )
render.SetStencilZFailOperation( STENCIL_KEEP )
render.ClearStencil()
-- Stencil'ları etkinleştir
render.SetStencilEnable( true )
-- Referans değerini 1 olarak ayarla. Karşılaştırma fonksiyonunun test ettiği değer budur
render.SetStencilReferenceValue( 1 )
-- O pikselin değeri 1 olmadığı sürece ekrana bir şey yazmayı reddet
render.SetStencilCompareFunction( STENCIL_EQUAL )
-- Ekranın merkezdeki üçte birlik kısmına 1 yaz. Daha önce temizlediğimiz için şu anda her şey 0
local w, h = ScrW() / 3, ScrH() / 3
local x_start, y_start = w, h
local x_end, y_end = x_start + w, y_start + h
render.ClearStencilBufferRectangle( x_start, y_start, x_end, y_end, 1 )
-- Render kütüphanesine ekranı temizlemesini, ancak stencil test fonksiyonuna uymasını söyle.
-- Bu, yalnızca merkezdeki üçte birlik kısmı temizleyeceği anlamına gelir.
render.ClearBuffersObeyStencil( 0, 148, 133, 255, false )
-- Her şeyin tekrar normal şekilde render edilmesine izin ver
render.SetStencilEnable( false )
end )
Çıktı: 

Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord