# mesh.Begin

- **Ortam:** İstemci
- **İngilizce aslı:** https://wiki.facepunch.com/gmod/mesh.Begin
- **Çeviri tarihi:** 2025-09-08

```lua
mesh.Begin( IMesh mesh, number primitiveType, number primitiveCount )
```

```lua
mesh.Begin( number primitiveType, number primitiveCount )
```

## Açıklama

Üçgenler ve dörtgenler gibi belirli bir miktar ve türde ilkel 3B şekillerden oluşturulmuş bir 3B ağı (mesh) oluşturmaya veya değiştirmeye başlar.

Oluşturulan ağ, birden çok kez veya birden çok karede çizilmesi amaçlanıyorsa bir [IMesh](https://gmod.tr/wiki/IMesh) içinde saklanabilir.

## Varsayılan Argümanlar

1. [IMesh](https://gmod.tr/wiki/IMesh) **mesh**: Oluşturulan ağın saklanacağı [IMesh](https://gmod.tr/wiki/IMesh). Eğer ağ zaten oluşturulmuşsa, bunun yerine mevcut köşe noktaları (vertices) değiştirilir, ancak köşe noktası sayısı değiştirilemez.
2. [number](https://gmod.tr/wiki/number) **primitiveType**: Ağın ilkellerinin (primitives) formatının ne olacağını belirten bir enum. Mevcut seçeneklerin tam listesi için [MATERIAL enum](https://gmod.tr/wiki/Enums/MATERIAL) sayfasına bakın.
3. [number](https://gmod.tr/wiki/number) **primitiveCount**: Bu ağın bir tam sayı olarak içereceği ilkel sayısı. Toplam köşe noktası sayısı `32768` sınırını aşmamalıdır. Her ilkel tarafından oluşturulan köşe noktası sayısı, ağı oluşturmak için kullanılan ilkel türüne bağlı olacaktır. Bu argümanın beklenen değeri, kullanılan ilkel türüne bağlıdır. Her ilkel türü tarafından beklenen ilkel sayıların tam listesi için [MATERIAL enum](https://gmod.tr/wiki/Enums/MATERIAL) sayfasına bakın.

Argüman Aşırı Yüklemesi: Dinamik Bir Ağ Oluşturma

1. [number](https://gmod.tr/wiki/number) **primitiveType**: Ağın ilkellerinin (primitives) formatının ne olacağını belirten bir enum. Mevcut seçeneklerin tam listesi için [MATERIAL enum](https://gmod.tr/wiki/Enums/MATERIAL) sayfasına bakın.
2. [number](https://gmod.tr/wiki/number) **primitiveCount**: Bu ağın bir tam sayı olarak içereceği ilkel sayısı. Toplam köşe noktası sayısı `32768` sınırını aşmamalıdır. Her ilkel tarafından oluşturulan köşe noktası sayısı, ağı oluşturmak için kullanılan ilkel türüne bağlı olacaktır. Bu argümanın beklenen değeri, kullanılan ilkel türüne bağlıdır. Her ilkel türü tarafından beklenen ilkel sayıların tam listesi için [MATERIAL enum](https://gmod.tr/wiki/Enums/MATERIAL) sayfasına bakın.

### Örnek

Dinamik bir ağ kullanarak haritada Vector( 0, 0, 0 ) yakınına bir üçgen çizer. Dinamik bir ağ, animasyonlu ağlar veya sıkça değiştirilen diğer renderlanmış ağlar için iyidir.

```lua
local mat = Material( "editor/wireframe" ) -- Materyal (bir tel kafes)

local verts = { -- Bir üçgen oluşturan 3 köşe noktasından oluşan bir tablo
	{ pos = Vector( 0,  0,  0 ), u = 0, v = 0 }, -- Köşe 1
	{ pos = Vector( 10, 0,  0 ), u = 1, v = 0 }, -- Köşe 2
	{ pos = Vector( 10, 10, 0 ), u = 1, v = 1 }, -- Köşe 3
}

hook.Add( "PostDrawOpaqueRenderables", "MeshLibTest", function()

	render.SetMaterial( mat ) -- Materyali uygula
	mesh.Begin( MATERIAL_TRIANGLES, 1 ) -- Dinamik ağa yazmaya başla
	for i = 1, #verts do
		mesh.Position( verts[i].pos ) -- Konumu ayarla
		mesh.TexCoord( 0, verts[i].u, verts[i].v ) -- Doku UV koordinatlarını ayarla
		mesh.AdvanceVertex() -- Köşe noktasını yaz
	end
	mesh.End() -- Ağı yazmayı bitir ve çiz
end )
```

### Örnek

Statik bir ağ kullanarak haritada Vector( 0, 0, 0 ) yakınına bir üçgen çizer. Statik ağ, yalnızca bir kez oluşturulan bir ağdır ve performans için iyidir.

```lua
local mat = Material( "editor/wireframe" ) -- Materyal (bir tel kafes)
local obj = Mesh() -- IMesh nesnesini oluştur

local verts = { -- Bir üçgen oluşturan 3 köşe noktasından oluşan bir tablo
	{ pos = Vector( 0,  0,  0 ), u = 0, v = 0 }, -- Köşe 1
	{ pos = Vector( 10, 0,  0 ), u = 1, v = 0 }, -- Köşe 2
	{ pos = Vector( 10, 10, 0 ), u = 1, v = 1 }, -- Köşe 3
}

mesh.Begin( obj, MATERIAL_TRIANGLES, 1 ) -- Statik ağa yazmaya başla
for i = 1, #verts do
	mesh.Position( verts[i].pos ) -- Konumu ayarla
	mesh.TexCoord( 0, verts[i].u, verts[i].v ) -- Doku UV koordinatlarını ayarla
	mesh.AdvanceVertex() -- Köşe noktasını yaz
end
mesh.End() -- IMesh'e yazmayı bitir

hook.Add( "PostDrawOpaqueRenderables", "MeshLibTest", function()

	render.SetMaterial( mat ) -- Materyali uygula
	obj:Draw() -- Ağı çiz
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/mesh.Begin
