Render Reference - Min/Mag Texture Filters

Render Kütüphanesi Referansları

Bu sayfa, Render Kütüphanesini belgelemeye adanmış bir dizi sayfa olan Render Referansının bir parçasıdır.

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

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 veya 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)

Küçültme (Minification)

Hangi Filtreler Var?

Doku Filtreleme (TEXFILTER) enumları aracılığıyla kullanılabilen dört (4) filtre vardır:

  1. None - Herhangi bir filtreleme geçersiz kılmasını devre dışı bırakır.
  2. Point - Pikselli bir görünüm oluşturur. Daha ayrıntılı bilgi için bu sayfaya bakın.
  3. Linear - Yumuşatılmış bir görünüm oluşturur. Daha ayrıntılı bilgi için bu sayfaya bakın.
  4. Anisotropic - 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

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.

-- 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ı:

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