holodepth

3D Model Formatları · OBJ · Temel Yapı

UV Verileri: OBJ'de vt Listesi ve Doku Adresi

«Materyal bağlandı, doku kayık veya aynalı» çoğu zaman yanlış map_Kd yolu değil; vt havuzu veya V ekseni sözleşmesidir. Normal Verileri shading yönünü sabitledi; Temel Yapı'nın son listesi doku adresine geçer: her köşe doku düzleminde nereyi örnekler?

Holodepth'te OBJ UV, görüntü dosyasının kendisi değildir. Görüntü yolu MTL'dedir; vt yalnızca (u, v) [isteğe bağlı w] adres havuzudur. Face köşesi v/vt veya v/vt/vn ile bu havuza bağlanır. glTF'deki çok kanallı TEXCOORD_n ve textureInfo.texCoord köprüsü UV Channels (glTF) sayfasındadır; bu sayfa Wavefront'un klasik tek vt listesini ve seam / V-flip gerçeklerini anlatır.

Sayfayı bitirdiğinizde şu cümleyi kurabilmelisiniz: «OBJ UV = 1-based vt havuzu; face köşesinde seçilir. Klasik dosyada tek liste vardır; çok set glTF/modern pipeline işidir. Seam aynı konumda farklı vt (veya duplicate v) ister. V ekseni DCC ile GPU arasında sık ters çevrilir. map_Kd yolu vt değildir; MTL Sistemi ayrıdır.»

Bu sayfanın sınırı · komşu konularla ayrım

Bu sayfa OBJ doku koordinat listesini anlatır:

  • vt satır sözdizimi ve anlamı
  • Face'te UV seçimi (bağlantı, slash dersi değil)
  • Seam, tiling, aralık dışı değerler
  • V ekseni / flip sözleşmesi
  • Eksik vt ve dokusuz yüz
  • Temel Yapı kapanışı → MTL'ye geçiş

Bilinçli olarak dışarıda bırakılan konular:

Kısa ayrım: vt (OBJ) «doku adresi metinde» · TEXCOORD (glTF) «UV attribute binary'de» · MTL map_* «hangi görüntü dosyası?»

Adres zarfı, mektup değil

Zihin modeli: posta kodu vs koli

  • vt = posta kodu (dokuda nereye bakılacak).
  • MTL map_Kd = kolinin içindeki fotoğraf.
  • Face /vt = hangi posta kodu hangi köşeye yapıştırılacak.
  • Yanlış kod + doğru fotoğraf = kayık doku; doğru kod + kırık yol = beyaz yüzey.

Temel Yapı dört listesi tamamlanınca mesh «şekil + ışık yönü + doku adresi» taşır; hâlâ hangi PNG'nin yükleneceği bilinmez. Bu ayrım çoğu tutorial'da karışır: «UV yok» sanılan dosyada aslında vt vardır ama map_Kd 404'tür; tersi de geçerlidir. Holodepth debug sırası: önce Network/MTL yolu, sonra vt envanteri, en son shader.

Temel Yapı kapanış zinciri (tablo değil, okuma sırası): vfvnvt (bu sayfa) → MTL Sistemi.

vt satırı: u, v ve isteğe bağlı w

vt u v
vt u v w
# Tipik [0,1]×[0,1] aralığı; tiling için >1 veya <0 da görülür
vt 0.0 0.0
vt 1.0 0.0
vt 0.5 1.0
vt 2.5 0.25

u yatay, v dikey doku eksenidir (isimlendirme geleneği; eksen yönü aşağıda). Üçüncü bileşen w çoğu web pipeline'ında yok sayılır veya 1.0 varsayılır; rational UV / özel CAD export'ta anlam taşıyabilir. Holodepth: üretim OBJ'de iki bileşenli vt tercih edin; w ≠ 1 görürseniz dönüştürücü politikasını yazın.

Liste global ve 1-based'tir: ilk vt indeks 1. Face'te 2/5/1 demek «ikinci v, beşinci vt, birinci vn»dır; indeks semantiği Vertex Listesi · indeks ile aynı ailede, ayrı havuzda yaşar.

V ekseni: DCC ile GPU arasında flip

OBJ dosyası «V'nin yukarı mı aşağı mı» olduğunu kilitlemez; pratik ekosistem çatışması üretir. Birçok DCC UV editörü V=0'ı altta veya üstte gösterir; OpenGL tarzı örnekleme sıkça V=0 altta kabul eder; bazı tool'lar import'ta 1 - v uygular.

Flip teşhisi (kısa)
Semptom Muhtemel kök
Yazı / logo baş aşağı V flip bir kez fazla veya eksik
Sadece dikey kayma Offset + flip karışımı
Blender doğru, web ters Export vs loader flip politikası

Holodepth kuralı: pipeline'da tek flip noktası seçin (export veya loader). Hem export'ta hem loader'da flip, iki kez ters çevirir ve «düzgün görünür» sanılıp başka projede kırılır. glTF'ye çevirirken aynı politikayı sabitleyin; kanal semantiği UV Channels'ta kalır.

Face köşesinde UV seçimi

vt 0.0 0.0
vt 1.0 0.0
vt 0.5 1.0
f 1/1 2/2 3/3
# Konum indeksi ≠ UV indeksi zorunlu değil:
f 10/1 11/2 12/3

Slash biçimlerinin tam sözlüğü Face Tanımları · slash'tadır. Bu sayfanın vurgusu: UV indeksi konum indeksinden bağımsızdır. Aynı spatial köşe (aynı v) farklı yüzlerde farklı vt alabilir; bu seam'in format dilidir.

f 1 2 3 (vt yok) dokusuz veya loader varsayılan (0,0) demektir. Karışık dosyada bazı face'lerde vt, bazılarında yoksa «yarım dokulu» mesh oluşur; tutarlı şablon Face sayfasındaki kısmi bileşen uyarısıyla aynı ailededir.

Seam yürüyüşü: neden UV «köşe çoğaltır»?

Silindirin dikey dikişi tek 3D konumda iki UV adresi ister: bir yüz u=0, komşu yüz u=1. OBJ bunu şu yollardan biri ile taşır:

  1. Aynı v, face token'larında farklı vt
  2. Duplicate v + her kopyaya kendi vt ( Vertex Listesi · tekrar)

glTF export'ta seam neredeyse her zaman köşe bölünmesine (aynı POSITION, farklı TEXCOORD) dönüşür; indexed geometry maliyeti UV Channels · seam tarafında işlenir. OBJ okuyucusu şunu hatırlar: seam = topoloji değil adres çatışması; face bağlantısı ile çözülür.

Hard edge shading için farklı vn; UV seam için farklı vt. İkisi aynı export'ta üst üste binebilir: bir kenar hem keskin hem dikişliyse hem vn hem vt ayrılır.

[0,1] dışı değerler ve tiling

Spec UV'yi [0,1] ile sınırlamaz. vt 3.2 0.1 geçerli bir tiling sinyalidir: sampler wrap modu (repeat / clamp / mirror) MTL veya runtime'da belirlenir; OBJ vt yalnızca sayıyı taşır. Clamp varsayılanlı loader'da tiling «kenarda yapışık» görünür; sorunu vt değil wrap ayarıdır.

  • Negatif UV: mirror/offset; bazı viewer'lar clamp eder
  • >1 tiling: tuğla / zemin tekrarları
  • Dar ada [0.2,0.3]: atlas dilimi; yanlış atlas = yanlış dilim

Holodepth: atlas kullanıyorsanız vt aralığını atlas dilim dokümantasyonuyla kilitleyin; «model UV bozuk» sandığınız şey sıkça yanlış dilim ofsetidir.

vt yoksa ne olur?

CAD veya nokta bulutu kökenli OBJ'lerde vt hiç olmayabilir. Mesh yine çizilir; doku örneklemesi ya atlanır ya sabit UV'ye düşer. Scan / static mesh kullanımında «UV unwrap sonra» ayrı iş paketidir; format zorunlu kılmaz.

Kısmi eksiklik (bazı obje gruplarında vt var, bazılarında yok) e-ticaret vitrininde «gövdede logo, koltukta düz renk» gibi bilinçli olabilir. Holodepth envanteri: vt sayısı, face'te vt kullanan yüz oranı, dokusuz o/g listesi.

Klasik OBJ: tek UV listesi

Wavefront OBJ pratikte tek global vt havuzu taşır. Lightmap + albedo için iki unwrap isteyen modern oyun pipeline'ı klasik OBJ ile zorlanır; ikinci set genelde ayrı dosya, vendor uzantısı veya doğrudan glTF'ye geçişle çözülür. Bu yüzden Holodepth web dağıtımında OBJ ara format, glTF nihai pakettir ( Neden glTF).

Çok kanallı UV semantiği, TEXCOORD_1 ve materyal texCoord seçimi glTF sayfasının işidir; burada yalnızca «OBJ tek liste sınırını bilin» notu sabitlenir. Limitleri grubundaki özellik boşluklarıyla aynı ailededir.

Holodepth perspektifleri (OBJ UV gerçekleri)

Aynalı UV ve negative scale

Mirror modifier / negatif scale export'ta UV adaları ters dönebilir; winding ile birlikte «içi dışarı + ters logo» çifte hata üretir. Önce Face · winding, sonra vt min/max ve ada yönünü kontrol edin.

Degenerate UV üçgeni

Üç köşe aynı vt indeksine veya aynı (u,v) noktasına map'lenirse doku alanı sıfırdır; lighting düzgün, albedo «tek renk leke» olur. Face degenerate'den farklıdır: 3D üçgen sağlam, UV üçgeni çökmüştür.

Ada yoğunluğu vs texel

Format texel yoğunluğunu taşımaz; vt yalnızca normalize adres verir. Küçük ada + büyük mesh yüzeyi = bulanık baskı. Bu sanat/unwrap kararıdır; OBJ «yanlış» demez. Holodepth QA: önemli yüzeylerin UV ada alanını ekranda checker ile doğrulayın.

Önce vt mi map mı?

Import script'leri bazen MTL'yi vt'den önce yükler. Sıra ters olsa bile bağlama face parse sonrası tamamlanır; asıl risk «usemtl değişti, eski vt kaldı» senkron hatasıdır. MTL Sistemi material bağlantısı bunu derinleştirir.

Seam / flip yürüyüşü (teşhis)

  1. En az bir vt var mı?
  2. Face'lerde /vt bileşeni kullanılıyor mu?
  3. Checker / grid doku düz mü, yoksa V-flip mi?
  4. Dikiş kenarında iki farklı vt mi?
  5. vt aralığı atlas dilimiyle örtüşüyor mu?
  6. map_Kd 200 mü, yoksa yol mu kırık? (MTL)
  7. glTF export sonrası TEXCOORD_0 dolu mu?

Holodepth içgörüsü

«Doku bozuk» ticket'ında önce PNG'yi değiştirmek yerine tek renk checker koyun. Kayma / flip / seam checker'da görünür; materyal formülü değil vt sözleşmesidir. Checker düzgün, albedo bozuksa o zaman MTL veya atlas dilimine geçin.

Temel Yapı kapanır; MTL Sistemi açılır

Dört liste tamam: konum, topoloji, normal, UV. Sıradaki Holodepth OBJ dalı «hangi materyal / hangi görüntü?» sorusuna geçer:

  1. Material Dosyası Materyal Dosyası (.mtl)
  2. Texture Referansları (map_Kd ve ailesi)
  3. Material Bağlantısı (usemtl, mtllib)

Format okuyucusu özeti: vt = doku adresi havuzu; face'te seçilir; klasik OBJ'de tek listedir. Seam farklı vt ister; V-flip pipeline'da tek noktada çözülür. Görüntü dosyası MTL'dedir; glTF çok kanallı UV'ye köprü dönüşümdedir.