# render.SetStencilPassOperation

- **Ortam:** İstemci, Menü
- **İngilizce aslı:** https://wiki.facepunch.com/gmod/render.SetStencilPassOperation
- **Çeviri tarihi:** 2025-09-08

```lua
render.SetStencilPassOperation( number passOperation )
```

## Açıklama

[Karşılaştırma Fonksiyonu](https://gmod.tr/wiki/render.SetStencilCompareFunction) pikseli geçerse, çizim işlemlerinden etkilenen piksellerin Stencil Arabellek (Stencil Buffer) değerleri üzerinde gerçekleştirilecek olan [Stencil İşlemini](https://gmod.tr/wiki/Enums/STENCILOPERATION) ayarlar.

Kullanım örnekleri de dahil olmak üzere Stencil sistemi hakkında daha ayrıntılı bilgi için [Stencillar Render Referansı](https://gmod.tr/wiki/render_stencils) sayfasına bakın.

## Argümanlar

1. [number](https://gmod.tr/wiki/number), [STENCILOPERATION enum](https://gmod.tr/wiki/Enums/STENCILOPERATION) ile **passOperation**: Karşılaştırma Fonksiyonu bir pikseli geçtiğinde gerçekleştirilecek Stencil İşlemi.

![](https://gmod.tr/api/uploads/wiki/d3dc002802425e260b5f.png)

### Ö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](https://github.com/Lexicality/stencil-tutorial)'nden alınmıştır).

```lua
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ı:** ![](https://gmod.tr/api/uploads/wiki/fd41b3180ad982aa0d93.jpg)

- [GMod Wiki ana sayfası](https://gmod.tr/wiki)

---

[Tüm sunucular](https://gmod.tr/) · [GmodTR Launcher](https://gmod.tr/launcher) · [Rehber](https://gmod.tr/rehber) · [GMod Wiki](https://gmod.tr/wiki) · [GmodTR nedir?](https://gmod.tr/hakkinda) · [Sunucu ekle](https://gmod.tr/sunucu-ekle) · [Discord](https://discord.gg/gmodtr)

Kaynak: https://gmod.tr/wiki/render.SetStencilPassOperation
