# Render Reference - Min/Mag Texture Filters

- **İngilizce aslı:** https://wiki.facepunch.com/gmod/render_min_mag_filters
- **Çeviri tarihi:** 2025-09-18

## Render Kütüphanesi Referansları

Bu sayfa, [Render Kütüphanesini](https://gmod.tr/wiki/render) belgelemeye adanmış bir dizi sayfa olan Render Referansının bir parçasıdır.

Diğer Render Referansı sayfaları şunlardır:

- [Işınlar (Beams)](https://gmod.tr/wiki/render_beams)
- **Küçültme ve Büyütme Doku Filtreleri**
- [Render Hedefleri (Render Targets)](https://gmod.tr/wiki/render_rendertargets)

  - [Şablonlar (Stencils)](https://gmod.tr/wiki/render_stencils)

## Min(ification - Küçültme) ve Mag(nification - Büyütme) Filtreleri Nedir?

Küçültme (Minification) ve Büyütme (Magnification) filtreleri, Source Engine'in (ve dolayısıyla Garry's Mod'un) grafik render işlemleri için kullandığı DirectX 9'un bir özelliğidir.

Bu iki filtre, bir tür görüntünün (Source Engine'de bir [Texture](https://gmod.tr/wiki/ITexture) veya [Material](https://gmod.tr/wiki/Material)) doğal boyutundan daha büyük veya daha küçük bir boyutta çizilmesi gereken çok yaygın durumu ele alır. Her iki durumda da, grafik sistemine görüntüyü istenen boyuta sığdırmak için nasıl esnetmesi (Büyütme - Magnify) veya sıkıştırması (Küçültme - Minify) gerektiğini söyleyen bir mantık olmalıdır.

Örneğin, bir piksel-sanat oyununda olduğu gibi bazı durumlarda, düşük çözünürlüklü piksel-sanatın modern bir ekranda çok daha yüksek bir çözünürlükte çizilmesini isteyebilirsiniz. Grafik sisteminin pikselleri esnetirken yumuşatmaya çalışmasını istemezsiniz, çünkü yumuşatma dokuların piksel-sanat görünümünü bozar.

Diğer durumlarda, bir logo gibi yüksek çözünürlüklü bir görüntünüz olabilir. Bu görüntünün, bir kartvizit veya bir HUD öğesi gibi bir şey için çok daha küçük çizilebilmesi amacıyla, tasarımın önemli ayrıntılarını kaybetmiş gibi görünmeden küçültülmesi (minified) gerekebilir.

Ekrana çizilen her şey için belirli bir küçültme veya büyütme filtresi seçimi yapmak her zaman gerekli olmasa da, ihtiyaç duyulduğu durumlarda çok büyük bir fark yaratabilir.

## Hangi Fonksiyonlar Var?

### Büyütme (Magnification)

- [render.PushFilterMag( number TEXFILTER )](https://gmod.tr/wiki/render.PushFilterMag) - Belirli bir filtre ile büyütme filtrelemesi ekler
- [render.PopFilterMag()](https://gmod.tr/wiki/render.PopFilterMag) - En son eklenen büyütme filtresini kaldırır

### Küçültme (Minification)

- [render.PushFilterMin( number TEXFILTER )](https://gmod.tr/wiki/render.PushFilterMin) - Belirli bir filtre ile küçültme filtrelemesi ekler
- [render.PopFilterMin()](https://gmod.tr/wiki/render.PopFilterMin) - En son eklenen küçültme filtresini kaldırır

## Hangi Filtreler Var?

[Doku Filtreleme (TEXFILTER)](https://gmod.tr/wiki/Enums/TEXFILTER) enumları aracılığıyla kullanılabilen dört (4) filtre vardır:

1. [None](https://gmod.tr/wiki/Enums/TEXFILTER#TEXFILTERNONE) - Herhangi bir filtreleme geçersiz kılmasını devre dışı bırakır.
2. [Point](https://gmod.tr/wiki/Enums/TEXFILTER#TEXFILTERPOINT) - Pikselli bir görünüm oluşturur. Daha ayrıntılı bilgi için [bu sayfaya bakın.](https://learn.microsoft.com/en-us/windows/win32/direct3d9/nearest-point-sampling)
3. [Linear](https://gmod.tr/wiki/Enums/TEXFILTER#TEXFILTERLINEAR) - Yumuşatılmış bir görünüm oluşturur. Daha ayrıntılı bilgi için [bu sayfaya bakın.](https://learn.microsoft.com/en-us/windows/win32/direct3d9/linear-texture-filtering)
4. [Anisotropic](https://gmod.tr/wiki/Enums/TEXFILTER#TEXFILTERANISOTROPIC) - Bu filtre, dokuları kısmen kameraya göre olan açılarına göre yumuşatır. Daha ayrıntılı bilgi için [bu sayfaya bakın](https://learn.microsoft.com/en-us/windows/win32/direct3d9/anisotropic-texture-filtering)

Her bir filtrenin nasıl göründüğünü gösteren bir tanıtım için aşağıdaki örnek çıktıya bakın.

## Kullanım Örneği

### Örnek

Aşağıdaki örnek, bir görüntünün hem büyütülmüş hem de küçültülmüş versiyonları üzerinde her bir filtrenin basit bir gösterimini sunar.

```lua
-- Material() fonksiyonunu her karede çağırmak oldukça maliyetlidir
-- Bu yüzden onu bir kez, herhangi bir hook dışında çağırırız ve sonucu yerel bir değişkende önbelleğe alırız
local ourMat = Material( "entities/sent_ball.png" )
local sizeBig = 500
local sizeSmall = 100
local pos = 100

local filters = {}
filters[ TEXFILTER.NONE ] = "NONE"
filters[ TEXFILTER.POINT ] = "POINT"
filters[ TEXFILTER.LINEAR ] = "LINEAR"
filters[ TEXFILTER.ANISOTROPIC ] = "ANISOTROPIC"

hook.Add( "HUDPaint", "PutAUniqueHookNameHere", function()
	surface.SetDrawColor( 255, 255, 255, 255 ) -- Çizim rengini ayarla
	surface.SetMaterial( ourMat ) -- Önbelleğe alınmış materyalimizi kullan

	-- Her bir filtreyi 1 saniye boyunca göster
	-- (TEXFILTER enumları tam sayılara karşılık gelir)
	local filter = math.floor( CurTime() % 4 )

	render.PushFilterMag( filter )
	render.PushFilterMin( filter )

	-- Dikdörtgeni bir büyütme filtresiyle çiz
	surface.DrawTexturedRect( pos, pos, sizeBig, sizeBig )

	-- Dikdörtgeni bir küçültme filtresiyle çiz
	surface.DrawTexturedRect( pos + sizeBig + 1, pos, sizeSmall, sizeSmall )

	render.PopFilterMin()
	render.PopFilterMag()

	draw.SimpleText( filters[ filter ], "ChatFont", pos + 1, pos + 1, color_white )

end )
```

**Çıktı:** ![](https://gmod.tr/api/uploads/wiki/2d1e17ffdf7b8a073bb2.gif)

- [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_min_mag_filters
