Material

  IMaterial, number Material( string materialName, string pngParameters = nil )

Açıklama

Ya verilen isimdeki materyali döndürür ya da ilk argümanı yol olarak yorumlayarak materyali yükler.

.png, .jpg ve diğer resim formatları

Bu fonksiyon, .png veya .jpg resimlerini yükleyebilir ve anında onlar için bir doku ve materyal oluşturabilir.

PNG, JPEG, GIF ve TGA dosyaları çalışacaktır, ancak yalnızca .png veya .jpg dosya uzantılarına sahiplerse çalışır (resmin gerçek formatı dosya uzantısıyla eşleşmese bile).

.cache dosya uzantısına sahip resim dosyaları için (steamworks.Download'dan gelenler için) AddonMaterial kullanın.

Resimler Şubat 2019'dan beri artık 2'nin katı (8, 16, 32, 64, 128, vb.) boyutlara ölçeklenmese de, ikonlar gibi şeyler için bu hala iyi bir uygulamadır.

Sunucu tarafında, bu fonksiyon yüklenen dosya türüne bağlı olarak tutarlı bir şekilde geçersiz bir materyal (içinde '__error' olan) döndürebilir.
Bu fonksiyon, render kancalarında (hook) veya çok sık çağrı gerektiren işlemlerde kullanıldığında çok maliyetlidir. Materyali (örneklerdeki gibi) bir değişkende önbelleğe almak iyi bir fikirdir.

Argümanlar

1 string materialName
materials/ klasörüne göre materyal adı veya yolu.
Materyal oluştururken data/MyImage.jpg veya maps/thumb/gm_construct.png gibi materials/ klasörü dışındaki yollar da çalışacaktır.

CreateMaterial ile oluşturulmuş bir Lua materyalini almak için, materyal adının başına bir ! eklemeniz yeterlidir.

2 string pngParameters = nil
Materyal parametreleri eklemek için kullanılacak, boşlukla ayrılmış anahtar kelimeler içeren bir metin.

Daha fazla bilgi için Materyal Parametreleri sayfasına bakın.

Bu özellik yalnızca .png veya .jpg resim dosyalarını içe aktarırken çalışır.

Döndürülen Değerler

1 IMaterial
Oluşturulan materyal.
2 number
Fonksiyonun çalışmasının ne kadar sürdüğü.

Örnek

noclamp ve smooth parametreleri ayarlanmış bir PNG materyali oluşturur ve ardından ekrana çizer.

Bu örnekte .png dosyası materials/vgui/wave.png konumundadır.

local wave = Material( "vgui/wave.png", "noclamp smooth" ) hook.Add( "HUDPaint", "HUDPaint_DrawATexturedBox", function() surface.SetMaterial( wave ) surface.SetDrawColor( 255, 255, 255, 255 ) surface.DrawTexturedRect( 50, 50, 128, 128 ) end )

Örnek

Ekranı daha karanlık ve daha doygun hale getirmek için İşlem Sonrası Materyallerinden birini alır ve kullanır.

local mat_color = Material( "pp/colour" ) -- performans için kanca (hook) dışında kullanılır hook.Add("RenderScreenspaceEffects", "ColorExample", function() render.UpdateScreenEffectTexture() mat_color:SetTexture( "$fbtexture", render.GetScreenEffectTexture() ) mat_color:SetFloat( "$pp_colour_addr", 0 ) mat_color:SetFloat( "$pp_colour_addg", 0 ) mat_color:SetFloat( "$pp_colour_addb", 0 ) mat_color:SetFloat( "$pp_colour_mulr", 0 ) mat_color:SetFloat( "$pp_colour_mulg", 0 ) mat_color:SetFloat( "$pp_colour_mulb", 0 ) mat_color:SetFloat( "$pp_colour_brightness", 0 ) mat_color:SetFloat( "$pp_colour_contrast", 0.5 ) mat_color:SetFloat( "$pp_colour_colour", 5 ) render.SetMaterial( mat_color ) render.DrawScreenQuad() end )

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