render.SetStencilZFailOperation

  render.SetStencilZFailOperation( number zFailOperation )

Açıklama

Karşılaştırma Fonksiyonu (Compare Function) belirli bir pikseli geçtiyse, ancak Derinlik Testini (Depth Test) geçemedi ise, çizim işlemlerinden etkilenen piksellerin Şablon Tamponu (Stencil Buffer) değerlerinde gerçekleştirilecek olan Şablon Operasyonunu (Stencil Operation) ayarlar.

Şablon sistemi hakkında kullanım örnekleri de dahil olmak üzere daha ayrıntılı bilgi için Şablonlar (Stencils) Render Referansı sayfasına bakın.

Argümanlar

1 number, STENCILOPERATION enum ile zFailOperation
Karşılaştırma Fonksiyonu bir pikseli geçerse, ancak piksel Derinlik Testini geçemezse gerçekleştirilecek olan Şablon Operasyonu.

Örnek

Bu örnek, varlıkların gizli bölümlerini wallhack tarzında nasıl ortaya çıkaracağınızı gösterir (Lex'in Şablon 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() -- Şablonları etkinleştir render.SetStencilEnable( true ) -- Referans değerini 1'e ayarla. Karşılaştırma fonksiyonu bu değere göre test yapar render.SetStencilReferenceValue( 1 ) -- Her zaman her şeyi çiz render.SetStencilCompareFunction( STENCIL_ALWAYS ) -- Eğer bir şey ekrana çizilecekken başka bir şeyin arkasındaysa, çizdiği pikselleri 1'e ayarla render.SetStencilZFailOperation( STENCIL_REPLACE ) -- Varlıklarımızı çiz. Normal olarak çizilecekler for _, ent in ipairs( ents.FindByClass( "prop_physics" ) ) do ent:DrawModel() end -- Şimdi, sadece pikselleri 1 olarak ayarlanmış şeyleri çiz. Bu, şablon testlerinin gizli kısımlarıdır. render.SetStencilCompareFunction( STENCIL_EQUAL ) -- Ekranı temizle. Bu, şablon testlerinin tüm gizli bölümlerinin üzerine camgöbeği rengi çizecektir 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