X3D ile Internet Üzerinde Üç Boyut
Özet
Bu makalede internet üzerinde üç boyutlu modellemenin öneminden bahsedilmiş, Web3D Teknolojileri kısaca tanıtılmış ve İnternet üzerinde üç boyutlu içerik oluşturmayı sağlayan yazılımları geliştirmek için kullanılan yöntemler belirtilmiştir. X3D dosya biçiminde etkileşimli bir bilgisayar laboratuvarı oluşturulması yolu ile, gelişen Web3D yazılım ortamları ve teknolojileri (özellikle X3D teknolojisi) tartışılarak sonuçlara ulaşılmıştır.
1. Giriş
İki boyutlu (2B) grafikler yıllardır internetin ve popüler yazılımların (kelime işlemciler, tablolama yazılımları, sunum yazılımları) doğal bir parçası olarak düşünülmektedir. Üç boyutlu (3B) grafikler ise günümüzde tüm ortamların bir parçası olmamakla birlikte Bilgisayar Destekli Tasarım ve Bilgisayar Destekli Üretim, Bilim ve Bilimsel Görselleştirme, Eğitim ve Öğretim, Eğlence, Reklamcılık, Sanat, Sanal Gerçeklik ve Güçlendirilmiş Gerçeklik gibi birçok alanda kullanılmaktadır. [1]
Gerçek dünyanın üç boyutlu olması, bilgisayarlarda üç boyut gereksinimini arttırmaktadır. Üç boyutlu görüntüler daha fazla ilgi çekmekte ve görselleştirmeyi gerçeğe en yakın şekilde sağlamaktadır. Üç boyut zor olmasına rağmen gerçekte aynı sonuçlar için iki boyuta göre daha kolaydır. Günümüzdeki birçok modelleme programı, 3B modellere etkileşimli olarak herhangi bir eksen etrafında döndürülerek kolaylıkla bakabilme ve ayrıca modelin hareketli görüntülerini elde edebilme imkanı sunmaktadır. İki boyutlu grafikler bu açıdan bakıldığında çok yetersiz kalmaktadır.
2. Web3D Teknolojileri
Web siteleri genelde metinler, resimler ve vektörel grafik teknolojileri yardımıyla gerçekleştirilmiş olan iki boyutlu çizim ve animasyonlardan oluşmaktadır. Web tasarımcıları üç boyut sayesinde, ulaşmak istedikleri görselliği gerçeğe daha yakın bir şekilde sunabileceklerdir.
Örnek olarak bir dizüstü bilgisayarın önden, yandan ve arkadan çekilmiş resimleri, alıcının bu bilgisayarı alacak düzeyde hayal etmesini sağlayamamaktadır. Alıcı, bilgisayarı sanki gerçek hayatta imiş gibi incelemek veya içini görmek veya kullanmak isteyecektir. Kimya bilimcileri de internet üzerinden atomları ve elementleri üç boyutlu olarak görüntüleyip oluşan şekilleri daha rahat inceleme olanağına sahip olacaklardır. Bu gibi nedenlerle birçok alanda, web sitelerine üç boyutlu içerik eklemek neredeyse zorunlu hale gelmiştir. Üç boyutlu bir model her zaman iki boyutlu bir resimden daha fazlasını ifade etmektedir [2].
Günümüzde kullanılan bazı Web3D teknolojileri aşağıda belirtilmiştir :
• VRML(Virtual Reality Modeling Language)
• JAVA, JAVA3D
• X3D (Extensible 3D)
• MPEG-4 (Motion Picture Experts Group)
Tablo 1’de internet üzerinde üç boyutun görülmeye başladığı 1994 yılından itibaren VRML’in gelişimi özetlenmektedir.
Tablo 1 VRML ve X3D Tarihçesi
| Tarih | İsim | Yetenekler |
| 1994 | VRML 1.0 | 3B Görselleştirmeler ve sahneler |
| 1996 | VRML 2.0 | Ses, Etkileşim, Canlandırma ve VRMLScript desteği |
| 1997 | VRML97 | VRML 2.0‘ın hata ve kusurları giderildi, EAI (“External Authoring Interface”) desteği (Başta Java olmak üzere diğer dillerle yazılmış programlarla etkileşim olanağı) sağlandı. Çok kullanıcılı dünyalar geliştirilmeye başlandı. Aralık ayında uluslararası bir standart oldu. (ISO/IEC DIS 14772-1) |
| 1999 | X3D | Çekirdek ve VRML profili tanımlandı. |
| 2000 | X3D | Farklı profiller gerçekleştirildi |
| 2002 | X3D | VRML97 ve X3D birleştirildi ve ISO VRML2002 standardı haline geldi. |
Çok sayıda Web3D teknolojisi ortaya çıkmıştır ve bir kısmı da günümüzde etkin olarak kullanılmaktadır. Üçüncü ve dördüncü bölümlerde sadece uluslararası standart Web3D teknolojileri üzerinde kısaca durulacaktır. Diğer teknolojiler de benzeri özellikleri içermektedir.
3. VRML
VRML, ilk ciddi Web3D teknolojisidir ve 1994 yılından bu yana yoğun olarak kullanılmıştır. ISO (International Standards Organization) tarafından uluslararası standart olarak kabul edilmiştir. VRML, etkileşimli üç boyutlu nesne ve ortamları tanımlamayı sağlayan basit metinsel bir dildir. VRML dosyalarının uzantısı .wrl’dir. VRML-NG yani X3D, 1999 yılında, üç boyutu her ortama taşıma çabaları sonucunda ortaya çıkmıştır. VRML’in XML (Extensible Markup Language) ile temsil edilmesini sağlamanın yanında NURBS yüzeylerinde ve Desen Kaplamada yenilikler getirmiştir. [4]
VRML dosyası dört bileşenden oluşur: a)VRML Başlığı, b)Prototip (“Prototype”), şekil (“Shape”), interpolator (“Interpolator”), algılayıcılar (“Sensor”) c) Betimler (“Script”) d) Rotalar (“Route”). Bir VRML dosyasında mutlaka olması gereken tek şey başlık bilgisidir. Bu bilgi # işareti ile başlamaktadır. Ve genellikle #VRML V2.0 utf8 şeklindedir. Bu ifade bu dosyanın bir VRML 2.0 kodu içerdiğini ve karakter standardı olarak utf8 kullandığını belirtmektedir. (Şekil 1)
VRML, dosyalar, şekiller ve VRML dünyasının özelliklerini tanımlayan düğümler (node) içerebilir. Her bir düğüm, şekilleri, renkleri, bakış noktalarını, dönüşümleri vb. özellikleri tanımlar. Düğümler zorunlu olarak düğüm tipi ve ek olarak düğümün özelliklerini belirten ek sahalar içerir. En çok kullanılan düğümlere örnek olarak “Shape”, ”PointSet”, “IndexedLineSet”, “IndexedFaceSet”, “Material”, “Color”, “Text”, “Transform”, “PixelTexture”, “Normal” düğümlerini gösterebiliriz (Ayrıntılı bir liste için bkz. [9]).
VRML’in son sürümleriyle birlikte kazandığı en önemli avantaj EAI (“External Authoring Interface”) standart tanımlaması yardımıyla VRML tarayıcılarının Javascript ve Java dilleri ile yazılmış programlarla etkileşimli olarak çalışmasıdır. Bu kodlar VRML’in veya tarayıcının kendi API’ler yardımıyla ve “Script” düğümü sayesinde VRML kodu içine gömülebilmekte veya kodun içinden çağrılabilmektedir.
KOD1 :
#VRML V2.0 utf8
DEF dad_Cylinder1 Transform {
translation -.02635 0 0
children [ DEF Cylinder1 Shape {
appearance Appearance {
material DEF Red_mat Material {
ambientIntensity 0.200
shininess 0.200
diffuseColor 1 0 0
}
}
geometry Cylinder {
height 2.000
radius 1.000
}
}
]
}
Şekil 1 : Kırmızı Bir Silindir Oluşturan VRML Örneği
4. X3D
X3D nedir? : X3D (“Extensible 3D”) hala geliştirme aşamasında olan, VRML97 standardını genişleten, web üzerinde 3B etkileşimli dünyalar oluşturmada kullanılmaya başlanan bir Web3D standardıdır. X3D’in getirdiği yenilikler şöyle sıralanabilir:
• Çok sayıda “encoding” (XML,VRML, “classic”, “Binary”) içermesi
• Yeni grafik özellikleri (NURBs, İnsansı Canlandırma(“Humanoid Animation”), Çoklu desen kaplama (“Multitexturing”), Üçgen İlkelleri (“Triangle Primitives”), 3B içerisinde 2B şekiller, animasyon (zamanlayıcı ve aradeğerleyiciler (interpolator))
• Gelişmiş navigasyon (kameralar, 3B sahnede kullanıcı hareketi, çarpışma, tahminleme ve görünürlük tespiti)
• Kullanıcı etkileşimi (Klavye girişi ve fare tabanlı seçme taşıma)
• Yeni ağ özellikleri (“LoadSensor”, geliştirilmiş “Inline”)
• Fiziksel simülasyon (İnsansı animasyon, yeryüzeysel veri kümeler, dağıtık etkileşimli simülasyon protokolleri ile bütünleştirme)
• Geliştirilmiş API’ler, daha fazla dil/nesne model bağlamaları (“bindings”) (Örneğin DOM) ve daha iyi uyum için olay modelinin (event model) daha fazla açıklanması.
• Modülerlik (Standart profil ve bileşenlere ayrılmış olup, bir çok seviyede desteklenmektedir) ve kullanıcı tanımlı nesneler.
• Ayrıca MPEG-4, VRML kullanılarak gerçekleştirilen “streaming” etkileşimli üç boyut içermektedir. [3] [11]
X3D, VRML’deki düğümlere ek olarak yeni düğümler sunmuştur. Genişletilebilir özelliği nedeniyle geliştiricinin düğüm geliştirimine de olanak sağlamaktadır. Ayrıca bir çok şirket X3D için yeni profillerle birlikte yeni düğüm geliştirmektedir. (Geniş X3D node listesi için [10]).
Web3D Açık Kaynak Çalışma Grubundan Alan Hudson’a göre XML’in, sözdiziminde kullanılması şu nedenlere dayanmaktadır:
• Web ile ortak çalışabilmek (interoperate)
• Yeni grafik teknolojilerini standartlaşmış bir şekilde eklemek (incorporate)
• VRML içeriğini tüm tarayıcılar için aynı şekilde çalıştırmak
• Beş yıldan daha hızlı bir şekilde evrimleşen bir standart gereksinimi [3]
XML, X3D için gerçek bazı problemleri çözmek amacıyla sözdiziminde kullanılmaktadır:
“Rehostability”: VRML sözdizimi VRML topluluğu dışındakiler için tamamen yabancıdır. XML ise dünya çapında kullanılan hakim standarttır. Markup dillerin uzun süreli veri saklama ve “rehosting” için en iyi çözüm olduğu kanıtlanmıştır.
Sayfa Bütünleştirme: XML sayfa tabanlı bütünleştirme, sistemin mümkün olduğunca basit olmasını sağlar. Böylece daha fazla kişi web sayfaları için içerik ve gerçekleştirim geliştirmesi yapabilir.
Sonraki Nesil Web İle Bütünleştirme: W3C üyeleri XML ‘in geliştirilmesi için çok çaba sarf etmektedirler. Görülen, XML’in bir standartlaşma çabasında olduğu ve bir süre daha web için kilit konumda olacağıdır.
Neden X3D? : X3D, XML altyapısını kullanması dolayısıyla Web ile uğraşan kişilerin rahatça anlayabilmesine ve hiyerarşik modellemeye olanak sağlar. XML sayesinde rahatça genişletilebilir ve modüller hazırlanarak işler daha da kolaylaştırılabilir. Getirdiği grafiksel yenilikler de VRML’de eksiklik olarak hissedilen durumları önlemeye yöneliktir. Kişiler web üzerinde 3B sunum yapmak istiyorlarsa fazla bir programlama bilgisine sahip olmadan, yeterince grafik ve “markup” programlama (HTML,XML vb) yardımıyla rahatça 3B içerik hazırlayabileceklerdir. İnternet üzerinde bulunan X3D öğreticileri ve belirtimleri (“specification”) yardımıyla X3D öğrenmek kolaylaşacaktır.
X3D Nasıl? : X3D ile çalışabilmek için ilk önce web tarayıcılara eklenti yüklenmesi gerekmektedir. Bundan sonra her X3D dosyasının başlığında tanımlanması gereken ve İnternet üzerindeki bir kaynağı işaret eden DTD olması, dolayısıyla internete bağlı olmak, yada bu DTD dosyasını yerel bir konuma kaydedip, dosya başlıklarını buna göre değiştirmek gereklidir. Daha sonra indirilen belirtimlerden, öğreticilerden ve var olan X3D örneklerinden yararlanarak kendi kendimize örnek 3B içerik yaratabileceğimiz gibi aşağıda sırasıyla açıklanan programlardan yararlanarak da yaratabiliriz.
Şekil 3 ve 4’te görülen silindir örneğini oluşturan kodu (Şekil 2) incelediğimiz zaman XML ve X3D’nin ilişkisini daha iyi anlarız. Eğer Kod 1 ile Kod 2 yi karşılaştırırsak VRML ve X3D arasındaki benzerlikleri göreceğimiz gibi farklılıkları da görebiliriz.
KOD2 :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC http://www.web3d.org/specifications/x3d-3.0.dtd "/www.web3d.org/TaskGroups/x3d/translation/x3d-3.0.dtd">
<X3D>
<Scene>
<Transform DEF='dad_GROUND'>
<Group DEF='GROUND'>
<Transform DEF='dad_Cylinder1' translation='.02464 0 .08626'>
<Shape DEF='Cylinder1'>
<Appearance>
<Material DEF='Red_mat' ambientIntensity='0.200' shininess='0.200' diffuseColor='1 0 0'/>
</Appearance>
<Cylinder height='2.000' radius='1.000'/>
</Shape>
</Transform>
</Group>
</Transform>
</Scene>
</X3D>
Şekil 2 : Kırmızı Bir Silindir Oluşturan X3D Örneği
5. İçerik Oluşturmada Kullanılabilecek Programlar
X3DEdit: İyi bir I18N desteği olan ücretsiz profesyonel bir yazılımdır. Kurulduğu zaman herhangi bir X3D dosyasında olması gereken DTD dosyalarını da yerel C sürücüsünün altına yerleştirmektedir. Böylece İnternete bağlanmadan, 3B içerik geliştirme olanağı sağlamaktadır. Uzak ve yerel adreslerden X3D ve VRML dosyalarını ithal edebilmektedir. X3D’nin temeli olan “Scene Graph”’a uygun bir “editing” ortamı sunmaktadır. Windows ve Mac’i de içeren sürümleri vardır.[5]
Vizx3d: Henüz beta sürüm olmasına rağmen, Max3d ve benzeri program kullananların rahatlıkla uyum sağlayabileceği bir modelleme programıdır. VRML, sıkıştırılmış VRML, X3D ve AVI biçimlerinde çıktılar üretilebilmektedir. Çok amaçlı sihirbazları mevcuttur (3B Yazı, Kamera, Animasyon, HUD Tasarım,…). VRML ve Shout3D dosyalarını da ithal edebilmektedir.[7]


Şekil 3 : Kod 1 ve Kod 2 ‘nin (X3D) tarayıcıdaki görüntüsü (BS Contact Eklentisi)

Şekil 4 : Kod 2 ‘nin (X3D) tarayıcıdaki başka bir görüntüsü (Flux Eklentisi)
6. İçerik Görüntülemede Kullanılabilecek Eklentiler
İçerik görüntülemede kullanılabilecek bazı eklentiler Tablo 2’de verilmiştir.
Tablo 2 : VRML ve X3D destekleyen araçlar (E:Eklenti, P:program, T:Toolkit, J: Applet) [8]
| İşletim Sistemi | Tarayıcı | ||||||
| Yazılım | Tip | Windows | Linux | Mac | IE | non-IE | X3D Desteği |
| Cosmo Player | E | + | + | + | |||
| Cortona | E | + | + | + | + | ||
| BS Contact | E | + | + | + | + | ||
| blaxxun Contact | E | + | + | + | |||
| Flux | E | + | + | + | |||
| Octaga | E | + | + | + | |||
| Vcom3D Venues | E | + | + | + | |||
| FreeWRL | E,P | + | + | + | + | ||
| OpenVRML | E,P | + | + | + | |||
| Xj3D | P,T | + | + | + | + | ||
| CyberX3D | T | + | + | + | + | ||
| X3DToolKit | P,T | + | + | + | + | ||
| VRMLview | P | + | + | ||||
| GLView | P | + | |||||
| BS Contact J | J | + | + | + | + | + | |
| blaxxun3D | J | + | + | + | + | + | |
| Dynamic-3D | J | + | + | + | + | + | + |
| FastScript3D | J | + | + | + | + | + | |
Flux Player : Tam özellikli, yüksek performanslı olarak X3D, CDF, VRML ve MPEG-4 standartlarını hafif bir pakette desteklemektedir. “Just-in-Time” kurulabilen tarayıcı eklentisidir. Ticari olmayan kullanımlar için ücretsizdir. [12]
BS Contact VRML : Bitmanagement Software GmbH firması tarafından diğer grafik (özellikle web3d) ürünleri ile birlikte üretilmiş bir üründür. Firma olarak e-ticaret, e-öğrenme, e-devlet ve e-sağlık uygulamaları için CAD, süreç görselleştirme ve oyun dallarında sağlayıcı konumundadır. En son çıkarmış oldukları BS Contact VRML 6.1 sürümü diğer eklentilerden farklı olarak oyun çubuğu sürücüsü, oyunlarda olduğu gibi navigasyon özelliği, ortam eşleme ve geniş sahne performans optimizasyon yetenekleriyle ön plana çıkmaktadır. [13]
Xj3D: İlk olarak Java3D API için bir dosya yükleme programı yazma amacıyla başlanmış olan proje isteklerin büyümesi nedeniyle bugünkü konuma gelmiştir. Bu araç tamamen Java ile geliştirilmiş bir tarayıcı, program ve toolkit olarak X3D ve VRML göstermenin yanında, geliştiriciler için bir test alanı sunmaktadır. Bu araç VRML kodunuzu kendi uygulamanız içine ithal etmeniz yanında başlı başına bir tarayıcı geliştirmek için de kullanılabilmektedir.[14]
7. Etkileşimli Sanal Bilgisayar Laboratuvarı
Bu çalışma kapsamında X3D ile, etkileşimli basit bir bilgisayar laboratuvarı oluşturulmuş ve internet üzerinde kullanıma sunulmuştur (Şekil 5). Hazır araçlarla kısa bir sürede üç boyutlu ortamların bu şekilde oluşturulmasının yararlı olduğu açıktır. Örnek olarak oluşturduğumuz bu sanal ortam bile, bilgisayar laboratuvarlarının etkileşimli olarak düzenlenmesinden, bölüm tanıtımlarına, bilgisayar ağları eğitiminden ders planlarına kadar birçok alanda kullanılabilecektir.

Şekil 5 : Sanal olarak oluşturulan etkileşimli basit bir bilgisayar laboratuvarı.
Değişik formatlardaki hazır üç boyutlu nesne modelleri (masa, notebook bilgisayar, sandalye vb.) internet üzerinden temin edilmiş, özellikleri değiştirilip düzenlenerek X3D formatında internet üzerine yerleştirilmiştir.
8. Sonuç
İnternet, günümüzde çoğu insan için önemli bir konuma gelmiştir. Çoğu insan tüm iletişimini, alışverişini internet üzerinden yapmaya başlamıştır. Elektronik ticareti kullanmak isteyen firmalar, internet üzerindeki müşterilerine her zaman daha iyisini sunmak zorundadırlar. Birbirleriyle bilgi paylaşımı yapmak isteyen kişiler internetten en üst düzeyde yararlanmalıdırlar. Bu nedenle, iletişimdeki etkiyi arttıracak olan üç boyut internet açısından önemlidir. E-Ticaret firmaları müşterilerine daha iyisini sunmak için 3B teknolojilerinden yararlanmalıdır. Bilgi paylaşımı için insana daha fazla bilgi gösterebilecek olan 3B teknolojilerinden yararlanmak gereklidir.
Bu makalede günümüzdeki Web3D teknolojileri kısaca tanıtılmış, öğrenmenin çok zor olmadığı kanıtlanmış, değişik alanlarda çalışan veya araştırmalar yapan ve üç boyutlu grafikler içeren projeler geliştirmek isteyen kişilere yol gösterilmiş, ücretsiz araçlarla bile birçok işlemin yapılacağı açıklanmıştır. Bu kapsamda X3D ile, etkileşimli bir bilgisayar laboratuarı ortamı oluşturulmuştur. İnternet üzerinde varolan kaynaklar bile bu teknolojileri öğrenmeye başlamak için yeterlidir. Web3D teknolojilerinin kullanımı yaygınlaştıkça internet üzerindeki görsellik ve gerçekçilik arttırılabilecektir.
Kaynaklar
1. Uğur, A., “İnternet Üzerinde Üç Boyut ve Web3D Teknolojileri (Three Dimensional Graphics on the Internet and Web3D Technologies)”, VIII. Türkiye’de İnternet Konferansı (INET-TR 2002), Bildiri No : 54, İstanbul, Türkiye, 19-21 Aralık 2002.
2. Uğur, A., Özgür, E., “İnternet Üzerinde Üç Boyıt ve Mimarlıkta Web3D” , IX. Türkiye’de İnternet Konferansı (INET-TR 2003), Bildiri No : 3, İstanbul,Türkiye
3. Bullard, L., “Extensible 3D:XML Meets VRML” http://www.xml.com/pub/a/2003/08/06/x3d.html
4. “CoreWeb3D” http://www.coreweb3d.com
5. “Web3D Consortium X3D Documentation” http://www.web3d.org/x3d/
6. “Bitmanagement Software GmbH” http://www.bitmanagement.de/
7. “Virtock Technologies, Inc.” http://www.vizx3d.com/
8. “VRML Plugin And Browser Detector” http://cic.nist.gov/vrml/vbdetect.html
9. “The Virtual Reality Modelling Node Reference” http://www.web3d.org/x3d/specifications/vrml/ISO_IEC_14772-All/part1/nodesRef.html
10. “X3D Node Reference” http://www.realism.com/Web3D/x3d/nodeReference.html
11. “Web3D Consortium X3D Overview” http://www.web3d.org/x3d/overview.html
12. “Media Machines Download Page” http://www.mediamachines.com/download.html
13. “Bitmanagement Software GmbH - BS Contact VRML/X3D” http://www.bitmanagement.de/?page=/products/bs_contact_vrml.html
14. “The Xj3D Project” http://www.xj3d.org/
Hazırlayan : Tahir Emre KALAYCI, Y. Doç. Dr. Aybars UĞUR
- Yorum yazmak için giriş yapın veya kayıt olun