holodepth

3D Model Formatları · OBJ · Limitleri

PBR Yok: OBJ+MTL'nin Modern Yüzey Dilini Taşımaması

«Albedo / roughness / metalness klasörü hazır, OBJ'de plastik kaldı» doku eksikliği değil; yüzeyin konuştuğu dilin farklı olmasıdır. Skeleton Yok kemik–köşe bağını kapattı; Limitleri'nin üçüncü boşluğu: fizik tabanlı materyal sözleşmesi formatta yoktur.

Holodepth'te «PBR Yok» demek «materyal yok» demek değildir. OBJ isteğe bağlı .mtl ile Phong-benzeri kartlar taşır: renk, specular, exponent, illum. Modern web lookdev'in beklediği şey ise metallic–roughness (veya eşdeğer) bir BRDF dilidir: enerji korunumu, metal / dielektrik ayrımı, IBL ile tutarlı cevap. Bu dil glTF PBR Yapısı'ndadır. Bu sayfa kart sözdizimini tekrar etmez; ürün vaadi ile Wavefront sözlüğünün neden örtüşmediğini sabitler.

Sayfayı bitirdiğinizde şu cümleyi kurabilmelisiniz: «OBJ+MTL yüzey niyeti taşır ama PBR kanal sözleşmesi taşımaz. Klasöre PBR yazmak formatı yükseltmez. Ns metalness değildir; map_Kd tek başına baseColor+MR paketi değildir. Lookdev / IBL ürünü için glTF materyal; OBJ CAD–scan–statik prop yüzeyinde kalsın. MTL Sistemi «nasıl yazılır?», bu sayfa «neden yetmez?» sorusudur.»

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

Bu sayfa OBJ ekosisteminin PBR taşımama limitini anlatır:

  • Ürün beklentisi vs Wavefront yüzey dili
  • Eksik sözlük (MR / ORM / IBL uyumu)
  • «PBR texture seti» yanılsaması
  • Vendor eklentileri ve taşınabilirlik
  • Ne zaman klasik MTL yeter; Holodepth teşhisleri

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

Kısa ayrım: PBR Yok «modern yüzey dili yok» · Materyal Dosyası «MTL kartları nasıl yazılır?» · PBR Yapısı (glTF) «dil dosyada nasıl?»

Yanlış lehçe: ışıkla konuşma biçimi

Materyal, ışığın yüzeye nasıl cevap verdiğinin tarifidir. Wavefront MTL bu tarifi 1980–90'ların sabit fonksiyon / Phong ailesiyle yazar: diffuse renk, specular renk, «ne kadar keskin highlight». PBR ailesi aynı soruyu farklı sorar: yüzey metal mi dielektrik mi, mikrofacet pürüzlülüğü nedir, albedo enerjiyi nasıl böler? Aynı PNG'yi iki dilde okumak aynı cevabı üretmez.

Sözlükte «parlak» kelimesi vardır; «roughness 0.2» diye bir madde yoktur. Çevirmen (loader / dönüştürücü) tahmin yürütür; tahmin PBR sözleşmesi değildir.

Bu yüzden limit «dosyada renk yok» değil; dosyada modern BRDF parametre uzayı yoktur. Renk vardır. Dil eskidir.

Ürün cümlesi ile format cümlesi

Müşteri / tasarım brief'i sıkça şunu söyler: «PBR malzemeli, IBL'de doğru görünsün, metal ve kauçuk ayrılsın.» Format tarafı OBJ seçildiyse cevap dürüstçe şudur: niyet DCC'de kalır; pakete Phong-benzeri iz iner. Brief ile paket aynı kelimeyi («materyal») kullanır ama farklı sözleşmeye işaret eder.

Holodepth eğitim dilinde üç sık yanlış umut:

  • «map_Kd yeter, motor PBR üretir»: üretecek metallic/roughness yoksa tahmin veya sabit varsayılan gelir
  • «Substance setini OBJ yanına koyduk, PBR oldu»: klasör adı format yükseltmez; loader map_* satırlarını okur
  • «Ns yüksek = metal»: Ns specular exponent'tir; metalness skaler değildir

Brief'i tutmak için ya glTF (veya eşdeğer PBR taşıyan paket) seçilir ya da ürün vaadi «klasik diffuse/specular»e düşürülür. İkisini birden vaat etmek teknik borçtur.

Sözlükte olmayan kelimeler

Core OBJ+MTL'de standart, taşınabilir web sözleşmesi olarak bulunmayan (veya güvenilir biçimde tanımlı olmayan) modern yüzey kavramları:

  • Metallic factor / metalness map (0–1 metal–dielektrik)
  • Roughness factor / roughness map (mikrofacet pürüz)
  • ORM / metallicRoughness packing (kanal sözleşmesi)
  • baseColor'un PBR anlamında enerji-bölünmüş albedo rolü
  • Occlusion'ın ayrı, standart slot semantiği
  • Clearcoat, transmission, sheen, specular–glossiness uzantı ailesi
  • IBL / environment ile tutarlı BRDF varsayımı

Ka/Kd/Ks/Ns/illum ve map_Kd ailesi Materyal Dosyası ve Texture Referansları'nda anlatılır; burada tekrar envanterlenmez. Vurgu: o alanlar yukarıdaki listenin yerine geçmez.

Parlaklık ≠ enerji korunumu

Klasik specular modelde Kd ve Ks bağımsız boyanabilir: «hem çok diffuse hem çok specular» matematiksel olarak serbesttir. PBR metallic–roughness'ta metal albedo'yu farklı yorumlar; dielektrikte specular enerji albedo ile paylaşılır. Sonuç: aynı «krom» niyeti iki dilde farklı parametre seti ister.

Web'de IBL + MeshStandardMaterial açıldığında OBJ'den gelen Phong kartı çoğu zaman «gri plastik / aşırı highlight / mat metal» üçgenine düşer. Bu, ışık ayarı kadar parametre uzayı uyumsuzluğudur. Holodepth: lookdev ticket'ında önce ışığı suçlamadan «kaynak dil PBR miydi?» diye sorun.

«PBR» klasörü format yükseltmez

Asset paketinde sık görülen düzen: textures/PBR/ altında _BaseColor, _Roughness, _Metallic, _Normal. DCC ve Substance bunu anlar. OBJ+MTL tarafı ise tipik olarak map_Kd (ve belki bump) satırına yazar; roughness / metallic dosyaları hiç referans edilmeden ZIP'te kalabilir veya yorum satırında unutulur.

Yorumda # roughness: foo_Rough.png yazmak sözleşmeye kanal eklemez. Parser yorumu atlar. Loader yalnızca tanıdığı map_* (ve sınırlı seçenek) satırlarını işler. Klasör adı «PBR» olsa bile runtime'a inen şey çoğu zaman tek albedo + Phong varsayımlarıdır.

Dosya adını ORM.png yapmak glTF packing sözleşmesi doğurmaz. Packing, materyal JSON'unda hangi kanalın ne olduğu yazılıysa vardır.

Vendor satırları web sözleşmesi değil

Bazı DCC veya oyun araçları MTL'ye Pr, Pm, Ps, özel map_Pr benzeri satırlar ekler. Bunlar Wavefront core'un evrensel, tarayıcı OBJLoader ailesince garanti edilen parçası değildir. Bir araç okur, diğeri yok sayar; Holodepth'te «dosyada PBR var» iddiası için yeterli kanıt sayılmaz.

Taşınabilir web dağıtımında güvenilen yol: PBR'yi glTF materyal kartında taşımak. Vendor MTL uzantısına yaslanmak, Animasyon Yok sayfasındaki «harici script ile clip» sahte çözümüne benzer: format dışı, ekip bağımlı, kırılgan.

MTL var diye PBR var sanmak

Limitleri okuyan kişi bazen çelişki hisseder: «MTL Sistemi üç sayfa, sonra PBR Yok?» Çelişki yoktur. MTL bir yüzey dili sunar; PBR başka bir yüzey dilidir. Birinci dilin varlığı ikincinin yokluğunu iptal etmez.

Pratik ayrım:

  • MTL Sistemi: kart nasıl yazılır, map nasıl bağlanır, usemtl nasıl seçilir
  • PBR Yok: modern lookdev / IBL ürününün o kartlarla neden kapanmadığı

Materyal Dosyası'ndaki «MTL ≠ glTF PBR» notu köprüdür; bu sayfa ürün ve teşhis katmanını genişletir. Alan sözdizimini oradan, limit kararını buradan okuyun.

Ne zaman PBR'sizlik kabul edilir?

  • CAD / mimari kütle: tek renk veya basit diffuse yeterli
  • Scan mesh: albedo fotoğrafı, metal ayrımı beklenmez
  • Unlit / stilize / toon hedef: PBR zaten istenmez
  • Ara handoff: siluet + kaba renk; lookdev sonraki formatta
  • Eğitim / debug: MeshLambert / MeshPhong ile yetinen demolar

E-ticaret ürünü, otomotiv boyası, mücevher, ıslak yüzey, karışık metal–plastik set → OBJ nihai paket olmasın. Kullanım Alanları dalı (CAD, scan, static mesh) bu ayrımı ürün dilinde sürdürür; burada yalnızca yüzey limiti filtrelenir.

Kaçış yolu: glTF materyal (köprü)

DCC'den doğrudan glTF/GLB export (veya dikkatli dönüştürücü) metallic–roughness faktör ve texture slotlarını korur. OBJ ara adımında «sadeleştirmek» çoğu zaman MR kanallarını düşürmektir; geri alma sezgidir, ölçüm değildir. Holodepth kuralı: PBR vaat eden varlık OBJ aşamasından geçmesin; statik renkli prop geçebilir.

Dönüştürücü Kd→baseColorFactor, Ns→roughness tahmini gibi eşlemeler yapabilir; sonuç «aynı lookdev» garantisi değildir. Hedef dilin alanları PBR Yapısı'nda; texture zinciri glTF Texture Referansları'nda kalır. Bu sayfa yalnızca «neden OBJ'de bitirmeyin» der.

Holodepth perspektifleri

Studio doğru, paket yanlış

Viewport'ta IBL + Principled BSDF mükemmeldir; export OBJ seçilmiştir. Sanatçı «ben PBR yaptım» der; paket Phong izidir. Kontrol: dağıtılan dosyada metallic/roughness slotu var mı, yoksa yalnızca map_Kd mi?

Yeniden adlandırma tuzağı

diffuse.pngbasecolor.png yeniden adlandırma, semantik yükseltme değildir. Semantik, materyal kartının hangi alana bağladığıdır. OBJ kartı map_Kd biliyorsa isim ne olursa olsun diffuse niyetindedir.

İki pipeline yalanı

«Web'de glTF, arşivde OBJ+PBR klasörü» bazen arşiv için kabul edilir; müşteriye tek ZIP «PBR hazır» diye sunulursa destek yükü artar. Arşiv etiketini «geometri + klasik MTL» olarak sabitleyin.

Teşhis maddeleri

  1. Brief IBL / metal–rough mu istiyor?
  2. Dağıtım formatı OBJ mi, glTF mi?
  3. .mtl'de yalnızca Kd/Ks/Ns mi, yoksa vendor Pr/Pm mi?
  4. Roughness/metallic dosyaları map satırında mı, yoksa klasörde mi?
  5. Loader MeshPhong'a mı, Standard'a mı düşüyor?
  6. Dönüşüm sonrası lookdev yeniden ölçüldü mü?

Holodepth içgörüsü

«Metal plastik gibi» ticket'ında önce roughness map'i GPU'ya yüklemeyi değil kaynak paketin dilini kontrol edin. OBJ+MTL ise eksik texture değil, eksik sözleşmedir. Çözüm map yolu düzeltmek değil; PBR taşıyan formata geçmektir.

Yüzey dili kapandı; sırada ağırlık

Limitleri'nin dördüncü boşluğu taşıma maliyetidir: Büyük Dosya Boyutu. PBR Yok «ne kadar güzel görünür?» sorusunu; Büyük Dosya «ne kadar pahalı iner?» sorusunu işler.

Format okuyucusu özeti: OBJ+MTL Phong-benzeri niyet taşır; metallic–roughness sözleşmesi taşımaz. PBR klasörü ve dosya adı yükseltmez. Vendor satırları web garantisi değildir. Lookdev için glTF; OBJ klasik yüzey ve ara handoff'ta kalsın.