View Categories

CGeo (sürüm 7)

7 dakika okuma

Genel Bakış #


CGeo, ağ verilerini depolamak için genişletilebilir bir dosya formatıdır. Proxy’ler uygulamak veya Corona render motorunu destekleyen uygulamalar arasında veri iletişimi sağlamak için kullanılabilir.

Bir CGeo dosyası, başlık ve veri olmak üzere iki ana bölümden oluşur. Tüm ikili veriler little-endian formatındadır.

Aşağıdaki dokümantasyonda, animasyon  örneği  ile animasyon  anlık görüntüsü arasında ayrım yapmak önemlidir . Bir CGeo dosyasında saklanan nesne, bir dizi animasyon  anlık görüntüsü olarak temsil edilir ve tek bir  anlık görüntü , bir veya daha fazla animasyon örneğinden  oluşur  .  Örnekler, anlık görüntüler  arasındaki alt örnekleri temsil eder   ve hareket bulanıklığı verilerini depolamak için kullanılabilir.

Genel Yerleşim Planı #


Bayt İndeksi

Bayt Sayısı

İçerik Açıklaması

0

1

cgeo dosyasını gösteren ikili sihirli sayı  0x43

1

4

Aşağıda yer alan H başlığının boyutu,   ikili 4 baytlık bir tamsayı olarak gösterilmiştir.

5

H

Başlığın insan tarafından okunabilir biçimi (aşağıdaki açıklamaya bakınız)

5 +  H

Başlık tarafından belirlenir

Veri bölümü


Örnekle başlayalım:

Corona Renderer CGeo file.
This file contains an animated Mesh object.
This file is BINARY.
Version: 4
Date created: 2016-01-05/14:10:17
Number of faces: 12
Number of vertices: 8
Number of mapping channels: 2
Number of normals: 24
Bounding box size (original units) : 21.0804 26.3839 33.2031
Bounding box size (millimeters) : 210.804 263.839 332.031
Original material name: [none]
Original object name: Box001
Animation snapshot count: 1
Time per animation snapshot [microseconds]: 33333
Animation time start: 0
Scale: 0.1
Compressed: True

Başlık düz metin halinde olduğundan, CGeo dosyasını bir metin düzenleyicide kolayca incelemek mümkündür. Başlık, şu biçimde saklanan verileri açıklayan özellikler içerir:

PropertyName: PropertyValue

Her özellik kendi satırında olmalı ve satır ayırıcı olarak \n kullanılmalıdır. Başlık, keyfi sayıda özellik içerebilir, ancak zorunlu özellikler de vardır (aşağıda listelenmiştir). Özelliklerin yanı sıra, başlık keyfi metin de içerebilir. En azından dosyanın kaynağını belirtmek iyi bir fikirdir.

Zorunlu özelliklerin listesi #


İsim

Tanım

“Sürüm”

Şu anda  Corona v2 için 7 adet mevcut .

“Animasyon anlık görüntü sayısı”

 Veri bölümünde saklanan animasyon anlık görüntülerinin sayısı 

“Animasyon anlık görüntüsü başına geçen süre [mikrosaniye]”

Adından da anlaşılacağı gibi

“Animasyon zamanı başladı”

Mikrosaniye cinsinden. Yükleme sırasında nesneyi zaman çizelgesinde doğru yere yerleştirmek için kullanılabilir.

“Ölçek”

Verilerin milimetre cinsinden saklanma ölçeği (örneğin, veriler santimetre cinsinden saklanıyorsa 10). Bilinmiyorsa 0.

“Orijinal malzeme adı”

Adından da anlaşılacağı gibi

“Orijinal nesne adı”

Adından da anlaşılacağı gibi

“Sıkıştırılmış”

{‘True’, ‘False’} değerlerinden biri olabilir. Karşılaştırma büyük/küçük harf duyarlılığı olmaksızın yapılır. ‘False’ belirtilirse, CGeo dosyasının hiçbir bölümü sıkıştırılmaz. Diğer durumlarda, veri bölümündeki tüm anlık görüntülerin bölümleri sıkıştırılır (aşağıya bakınız). Bu özellik 5. sürümde eklendi ve eksikse ‘True’ varsayılacaktır. Belgelerde herhangi bir noktada bir şeyin sıkıştırıldığı belirtiliyorsa, bu yalnızca bu özelliğin değeri ‘True’ ise geçerlidir.

Veri Bölümü #


Veri bölümü, animasyonlu ağ  anlık görüntülerinin yanı sıra sınırlayıcı kutular ve nokta bulutları gibi önceden hesaplanmış yardımcı verileri içerir. Yardımcı veriler genellikle geometri verilerinden daha az bellek alanı kaplar; bu da 3 boyutlu bir uygulamanın görüntüleme alanında bir proxy görüntülerken faydalı olabilir, çünkü diskten büyük miktarda veri okumak zorunda kalmayız. Biçim, animasyon  anlık görüntü  deposundaki her şeyin kendi bölümüne sahip olması şeklinde genişletilebilir. Tek zorunlu bölüm, geometri verilerini tutan bölümdür; diğer her şey eksik olabilir (ancak olmamalıdır) ve gerekirse anında hesaplanabilir. Amaç, uyumluluğu bozmadan gelecekte bölümler ekleyebilmektir.

Etiketler #


Etiketler, veri bölümündeki belirli olayları tanımlamak için kullanılır  . Her etiket 4 baytlık bir tamsayıdır. Aşağıda şu anda kullanılan etiketlerin tablosu bulunmaktadır ve dokümantasyonun geri kalanında bunlara kimlik numaralarıyla atıfta bulunulacaktır.

Etiket Kimliği

Etiket Değeri

TAG_ANIMATION_SNAPHOT_START

0xA3CDEF00

TAG_ANIMATION_SNAPHOT_END

0xFED3BA11

TAG_ANIM_TABLE_START

0xFAD0CCA1

TAG_ANIM_TABLE_END

0xE580AC23

TAG_BOUNDING_BOX

0x2F89A8B5

TAG_MESH_DATA

0x35F71EA8

TAG_MESH_VERTICES_END

0x42C342CC

TAG_MESH_NORMALS_END

0xB00B06B0

TAG_MESH_MAP_COORDS_END

0xCAAC04CA

TAG_POINTCLOUD

0x1387EBEB

Düzen #


Aşağıda veri bölümünün yerleşim düzeninin açıklaması yer almaktadır.

Öğe

Tanım

Bayraklar

Sıkıştırılmamış 4 baytlık bir tamsayı daha sonra açıklanacaktır.

TAG_ANIM_TABLE_START

Ofset Tablosu

Sıkıştırılmamış ofset tablosu. Her animasyon anlık görüntüsü için bir giriş bulunur ve her giriş, dosyanın başından anlık görüntünün verilerinin başlangıcına kadar olan 8 baytlık ofsettir.

TAG_ANIM_TABLE_END

TAG_ANIMASYON_ANLIK_GÖRÜNTÜ_BAŞLANGICI

Animasyon anlık görüntüsünün başlangıcını gösteren etiket.

Bölümler

Anlık görüntüye ait verileri içeren ayrı bölümler. Bunlar daha sonra açıklanacaktır.

TAG_ANIMATION_SNAPSHOT_END

Animasyon anlık görüntüsünün sonunu gösteren etiket.

Lütfen (TAG_ANIMATION_SNAPSHOT_START, TAG_ANIMATION_SNAPSHOT_END) çiftinin animasyon anlık görüntüsü sayısı kadar tekrar görüneceğini unutmayın.

Bayraklar #


Biraz

İsim

Tanım

1

Topolojinin Değiştirilmesi

Bu işaret, topolojinin anlık görüntüden anlık görüntüye değişebileceği için her animasyon anlık görüntüsünün kendi başına sıkıştırılmış olarak saklandığını gösterir. Bu işaret belirtilmezse, yalnızca ilk anlık görüntünün topolojik bilgi içermesi ve sonraki tüm anlık görüntülerin yalnızca ilk anlık görüntüden konum, normal ve doku koordinatlarının sıkıştırılmış farkları olarak saklanması beklenir.

Bölümler #


Her anlık görüntü bir veya daha fazla bölümden oluşur ve ofset tablosunda saklanan ofset ilk bölüme işaret eder! Her bölüm 4 baytlık bir tanımlayıcı ve 8 baytlık bir bölüm boyutuyla başlar. Bölümler keyfi sırada olabilir ve gerekli olan tek bölüm geometrik verileri (TAG_MESH_DATA) içeren bölümdür. Yine de, belgelenmiş tüm bölümleri her animasyon anlık görüntüsünde saklamanız önerilir. Aşağıda, şu anda desteklenen tüm bölümlerin dokümantasyonu yer almaktadır.

Ağ Verileri – TAG_MESH_DATA #


Bu bölüm geometri verilerini içerir ve gerekli olan tek bölümdür. İlk anlık görüntü her zaman eksiksiz olarak (topoloji dahil) saklanır. İlk anlık görüntüyle aynı topolojiye sahip olan her sonraki anlık görüntü, ilk anlık görüntüden fark olarak saklanır; bu durumda daha iyi sıkıştırma beklenir. Bölümün tamamı sıkıştırılır.

Aşağıda, anlık görüntü tamamen kaydedildiğinde bölümün içeriğinin açıklaması yer almaktadır.

Öğe

Tanım

0x1

Bu, eksiksiz bir anlık görüntü olduğunu gösteren 0x1 değerinde 1 bayt.

Köşe Sayısı

4 baytlık tamsayı

Normal Sayım

4 baytlık tamsayı

Harita Kanal Sayısı

Eşleme kanalı sayısını gösteren 4 baytlık tamsayı.

Üçgen Sayısı

4 baytlık tamsayı

Köşeler

Her köşe, X, Y, Z’ye karşılık gelen 3 adet IEEE754 tek duyarlıklı kayan noktalı sayı ile temsil edilir.

TAG_MESH_VERTICES_END

Normaller

Her normal, X, Y, Z’ye karşılık gelen 3 adet IEEE754 tek hassasiyetli kayan noktalı sayı ile temsil edilir.

TAG_MESH_NORMALS_END

Doku Koordinatları

Tüm eşleme kanallarına ait veriler. Eşleme kanalı sayısı, Eşleme Koordinat Sayısı ile belirtilir . Her eşleme kanalının verisi, doku koordinatlarının sayısını ve ardından koordinatların kendilerini saklayan 4 baytlık bir tamsayı olarak verilir. Her koordinat, U, V ve W’ye karşılık gelen 3 adet IEEE754 tek hassasiyetli kayan noktalı sayı ile temsil edilir.

TAG_MESH_MAP_COORDS_END

Üçgen Verileri

Aşağıda açıklanmıştır.

Aşağıdaki tabloda, CGEO 7 ve üzeri sürümlerde (Corona v2 ve üzeri) tek bir üçgenin nasıl saklandığı açıklanmaktadır.

Öğe

Tanım

Köşe İndeksleri

3 köşe indeksi. Her indeks 4 baytlık bir tamsayı olarak temsil edilir.

Normal İndeksler

3 normal indeks. Her indeks 4 baytlık bir tamsayı olarak temsil edilir.

Harita Koordinatları İndeksleri

Her eşleme kanalı için 3 indeks saklanır ve her indeks 4 baytlık bir tamsayı olarak temsil edilir.

Malzeme Kimliği

2 baytlık malzeme kimliği.

Kenar Görünürlüğü

1 baytlık bit kümesi. 0, 1, 2 bitleri AB, BC, CA kenarlarını temsil eder. Bir kenar için karşılık gelen bit ayarlandığında, kenar görünür hale gelir.

Aşağıda, anlık görüntünün ilk görüntüden fark olarak saklandığı durumda bölümün içeriğinin açıklaması yer almaktadır.

Öğe

Tanım

0x0

0x0 değerinde 1 bayt, bunun ilk anlık görüntüden farklı olduğunu gösterir.

Köşe Farklılıkları

Her fark, X, Y, Z’ye karşılık gelen 3 adet IEEE754 tek duyarlıklı kayan noktalı sayı ile temsil edilir.

TAG_MESH_VERTICES_END

Normal Farklar

Her fark, X, Y, Z’ye karşılık gelen 3 adet IEEE754 tek duyarlıklı kayan noktalı sayı ile temsil edilir.

TAG_MESH_NORMALS_END

Doku Koordinatı Farklılıkları

Her fark, U, V ve W’ye karşılık gelen 3 adet IEEE754 tek hassasiyetli kayan noktalı sayı ile temsil edilir. Tüm harita kanalları için farklar daha sonra saklanır. Her kanal için fark sayısı, tamamen saklanan ilk anlık görüntü tarafından verilir.

TAG_MESH_MAP_COORDS_END

Sınır Kutusu – TAG_BOUNDING_BOX #


Anlık görüntünün sınırlayıcı kutusunu tanımlayan, sıkıştırılmış 6 adet IEEE754 tek duyarlıklı kayan noktalı sayı. Sıralama şu şekildedir: MinX, MinY, MinZ, MaxX, MaxY, MaxZ.

Nokta Bulutu – TAG_POINTCLOUD #


Bu bölüm, animasyon anlık görüntüsünü görüntüleme alanında görselleştirmek için kullanılabilecek nokta bulutunu içerir. Bölümün tamamı sıkıştırılmıştır ve şunları içerir:

Öğe

Tanım

Puan Sayısı

Sonraki noktaların sayısını gösteren 8 baytlık işaretsiz tamsayı.

Puanlar

Her nokta, sırasıyla X, Y, Z koordinatlarına karşılık gelen 3 adet IEEE754 tek hassasiyetli kayan noktalı sayı ile temsil edilir.

Tarafından desteklenmektedir BetterDocs

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir