Kullanıcı:MusaUmutYelkenci/Wavefront .obj Dosyası

Vikipedi, özgür ansiklopedi

OBJ (veya . OBJ), ilk olarak Wavefront Technologies tarafından Advanced Visualizer animasyon paketi için geliştirilmiş bir geometrik tanım dosya formatıdır. Açık bir dosya tipi olup diğer 3B grafik uygulaması geliştiricileri tarafından da benimsenmiştir.

OBJ dosya formatı, tek başına 3B geometriyi — yani, her köşe noktasının konumu, köşe noktası normalleri ve her bir çokgeni bir köşe noktası listesi olarak tanımlayan yüzler, ve doku köşe noktaları — saklayan basit bir veri formatıdır . Köşe noktaları varsayılan olarak saat yönünün tersine bir sırada saklanır, bu da yüz normallerinin belirtilmesini gereksiz kılar. OBJ koordinatlarının birimi yoktur, ancak OBJ dosyaları bir yorum satırında ölçek bilgisi içerebilir.

Dosya Tipi[değiştir | kaynağı değiştir]

# karakterinden sonra gelen her şey bir yorumdur.

# bu bir yorumdur

Bir OBJ dosyası, köşe verileri, serbest biçimli eğri/yüzey özellikleri, öğeler, serbest biçimli eğri/yüzey gövde ifadeleri, serbest biçimli yüzeyler arasındaki bağlantı, gruplama ve görüntüleme/işleme öznitelik bilgilerini içerebilir. En yaygın öğeler geometrik köşeler, doku koordinatları, köşe normalleri ve çokgen yüzlerdir:

# (x, y, z [,w]) koordinatlarıyla geometrik köşe noktalarının listesi, w isteğe bağlıdır ve varsayılan olarak 1.0'dır.
v 0.123 0.234 0.345 1.0
v ...
...
# (u, [,v ,w]) koordinatlarında doku koordinatlarının listesi, bunlar 0 ile 1 arasında değişir. v ve w isteğe bağlıdır ve varsayılan olarak 0'dır.
vt 0.500 1 [0]
vt . . .
. . .
# (x,y,z) biçimindeki köşe normallerinin listesi; normaller birim vektörler olmayabilir.
vn 0.707 0.000 0.707
vn ...
...
# Parametre uzayı köşeleri ( u [,v] [,w] ) biçiminde; serbest form geometri ifadesi (aşağıya bakınız)
vp 0,310000 3.210000 2.100000
vp. . .
. . .
# Çokgen yüz öğesi (aşağıya bakın)
f 1 2 3
f 3/1 4/2 5/3
f 6/4/1 3/5/3 7/6/5
f 7//1 8//2 9//3
f . . .
. . .
# Çizgi öğesi (aşağıya bakın)
l 5 8 1 2 4 9

geometrik Köşe Noktası[değiştir | kaynağı değiştir]

Bir köşe noktası, v harfiyle başlayan bir satır aracılığıyla belirtilir. v harfini (x,y,z[,w]) koordinatları takip eder. W isteğe bağlıdır ve varsayılan olarak 1.0'dır. Koordinat konumlarını belirtmek için bir sağ el koordinat sistemi kullanılır. Bazı uygulamalar, x, y ve z'den sonra kırmızı, yeşil ve mavi değerleri koyarak köşe renklerini destekler (bu, w'nin belirtilmesini engeller). Renk değerleri 0 ile 1 arasındadır [1] .

Parametre uzayı köşeleri[değiştir | kaynağı değiştir]

Yüz öğeleri[değiştir | kaynağı değiştir]

Yüzler, köşenoktası_dizini/doku_dizini/normal_dizini biçiminde köşe, doku ve normal dizin listeleri kullanılarak tanımlanır; bunun için her dizin 1'den başlar ve başvurulan öğenin tanımlandığı sıraya göre artar. Dörtgenler gibi çokgenler, üçten fazla indeks kullanılarak tanımlanabilir.

OBJ dosyaları ayrıca, NURBS yüzeyleri gibi nesneleri tanımlamak için eğrileri ve yüzeyleri kullanan serbest biçimli geometriyi de destekler.

Köşe dizinleri[değiştir | kaynağı değiştir]

Geçerli bir köşe dizini, önceden tanımlanmış bir köşe listesinin karşılık gelen köşe öğeleriyle eşleşir. Bir indeks pozitifse, o köşe listesinde 1'den başlayarak saymayı ifade eder. Bir indeks negatifse, o zaman göreceli olarak köşe listesinin sonuna atıfta bulunur, -1 son elemanı temsil eder.

Her yüz 3 veya daha fazla köşe noktasından oluşabilir.

f v1 v2 v3 ....

Köşe dokusu koordinat indeksleri[değiştir | kaynağı değiştir]

İsteğe bağlı olarak, bir yüz tanımlanırken doku koordinatlarını belirtmek için doku koordinat indeksleri kullanılabilir. Bir yüzü tanımlarken bir köşe indeksine bir doku koordinat indeksi eklemek için, köşe indeksinden hemen sonra bir eğik çizgi koymalı ve ardından doku koordinat indeksini koymalıdır. Eğik çizgiden önce veya sonra boşluk bırakılamaz. Geçerli bir doku koordinat dizini 1'den başlar ve önceden tanımlanmış doku koordinatları listesindeki karşılık gelen öğeyle eşleşir. Her yüz üç veya daha fazla öğe içerebilir.

f v1/vt1 v2/vt2 v3/vt3 ...

Köşe normali dizinleri[değiştir | kaynağı değiştir]

İsteğe bağlı olarak, bir yüz tanımlanırken köşeler için normal vektörü belirtmek için normal indeksleri kullanılabilir. Bir yüzü tanımlarken bir köşe indeksine normal bir indeks eklemek için, doku koordinat indeksinden sonra ikinci bir eğik çizgi koymalı ve ardından normal indeksi koymalıdır. Geçerli bir normal dizin 1'den başlar ve önceden tanımlanmış normaller listesindeki karşılık gelen öğeyle eşleşir. Her yüz üç veya daha fazla öğe içerebilir.

f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3 ...

Doku koordinat indeksleri olmayan köşe normal indeksleri[değiştir | kaynağı değiştir]

Doku koordinatları isteğe bağlı olduğundan, geometri onlarsız tanımlanabilir, ancak normal indeksi koymadan önce köşe indeksinden sonra iki eğik çizgi koymak gerekir.

f v1//vn1 v2//vn2 v3//vn3 ...

Çizgi öğeleri[değiştir | kaynağı değiştir]

"l" harfi (küçük L) ile başlayan satırlar, bir çoklu çizgi oluşturan köşelerin sırasını belirtir.

l v1 v2 v3 v4 v5 v6 ...

Diğer geometri biçimleri[değiştir | kaynağı değiştir]

Obj dosyaları, Taylor ve B-spline'lar gibi birkaç farklı türde enterpolasyon kullanan daha yüksek dereceli yüzeyleri destekler, ancak üçüncü taraf dosya okuyucularındaki bu özellikler için destek evrensel olmaktan uzaktır. Obj dosyaları ayrıca yapı hiyerarşilerini veya köşe kaplaması veya yapı dönüşümü gibi herhangi bir tür animasyon veya deformasyonu desteklemez.

Malzeme referansları[değiştir | kaynağı değiştir]

Çokgenlerin görsel yönlerini tanımlayan malzemeler harici .mtl dosyalarında saklanır. OBJ dosyası içinden birden fazla harici MTL malzeme dosyasına başvurulabilir. .mtl dosyası bir veya daha fazla adlandırılmış malzeme tanımı içerebilir.

mtllib [harici .mtl dosyası ismi]
...

Bu etiket, onu takip eden öğenin malzeme adını belirtir. Malzeme adı, harici bir .mtl dosyasındaki adlandırılmış malzeme tanımıyla eşleşir.

usemtl [materyal ismi]
...

İsimlendirilmiş obje ve çokgen grupları aşağıdaki etiketler ile belirtilir

o [obje ismi]
  ...
  g [grup ismi]
  ...

Çokgenler arasında yumuşak gölgelendirme, yumuşatma grupları ile etkinleştirilir.

s 1
  ...
  # ayrıca yumuşak gölgelendirme kapatılabilir de.
  s off
  ...

[[Kategori:İncelenmemiş çeviri içeren sayfalar]]

  1. ^ "How can I include vertex color information in .OBJ files?". Game Development Stack Exchange. Erişim tarihi: 2014-10-08.