mesh.Begin

  mesh.Begin( IMesh mesh, number primitiveType, number primitiveCount )
  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 içinde saklanabilir.

Varsayılan Argümanlar

1 IMesh mesh
Oluşturulan ağın saklanacağı 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 primitiveType
Ağın ilkellerinin (primitives) formatının ne olacağını belirten bir enum.
Mevcut seçeneklerin tam listesi için MATERIAL enum sayfasına bakın.
3 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 sayfasına bakın.

Argüman Aşırı Yüklemesi: Dinamik Bir Ağ Oluşturma
1 number primitiveType
Ağın ilkellerinin (primitives) formatının ne olacağını belirten bir enum.
Mevcut seçeneklerin tam listesi için MATERIAL enum sayfasına bakın.
2 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 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.

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.

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 )

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