# CreateMaterial

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

```lua
IMaterial CreateMaterial( string name, string shaderName, table materialData )
```

## Açıklama

Belirtilen isim ve shader ile yeni bir materyal oluşturur.

Bu fonksiyonla oluşturulan materyaller, materyal adı argümanının başına bir `!` eklenerek [Entity:SetMaterial](https://gmod.tr/wiki/Entity:SetMaterial) ve [Entity:SetSubMaterial](https://gmod.tr/wiki/Entity:SetSubMaterial)'da kullanılabilir.

Aynı isme sahip başka bir materyal nesnesi zaten mevcutsa yeni bir materyal oluşturulmaz. Bu fonksiyonla oluşturulan tüm materyaller harita kapatıldığında temizlenir.

> **NOT:** Bu fonksiyon, [yama materyalleri](https://developer.valvesoftware.com/wiki/Patch) (patch materials) ile çalışmaz.

> **HATA:** .png dosyaları bu fonksiyonla kullanılmadan önce [Material](https://gmod.tr/wiki/Global.Material) ile yüklenmelidir.
> Hata Takipçisi: [1531](https://github.com/Facepunch/garrysmod-issues/issues/1531)

## Argümanlar

1. [string](https://gmod.tr/wiki/string) **name**: Materyal adı. Benzersiz olmalıdır.
2. [string](https://gmod.tr/wiki/string) **shaderName**: Shader adı. Bkz. [Shader'lar](https://gmod.tr/wiki/Shaders).
3. [table](https://gmod.tr/wiki/table) **materialData**: Shader parametrelerini ve proxy'lerini içeren anahtar-değer tablosu. - Bkz: [Valve Geliştirici Wiki'sindeki Shader Parametreleri Listesi](https://developer.valvesoftware.com/wiki/Category:List_of_Shader_Parameters) ve her bir shader'ın sayfasından. > **NOT:** [IMaterial:SetTexture](https://gmod.tr/wiki/IMaterial:SetTexture)'dan farklı olarak, bu tablo [ITexture](https://gmod.tr/wiki/ITexture) değerlerini kabul etmez. Bunun yerine, dokunun (texture) adını kullanın (bkz. [ITexture:GetName](https://gmod.tr/wiki/ITexture:GetName)).

## Döndürülen Değerler

1. [IMaterial](https://gmod.tr/wiki/IMaterial): Oluşturulan materyal

### Örnek

[render.SetColorMaterial](https://gmod.tr/wiki/render.SetColorMaterial) fonksiyonuna bir alternatif, esasen [Entity:SetMaterial](https://gmod.tr/wiki/Entity:SetMaterial) ile kullanım için.

```lua
CreateMaterial( "colortexshp", "VertexLitGeneric", {
  ["$basetexture"] = "color/white",
  ["$model"] = 1,
  ["$translucent"] = 1,
  ["$vertexalpha"] = 1,
  ["$vertexcolor"] = 1
} )
```

### Örnek

Materyal proxy'lerinin kullanımına dair bir örnek. **Unutmayın, her proxy türünden yalnızca 1 tane örneğe sahip olabilirsiniz! Bu, Lua tablolarının çalışma şeklinden kaynaklanan bir kısıtlamadır.**

```lua
local mat = CreateMaterial( "combine_ball_animated", "UnlitGeneric", {
  ["$basetexture"] = "effects/comball/comball",
  ["Proxies"] = {
    ["AnimatedOffsetTexture"] = {
      ["animatedtexturevar"] = "$basetexture",
      ["animatedtextureframenumvar"] = "$frame",
      ["animatedtextureframerate"] = 30
    }
  }
} )

hook.Add( "HUDPaint", "HUDPaint_DrawATexturedBox", function()
	surface.SetMaterial( mat )
	surface.SetDrawColor( 255, 255, 255, 255 )
	surface.DrawTexturedRect( 50, 50, 128, 128 )
end )
```

- [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/Global.CreateMaterial
