render.SetStencilPassOperation

  render.SetStencilPassOperation( number passOperation )

Açıklama

Karşılaştırma Fonksiyonu pikseli geçerse, çizim işlemlerinden etkilenen piksellerin Stencil Arabellek (Stencil Buffer) değerleri üzerinde gerçekleştirilecek olan Stencil İşlemini ayarlar.

Kullanım örnekleri de dahil olmak üzere Stencil sistemi hakkında daha ayrıntılı bilgi için Stencillar Render Referansı sayfasına bakın.

Argümanlar

1 number, STENCILOPERATION enum ile passOperation
Karşılaştırma Fonksiyonu bir pikseli geçtiğinde gerçekleştirilecek Stencil İşlemi.

Örnek

Bu, az önce çizdiğimiz her şey dışındaki her şeyi boşaltmak için geçiş işlemini kullanır (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 ) -- Sadece pikselleri 1 OLMAYAN şeyleri çiz. Şu anda bu her şey anlamına geliyor. render.SetStencilCompareFunction( STENCIL_NOTEQUAL ) -- Ekrana bir şey çizilirse, çizdiği pikselleri 1 olarak ayarla render.SetStencilPassOperation( STENCIL_REPLACE ) -- Varlıklarımızı çiz. Normal şekilde çizilecekler for _, ent in ipairs( ents.FindByClass( "prop_physics" ) ) do ent:DrawModel() end -- Bu noktada, daha önce çizdiğimiz hiçbir şeyin üzerine çizim yapamayız. -- Bu yüzden, ekranı temizlersek, varlıklarımız hala orada olacaktır. 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