18/3/2009
Merhaba bu makalede Expression Blend 2 içindeki 3D yeteneklerini inceleyeceğiz.
Blend bize oldukça gelişmiş 3D özelliği sunmaktadır. Burada dikkat etmeniz gereken konu 3D şimdilik sadece WPF tarafından desteklenmektedir. Silverlight da 3D desteği yoktur. Bunun ileride düzeleceğini umuyorum.
Başlayalım. Blend ile 3D derken basit perspektif toollarından bahsetmiyoruz. Blend’e 3D obje import edebiliyorsunuz. 3D programlarına aşina olan arkadaşlarımız bilecektir. Tüm 3D programları oluşturduğu dosyaları kendine özel isimlerle oluşturur. Bu sebeple 3D programları içinde geçiş yapabilmek gerekmektedir. Örneğin Vue’d Espirit ile bir dış mekan yarattınız ve Poser ile oluşturduğunuz bir insan modeliniz var. Bu ikisini Cinema4D’ de birleştirip bir render almak istiyorsunuz. Elbette bir çok programın, diğer programların dosyalarını tanıyan plugin leri bulunmaktadır. Ama ya yoksa… İşte bu aşamada devreye en genel, en eski, en bilinen 3D formatları devreye girer. Bu da OBJ (wavefront)’dur.
Evet Blend .OBJ dosyalarını kullanabilmektedir. Bunun için eğer modelinizi siz hazırladıysanız, hazırladığınız program ile modelinizi .OBJ olarak export edin. Ya da internetten bir sürü free .OBJ formatında model bulabilirsiniz. Örneğin ben bu makalede kullanacağım Mini Cooper modelini şu linkten indirdim.
Project penceresinde, Proje ismimize sağ klik yapıp çıkan menüde “Add Existing Item” a tıklayalım.
Bilgisayarımızdaki .OBJ dosyasını seçelim.
OBJ dosyası projemize eklenmiştir.
Dosyanın üstüne çift tıklayarak, 3D objeyi sahnemize ekleyelim.
Blend bir 3D obje eklendiğinin farkındadır. Bu obje için Objects penceresine bir takım özellikler eklenmiştir.
Örneğin 3D obje için PerspectiveCamera bulunmaktadır.
Ve bu kameraya ait özellikler bulunmaktadır.
Blend 3D objeyi, objenin üzerinde gelen hiyerarşik yapısıyla almıştır.
3D objeniz seçiliyken, Layout penceresinde alttaki butonlara basarsanız.
Modelinizi çalışma alanına ortalarsınız.
Eğer Tool bar’daki “Camera Orbit” tool’unu seçerseniz.
Sol kliğe basılıyken mouse’nuzu hareket ettirerek objenize bakış yönünüzü değiştirebilirsiniz.
CTRL+Sol klik — Objeyi çalışma alanında hareket ettirir.
ALT+Sol klik — Objeye zoom in / zoom out yapar.
(Aslında burada hareket eden obje değil kameradır)
Elbette Blend’e .OBJ import etmek dışında 3D olanakları bulunmakta. Bunlardan en önemlisi ZAM 3D programı. Flash için 3D içerik üreten Swift 3D programını yayınlayan Electric Rain firmasının yeni ürünü ZAM 3D. İşlevi de bu sefer Blend için 3D içerik üretmek. Elbette büyük 3D programları kadar zengin ve kapsamlı bir program değil ZAM 3D. İleride Silverlight’ın kullanımı arttığında bu büyük 3D programlarının da XAML içerik üreten pluginler barındıracağını düşünüyorum. (Hatta belki şu anda vardır bile ama benim bilgim dışında) ZAM 3D modelleri, materyalleri, ışığı, animasyonu ile gayet başarılı. ZAM 3D’nin 15 günlük tam kapsamlı deneme sürümünü, e-mail onaylatarak bu linkten indirebilirsiniz.
Altta ZAM 3D ara yüzünü görüyorsunuz. 5 halkayı örnek için ben hazırladım. Programı kısaca şu şekilde açıklamaya çalıştım.
1- Temel objeler
2- Animasyon timeline
3- Sahnedeki objeler
4- Obje rotasyon işlemleri
5- Işık rotasyon alanı
6- Materyal, ışık vs.. gibi özelliklerin seçildiği alan
7- Materyal, ışık vs.. gibi özelliklerin kütüphanesi
Diyelim ki istediğiniz 3D sahneyi yarattınız ve artık bunu Blend’de kullanmak istiyorsunuz. O zaman yapmanız gereken menüde Edit>Copy XAML ile XAML kodu kopyalamak.
Blend’e dönüp XAML kodu açıyoruz.
Grid tagının kapanışını düzeltiyoruz.
Ve Grid’in içine ZAM 3D’den gelen kodu yapıştırıyoruz. Bu koddaki Viewbox tagına ihtiyacımız yok. Bunu siliyoruz.
Viewport’da ki widht, ve height ı silerek 3D objelerimizin bizim çalışma alanımızda tam olarak bulunmasını sağlıyoruz.
Ve işte ZAM 3D’de hazırladığımız 5 halka.
Dikkat: ZAM 3D’de hangi görünüm penceresi seçiliyken XAML’ı kopyalarsınız. Blend’e o ekrandaki kod geliyor. Yani “Top” penceresi seçiliyken kopyalama yapsaydık, halkalarımızın şu andaki görüntüsü tepeden olacaktı.
Sahnedeki 3D objelerinizin uzaklaşma ve yakınlaşma sırasındaki kırpılmalarını Camera özelliklerindeki “Near Clipping Plane” ve “Far Clipping Plane” ile ayarlarsanız.
Camera Orbit ile yaptığımız tüm rotasyon ve konum işlemleri ZAM 3D’den gelen objeler içinde geçerli.
Elbette .OBJ olarak import ettiğiniz 3D objelerin materyalleri üstünde olmayabilir. Blend ile bu konuyu da halledebiliyoruz. Bu sefer bir maşrapa objesi import ettim. Object panelinde objenin “DefaultMaterial” ını seçiyorum.
Objemiz alttadır. Şimdi bu objeye materyal ve ışık uygulayacağız.
Obje seçiliyken properties sekmesinde “Materials” kutusu bulunmaktadır.
Eğer material kutusuna sağ tıklarsanız. Detaylı bir material editörü açılacaktır. Bu editörü kullanarak objemizin rengi, parlama vs gibi bir çok özelliğini ayarlayabiliriz.
.OBJ’ye ait ışık ayarlarını da yapabiliriz. Altta ambians ışığını seçiyorum.
Işığı seçince Properties sekmesinde ona ait bir kutu belirir.
Işığın cinsi, rengi ve yönü ayarlanabilir.
Direk ışık ayarlarını da yapınca,
Ben alttaki gibi bir sonuç yakaladım.
Bu makalede Expression Blend 2’de 3D konularına değindim.
İyi çalışmalar
Teşekkürler.