holodepth

Holodepth • Bilim temelleri • Geometri

Sahnenin şekli

Bir objenin “nasıl göründüğü” ile “ne şekli olduğu” aynı şey değildir. Geometri; vertex, yüz ve normal ile ayrık bir şekil tanımlar. Materyal ve ışık bu şekli boyar normal map dersi burada yeniden yazılmaz.

Bu sayfa BufferGeometry API sözlüğü değildir. Soru: şekil bilgisi sahneye hangi katmanlarda girer? Cevap: nokta → yüz → normal → (UV) → görünüm; collider ayrı sözleşmedir.

Okuma sözleşmesi: burada geometri sahne dilinde anlatılır. Yerleşim için Sahnenin hesabı; dinamik için Sahnenin dinamiği; Buffer / UV / normal-map derinliği için Geometri giriş, UV mapping, Normal map.

Canlı demo: Shape Stack

Aynı dodecahedron geometrisi dört katmanda açılır: noktalar → kenarlar → normal okları → gölgeli yüzey. Transform ve fizik kapalı; yalnızca şeklin bilgi katmanları değişir. Bu tek görüntü, aşağıdaki tüm bölümlerin özeti: şekil önce tanımlanır, görünüm sonra gelir.

Bilim · Geometri · CANLI

Vertices → faces → normals → shaded mesh · tek BufferGeometry

Katman 1 Vertices (konum örnekleri)

Şekil ≠ görünüm

BufferGeometry konum (ve genelde normal / UV) öznitelikleri taşır: “bu örnekler uzayda nerede ve yüzeye nasıl bağlı?” Material bu örnekleri nasıl boyayacağını söyler. Işık yoksa Standard materyal koyu kalır şekil hâlâ oradadır; görünüm eksiktir.

görünüm ≈ geometri × materyal × ışık × (opsiyonel map)

Sahne sezgisi

“Objem çirkin” şikâyeti bazen geometri (az üçgen, bozuk normal), bazen materyal / ışık, bazen UV / map sorunudur. Shape Stack önce şekli izole eder; böylece hangi katmanın suçlu olduğu ayrılır.

Matematik sayfasındaki transform bu şekli sahneye yerleştirir; fizik sayfasındaki entegrasyon yerleşimi zamanla değiştirebilir. Hiçbiri “kaç üçgenim var?” sorusunu cevaplamaz o bu sayfanın işidir.

Vertex: konum örnekleri

Vertex (köşe), şeklin temel örneğidir: en azından bir (x, y, z) konumu. GPU tarafında bunlar position attribute buffer’ında yatar. Shape Stack’in ilk katmanı yalnızca bu nokta bulutunu gösterir henüz yüzey yoktur; sadece “örnekler nerede?” sorusu.

Vertex ne değildir?

Tek başına vertex “yüzey” demek değildir. Bağlantı (index / yüz) olmadan render çoğu zaman noktalar veya hiç üçgen çizmez. Ayrıca bir vertex yalnızca konum taşımak zorunda değildir: normal, UV, renk, tangent… aynı indekse bağlanabilir. Ama konum olmadan şekil yok.

Derinlik: Attributes & bufferlar.

Yüz, üçgen ve index

GPU neredeyse her şeyi üçgen olarak çizer. Bir yüz (face), üç vertex indeksinin birleşimidir: “şu üç örneği birleştir, bir yama oluştur.” Index buffer, aynı vertex’i birden fazla üçgende paylaşarak belleği ve tutarlılığı korur.

Shape Stack’in ikinci katmanı kenar / wireframe ile bu ağı gösterir. Noktalar hâlâ aynı geometridir; değişen şey, bağlantının görünür olmasıdır. Düşük üçgen sayısı → kaba siluet; yüksek sayı → maliyet. “Ne kadar detay?” sorusu hem görsel hem performans kararıdır Geometry optimization.

Matematik köprüsü

Vertex konumları local uzayda tanımlıdır; world’e transform hesabı ile çıkarlar. Geometri “şekli yazar”; matematik “şekli sahneye taşır”. İkisi karışırsa “model yanlış yerde / eğri” bug’u yanlış katmanda aranır.

Normal: geometriden ışığa

Normal, yüzeyin “dışarı” birim vektörüdür. Aydınlatma modelleri tipik olarak n · L (normal ile ışık yönü) ile parlaklık üretir. Kaynağı çoğu zaman geometri attribute’udur (normal); flat shading yüz normali, smooth shading vertex normali kullanır.

Geometri normali ≠ normal map

Shape Stack’in üçüncü katmanı oklarla geometri normalini gösterir. Normal map ise bu yönü dokuyla bozar / zenginleştirir üçgen eklemeden detay hissi. Bu sayfa normal map dersi değildir; köprü: Normal map.

Bozuk veya ters normal → karanlık yüz, “içinden aydınlanmış” mesh, yanlış yansıma. “Materyal bozuk” sanılan birçok bug, aslında normal / winding order sorunudur.

UV: dokunun adresi

Vertex konumları 3D şekli yazar. UV ise her köşeye 2D doku uzayında bir adres verir: (u, v) tipik olarak [0, 1] aralığında. Geometri “ne şekli?”; UV “bu şeklin üzerine doku nasıl gerilecek?” sorusunu taşır. İkisi aynı buffer ailesindedir ama farklı uzaylardır karıştırılmamalıdır.

UV ne yapar, ne yapmaz?

Diffuse, normal map, roughness map… hepsi UV üzerinden örneklenir. Adres doğruysa doku yüzeye oturur; yanlışsa “yırtık”, “kaymış”, “tek renk leke” veya dikiş (seam) artefaktları görünür. Bu durumda şekil (üçgen ağı) çoğu zaman doğrudur eksik olan adresleme katmanıdır.

UV, üçgen sayısını artırmaz. Detay hissi için normal map kullanmak geometriyi değiştirmez; yalnızca ışığın okuduğu yönü dokuyla bozar (önceki bölüm). UV olmadan o map’ler de doğru yere bağlanamaz.

Sahne sezgisi

Shape Stack bilinçli olarak UV göstermez: önce vertex → yüz → normal → gölge zinciri. Doku adresi, şekil katmanları oturduktan sonra eklenen bir katmandır “önce siluet, sonra kaplama”.

Sık görülen UV hataları (sezgi)

  • Eksik / sıfır UV: map tek noktadan örneklenir → düz renk veya gürültü.
  • Ölçek / tekrar (tiling) yanlış: doku “devasa” veya “sivrisinek” gibi görünür; şekil aynıdır.
  • Seam / ada (island) çakışması: dikiş çizgileri, ayna gibi tekrarlayan lekeler.

Bu sayfa unwrap / packing öğretmez. Uygulama yüzeyi: UV mapping.

Görünen şekil ≠ collider

Render geometrisi “kameranın gördüğü” ağdır: yüksek detay, normal, UV, materyal. Fizik collider’ı ise “dünyanın çarpışma için sorduğu” sadeleştirilmiş şekildir kutu, küre, kapsül, convex hull, bazen heightfield. İkisi aynı mesh olmak zorunda değildir; çoğu prodüksiyonda bilinçli olarak değildir.

Neden ayrı tutulur?

  1. Maliyet: her karede binlerce üçgenle dar faz testi pahalıdır; kutu/küre ucuzdur.
  2. Kararlılık: ince çıkıntılar, içbükey boşluklar, non-manifold kenarlar fizikte “takılma” ve tunnelling üretir; basit gövde daha öngörülebilirdir.
  3. Sözleşme: görsel sanatçı silueti güzelleştirir; fizik tasarımcısı oynanabilir hacmi seçer. İkisini tek mesh’e kilitlemek her iki tarafı da bozar.

Küçük örnek

Oyuncu karakteri: görünen mesh saç, kıyafet kıvrımı, parmak detayı taşır. Collider çoğu zaman tek kapsül veya birkaç kutudur. Ağaç: binlerce yaprak üçgeni; fizikte gövde silindiri + belki basit taç küresi. “Güzel mesh = iyi collider” varsayımı burada kırılır.

Şekil katmanı vs tespit katmanı

Bu sayfa “kaç üçgen / hangi attribute?” sorusunu sorar. Çarpışmada geniş faz (AABB) → dar faz → impulse sırası ise tespit ve tepki boru hattıdır geometri attribute’u değildir. Rest or Fall zemini bile render küresi ile aynı fikri paylaşır ama tepki kuralı ayrıdır.

Fizik köprüsü

Dinamik entegrasyon, tepki ve geniş/dar faz Sahnenin dinamiği’nde köprülenir. Bu sayfanın uyarısı tek cümlede: güzel mesh ≠ iyi collider. Yüksek poly görünen model, fizikte basit bir kutuya oturabilir ve çoğu zaman oturmalıdır.

Üç bilim, bir mesh

Ekranda tek bir Mesh görürsün: bir geometri, bir materyal, bir transform. Bilim temelleri bu paketi üç ayrı soruya böler. Sorular aynı nesneye bakar; cevapları farklı katmanlarda yazılır. Birini diğerinin yerine koymak, bug’u yanlış sayfada aratır.

Üç soru

Bilim Soru Kısa cevap Köprü
Geometri Ne şekli? Vertex → yüz → normal → (UV) Bu sayfa
Matematik Nerede / hangi oryantasyon? TRS, matris, local → world Sahnenin hesabı
Fizik Zamanla nasıl değişir? Kuvvet → ivme → hız → konum (+ tepki) Sahnenin dinamiği

Geometri: şekli kim yazar?

Buffer’daki konum, index, normal (ve opsiyonel UV) şekli tanımlar. Shape Stack’in katmanları tam bu sorunun adımlarıdır. Materyal ve ışık henüz “görünüm”dür; collider henüz “çarpışma şekli”dir ikisi de bu sorunun yerine geçmez.

Matematik: şekli kim yerleştirir?

Aynı şekil, farklı position / rotation / scale (ve parent zinciri) ile başka yerde durur. Matematik, local tanımı world sonucuna çevirir. “Model eğri / yanlış yerde” çoğu zaman geometri değil, transform hesabıdır Sahnenin hesabı.

Fizik: yerleşimi kim zamanlar?

Three.js çekirdeği hız tutmaz; mesh asılı kalabilir. Fizik (sen veya motor) her Δt diliminde hız / konum entegre eder, temasta tepki yazar. Bu katman opsiyoneldir: statik bir heykel için geometri + matematik yeter Sahnenin dinamiği.

Sahne sezgisi

Bir mesh “bozuk” göründüğünde sırayla sor: şekil mi (geometri), yer mi (matematik), hareket / tepki mi (fizik), yoksa boya mı (materyal / ışık / map)? Üç bilim köprüsü ilk üçünü ayırır; dördüncü uygulama sayfalarına aittir.

Şekil yığını sözlüğü

Aşağıdaki tablo geometri sorusunun iç katmanlarıdır üç bilim tablosuyla karışmaz. Vertex’ten görünüme giden yığın; collider bilinçli olarak “ayrı sözleşme” satırında durur.

Katman Taşıdığı bilgi Olmazsa
Vertices Nokta bulutu (konum örnekleri) Şekil yok
Faces / index Üçgen bağlantısı Yüzey yok (yalnızca nokta)
Normals Yüzey yönü Düzgün gölge zor
UV (opsiyonel) Doku adresi Map “yırtılır” / tek renk
Material + light Görünüm Şekil var, “resim” yok
Collider (ayrı) Çarpışma şekli Dinamik tepki yok / yanlış gövde

Özet: bir mesh üç bilimi taşıyabilir; her bilim tek bir soruyu cevaplar. Shape Stack şekli izole eder; Transform Ledger yerleşimi; Rest or Fall dinamiği. Üç demo, üç soru aynı Holodepth sözleşmesi.

Sık karışan noktalar

  • “Geometri = materyal.” Hayır. Geometri şekil; materyal boya. Işık ikisini birleştirir.
  • “Normal map = geometri normali.” Hayır. Biri attribute, diğeri doku ile yön bozma Normal map.
  • “Güzel mesh = fizik gövdesi.” Hayır. Collider ayrı sözleşmedir Sahnenin dinamiği.
  • “Yanlış yerde = bozuk geometri.” Çoğu zaman transform / parent hesabıdır Sahnenin hesabı.