Mesh nedir?
- Oyun Geliştirme kursu
- Orta seviye
- Ders 1/83
- 4 dk
Mesh'in 3D geometri taşıyan veri yapısı olduğunu öğrenirsin.
Mesh ve Vertex Kavramı
Mesh, 3D bir nesnenin geometrik şeklini tanımlayan temel veri yapısıdır. En küçük yapı taşı, 3D uzaydaki nokta koordinatlarını tutan köşelerdir (vertices). Bu köşeler C# tarafında Vector3 dizisi olarak saklanır.
Vector3[] koseler = mesh.vertices;
Debug.Log("Köşe sayısı: " + koseler.Length);Üçgenler ve Yüzeyler (Triangles)
Köşe noktaları tek başına bir yüzey oluşturmaz; ekran kartının yüzey çizebilmesi için üçerli gruplar halinde üçgenlere bağlanır. mesh.triangles, köşelerin hangi sırayla birleşip yüzey oluşturacağını belirten tam sayı (int) indeks dizisidir. Her üç köşe indeksi bir üçgen yüzeyi meydana getirir.
int[] ucgenler = mesh.triangles;
int ucgenSayisi = ucgenler.Length / 3;Uygulama Mesh Köşe ve Üçgen Analizi
Verilen mesh nesnesinin köşe sayısını ve üçgen sayısını hesapla. Köşe sayısını Debug.Log("Kose: " + koseSayisi);, üçgen sayısını Debug.Log("Ucgen: " + ucgenSayisi); ile yazdır.
Başlangıç kodu
using System;
public struct Vector3
{
public float x, y, z;
public Vector3(float x, float y, float z) { this.x = x; this.y = y; this.z = z; }
}
public class Mesh
{
public Vector3[] vertices = new Vector3[4];
public int[] triangles = new int[6];
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
Mesh mesh = new Mesh();
// kose ve ucgen sayilarini hesaplayip konsola yazdir
}
}Örnek çözüm
using System;
public struct Vector3
{
public float x, y, z;
public Vector3(float x, float y, float z) { this.x = x; this.y = y; this.z = z; }
}
public class Mesh
{
public Vector3[] vertices = new Vector3[4];
public int[] triangles = new int[6];
}
public static class Debug
{
public static void Log(object message) => Console.WriteLine(message);
}
public class Program
{
public static void Main()
{
Mesh mesh = new Mesh();
int koseSayisi = mesh.vertices.Length;
int ucgenSayisi = mesh.triangles.Length / 3;
Debug.Log("Kose: " + koseSayisi);
Debug.Log("Ucgen: " + ucgenSayisi);
}
}Beklenen çıktı
Kose: 4 Ucgen: 2
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 3D bir mesh yapısında uzaydaki köşe noktalarının koordinatlarını tutan temel dizi hangisidir?
- vertices Doğru cevap
- colors
- normals
- uv
Açıklama: vertices dizisi, mesh geometrisini oluşturan tüm köşe koordinatlarını Vector3 formatında tutar.
2 Köşe Dizisini Oku
Vector3[] noktalar = mesh.____;
Vector3[] noktalar = mesh.vertices;
Açıklama: Mesh üzerindeki tüm köşe noktalarını okumak için vertices özelliği kullanılır.
3 Mesh Veri Yapısı
| Kavram | Anlamı |
|---|---|
vertices |
3D uzaydaki köşe noktaları dizisi |
triangles |
Yüzeyleri oluşturan köşe indeks dizisi |
Mesh |
3D geometrik şekli tutan veri yapısı |
triangles.Length / 3 |
Mesh üzerindeki toplam üçgen sayısı |