3D Model Formatları · OBJ · Limitleri
Büyük Dosya Boyutu: OBJ'nin Metin Şişkinliği ve Taşıma Maliyeti
«Aynı mesh glTF'de 8 MB, OBJ'de 40 MB» sihirli sıkıştırma farkı değil; sayıların nasıl yazıldığı farkıdır. PBR Yok yüzey dilini kapattı; Limitleri'nin dördüncü boşluğu: ASCII geometri, yüksek ondalık ve yan paket yükü web bütçesini yer.
Holodepth'te «büyük dosya» yalnızca diskte MB saymak değildir. OBJ satır satır
insan okunur metindir: her v, vt, vn,
f karakter dizisidir. Aynı köşe konumları glTF'de çoğu zaman
sıkışık float32 buffer'dır. Bu sayfa glTF byte envanterini
(Dosya Boyutu Analizi) tekrar etmez; OBJ'nin
neden şiştiğini, gzip'in neyi kurtarıp neyi kurtarmadığını ve ürün
kararını sabitler. OBJ vs glTF sayı karşılaştırması ayrı dalda kalır.
Sayfayı bitirdiğinizde şu cümleyi kurabilmelisiniz: «OBJ boyutu geometri karmaşıklığından + ASCII yazımdan + gereksiz precision / tekrar / yan dokulardan gelir. gzip transferi küçültür; parse duvarı kalır. Web nihai paket için binary glTF/GLB; OBJ CAD–arşiv–ara handoff'ta kalsın. Limitleri grubu burada kapanır; sırada OBJ'nin nerede hâlâ doğru araç olduğu gelir.»
Bu sayfanın sınırı · komşu konularla ayrım
Bu sayfa OBJ ekosisteminin boyut ve taşıma maliyeti limitini anlatır:
- ASCII yazım vergisi ve satır yapısı
- Precision, tekrar, indeks şişkinliği
- Transfer vs parse duvarı
- .mtl + doku yan yükü (paket)
- Ne zaman büyük OBJ kabul; Holodepth teşhisleri
Bilinçli olarak dışarıda bırakılan konular:
v/f/vn/vtsözdizimi derinliği → Temel Yapı- Animasyon / skeleton / PBR yokluğu → önceki Limitleri sayfaları
- glTF kalem envanteri, Draco, KTX2, GLB chunk → Dosya Boyutu Analizi (glTF)
- OBJ vs glTF sayı tabloları → OBJ vs glTF · Dosya Boyutu
- Runtime FPS / draw call → glTF Runtime Performans / Three.js
- CAD kullanım senaryosu → Kullanım Alanları
Kısa ayrım: Büyük Dosya (OBJ) «metin neden şişer?» · Dosya Boyutu Analizi (glTF) «paket kalemleri nasıl okunur?» · Vertex Listesi «v satırı ne anlama gelir?»
Prose fatura: sayılar kelime gibi
Binary mesh, köşe konumunu birkaç baytta saklar. OBJ aynı konumu
v 1.23456789012345 -0.000012345 42.0 gibi karakter dizisine
çevirir: rakamlar, işaret, nokta, boşluk, satır sonu. Bir milyon köşede bu
«kelime vergi»si megabaytlara çıkar; üçgen indeksleri de metin olarak
tekrarlanır.
Faturayı el yazısıyla çoğaltmak ile barkod okutmak aynı tutarı taşır; kâğıt ve okuma süresi farklıdır. OBJ el yazısı faturadır.
Bu yüzden limit «OBJ kötü format» değil; web dağıtımında metin geometri pahalıdır. İnsan okunurluk ve DCC/CAD köprüsü bu pahayı tarihsel olarak ödediği için format yaşar.
Şişkinliği besleyen sürücüler
Holodepth teşhis dilinde OBJ paketinin büyümesi genelde birkaç sürücünün çarpımıdır (tek suçlu aramayın):
- Köşe / face sayısı: asıl bilgi miktarı (her formatta vardır)
- ASCII kodlama: float ve indeksin karakter olarak yazımı
- Ondalık aşırılığı: 12–16 hane export varsayılanı
- Öznitelik tekrarı: weld edilmemiş v/vt/vn kopyaları
- Face satır uzunluğu:
i/j/küçlüsü metin şişmesi - Yan yük: .mtl + çoklu PNG/JPEG (OBJ dosyası dışı ama ZIP bütçesi)
- Yorum / yedek satırlar: DCC metadata metni
«Mesh ağır» ile «yazım ağır»ı ayırmak şarttır. Decimate bilgiyi azaltır; precision kırpma ve binary hedef yazımı vergiyi azaltır. İkisi farklı ilaçtır.
Precision vergisi: gerekenden uzun rakam
Birçok export aracı float'ı mümkün olan en uzun ondalıkla yazar. GPU'da
position çoğu zaman float32'dir; diskte 15 hane yazmak görsel doğruluğu
artırmaz, dosyayı şişirir. CAD'ten gelen kilometre ölçekli modellerde uzun
bilimsel gösterim (1.23e+005) de satır uzunluğunu büyütür.
Holodepth pratik ayrımı: arşiv/CAD handoff'ta yüksek precision anlamlı olabilir; web preview OBJ'sinde 4–6 anlamlı ondalık çoğu prop için yeter. Precision politikası Temel Yapı'daki konum anlamından ayrı bir bütçe kararıdır; burada yalnızca maliyet vurgulanır.
İndeks metni: face satırının gizli kilosu
Binary index buffer'da bir üçgen birkaç küçük tamsayıdır. OBJ'de tipik satır
f 12045/12045/12045 12046/12046/12046 12047/12047/12047 gibi
uzun bir cümledir: slash'ler, boşluklar, tekrarlanan rakam dizileri. Yüksek
indeks numaralarında (altı haneli) her face satırı belirgin şişer.
Quad / n-gon export yüz satırını daha da uzatır; triangulate sonrası satır sayısı artar ama satır başına karakter bazen kısalır. Net etki modele göre değişir; ölçmeden «quad daha küçük» demeyin. Face semantiği Face Tanımları'nda; burada yalnızca byte etkisine bakılır.
Weld yokluğu: aynı nokta, üç kez yazılmış
Sert kenar, UV dikişi veya «her face kendi köşesi» export politikası aynı
uzay noktasını birden fazla v satırı olarak yazabilir; vt/vn
havuzları da şişer. Görsel olarak mesh doğru, diskte kopya fazladır.
Vertex Listesi welding anlamını anlatır; bu
sayfa onu boyut sürücüsü olarak hatırlatır.
Scan / CAD dense mesh'te zaten yüksek köşe sayısı vardır; üstüne unweld politikası eklenirse OBJ web için hızla «taşınamaz» olur. Çözüm bazen decimate, bazen weld, bazen format değişimidir; üçünü karıştırmayın.
İki duvar: transfer ve parse
glTF boyutu sayfasındaki «transfer / disk / runtime» üçlüsünü burada kopyalamıyoruz. OBJ özelinde iki duvar öne çıkar:
- Transfer duvarı: CDN'den inen bayt. ASCII iyi gzip/brotli alır; 40 MB dosya 8 MB inebilir. Bu, «OBJ artık küçük» yanılsaması üretir.
- Parse duvarı: tarayıcı metni satır satır okuyup float'a çevirir. Sıkıştırma açıldıktan sonra CPU maliyeti büyük kalır; binary buffer kopyasına göre yavaştır.
Holodepth kuralı: Network panelinde «küçüldü» görmek ürün onayına yetmez. İlk boyama / loader süresi parse duvarını gösterir. Büyük OBJ + gzip = ucuz kablo, pahalı ana işlemci.
Transfer zaferi, parse yenilgisini gizleyebilir. Ölçümü her iki duvarda yapın.
Yan kargo: .mtl ve doku çantası
«OBJ dosyası 2 MB» deyip ZIP'in 80 MB olması sık görülür: onlarca 4K PNG, tekrarlayan albedo, bake edilmiş lightmap. .mtl kendisi küçüktür; map_* yollarının işaret ettiği görüntüler paketi şişirir. Yol sözleşmesi Texture Referansları'nda; burada paket bütçesi vurgulanır.
PBR Yok sayfası «klasör adı yükseltmez» dedi; bu sayfa ekler: kullanılmayan PBR yan dosyaları ZIP'i yine şişirir. Loader okumasa bile indirme bütçesine girerler. Dağıtım ZIP'ini «gerçekten referans edilen map'ler» ile kırpın.
Sahte çözümler ve yarım ilaçlar
- «Yalnızca gzip aç»: transferi iyileştirir; parse ve bellek baskısını silmez.
- «Yorum satırlarını sil»: marjinal kazanç; asıl yük v/f metnidir.
- «MTL'yi göm»: OBJ core embedding bilmez; tek dosya hayali format dışı hiledir.
- «Daha fazla o/g böl»: boyut düşürmez; bazen tekrar artırır.
- «Draco'yu OBJ'ye uygula»: Draco glTF/uzantı dünyasınındır; Wavefront satırına işlemez.
Gerçek kollar: geometri sadeleştirme, weld, precision politikası, doku çözünürlüğü, ve mümkünse binary glTF/GLB hedefi. Yarım ilacı ürün vaadi yapmayın.
Ne zaman büyük OBJ kabul edilir?
- CAD / mühendislik arşivi: insan okunur, diff edilebilir metin değerli
- Offline laboratuvar / dahili NAS: indirme bütçesi yok
- Tek seferlik DCC handoff: web CDN değil, sanatçı klasörü
- Küçük prop (düşük köşe): ASCII vergisi önemsiz kalır
- Pipeline'ın bilinçli ara adımı: hemen glTF'e dönüşecek kaynak
Mobil ilk yükleme, e-ticaret 3D, çoklu model vitrin → büyük ASCII OBJ nihai paket olmasın. Kullanım Alanları (CAD, scan, static mesh) «nerede doğru araç?» sorusunu açar; bu sayfa yalnızca maliyet filtresini koyar.
Kaçış yolu: binary paket (köprü)
Web dağıtımında hedef genelde GLB veya sıkıştırılmış glTF + doku stratejisidir. Dönüştürücü ASCII'yi float buffer'a indirir; isteğe bağlı Draco/meshopt geometri kalemini daha da küçültür. Bu mekanizmaların kalem kalem okunması Dosya Boyutu Analizi (glTF)'ndedir.
Holodepth kuralı: OBJ'yi «gzip ile idare ederiz» diye üretim CDN'ine koymayın. Kaynak OBJ kalsın; yayın binary olsun. Ara adımda precision kırpma ve doku eleme, dönüşüm öncesi maliyeti düşürür.
Holodepth perspektifleri
Repo yalanı
Git'teki .obj boyutu ile kullanıcının yaşadığı süre farklı metriklerdir. LFS, ZIP, gzip, parse süresi ayrı raporlanmalı. «Repoda 12 MB» onay cümlesi değildir.
Parçalama yanılsaması
Modeli 20 OBJ'ye bölmek tek dosya limitini aşar gibi görünür; toplam bayt ve toplam parse çoğu zaman aynı veya daha kötüdür (tekrarlayan header, çoklu istek). Bölme, önbellek stratejisi ise ayrı konu; boyut sihirbazlığı değildir.
Bilimsel gösterim tuzağı
e+ / e- notasyonu satırı kısaltabilir veya
uzatabilir; asıl mesele ölçek ve precision politikasıdır. Önce model birimini
düzeltin, sonra haneyi kırpın.
Teşhis maddeleri
- Ham .obj + yan doku toplamı kaç MB?
- gzip/br sonrası transfer kaç MB?
- Loader parse / ilk frame süresi ne?
- Ondalık hane sayısı abartılı mı?
- v/vt/vn tekrarı (unweld) belirgin mi?
- ZIP'te referans edilmeyen PNG var mı?
- Web hedefi için glTF/GLB denendi mi?
Holodepth içgörüsü
«OBJ ağır» ticket'ında önce CDN cache'i değil yazım biçimini sorun. Metin geometri + parse duvarı çoğu zaman asıl maliyettir. gzip bir yara bandı, binary hedef bir tedavidir.
Limitleri kapanır; sırada «nerede kullanılır?»
Animasyon yok, skeleton yok, PBR yok, büyük dosya: dört limit filtresi tamam. Sonraki grup, OBJ'nin hâlâ doğru araç olduğu yerlerdir: CAD, scan, basit statik mesh. İlk kapı: Kullanım Alanları · CAD.
Format okuyucusu özeti: OBJ şişmesi ASCII + precision + tekrar + yan dokudan gelir. gzip transferi küçültür, parse'ı silmez. Web için binary glTF/GLB; OBJ arşiv ve ara handoff'ta kalsın.