Gengine 3D - Bir Flash 3D Motoru
Yağız Gürgül Tarih: 10/05/2008 Yorum: 9 adet
Okunma : 1090 Tutanlar: Bu yazıyı 4 kişi tuttu.
Kendi hazırladığım Flash 3D motorumu bugün sizlerle paylaşıyorum. Bu makalemde Gengine 3D hakkında biraz bilgi vermeye çalışacağım.
Nedir bu Gengine 3D?
Tanımlamak gerekirse, Gengine 3D Flash için hazırlanmış, 3D objeler oluşturmanızı veya göstermenizi sağlayan, AS3 ile yazılmış bir pakettir.
Peki neler yapabiliriz?
3D MovieClipler, 3D Butonlar, 3D Videolar yaratabilirsiniz. Ya da isterseniz 3DSMAX’ta tasarladığınız bir oda içinde dolaşabilirsiniz.Hatta tüm bu objelere MouseEvent ekleyebilirsiniz.Baktınız onlar da olmadı herhangi bir MovieClip’i sanki 3D’imiş gibi hareketlendirebilirsiniz.
Tarihçesi var mı?
Gengine 3D çok yeni.Ama 3D çalışmalara başlayalı yaklaşık 1-2 yıl oldu.Daha ilk zamanlarda kendi vektörel 3D motorumu hazırlamıştım. Ozamanlar AS2 vardı. Motorun yapabilecekleri sınırlıydı.1 0-20 küpü zar zor gösterirken AS3 sayesinde 200 küpü rahatça gösterebiliyor.
Performans Nasıl?
Şu anda Papervision ile performans konusunda yarışacak durumda. Yaptığım bir denemede 200 küp kullandım.
Bu şu demek:
-8x2x200=3200 Yüzey 3200 tane Sprite objesi
-8x200= 1600 Vertex
Yani her saniye şuna benzer bir fonksiyon çalışıyor:
for(i=0; i<1600; i++) {
vertex_isle();
}
for(i=0; i<3200; i++) {
yuzey_isle();
}
Bir de her yüzey için bitmap kaplama, ışık hesaplamaları vs.Bazı bilgisayarlarda kitlenme sebebi olmasına rağmen genelde çok rahat çalışıyor.
İyi de, neler yapabilirim ben 3D- Flash’la?
En basitinden bir slideshow yaptınız.Resimler gelsin ve gitsin.Ne kadar sıradan değil mi? Peki kullanıcı slideshow çervesini 3D olarak döndürse, çekiştirse sıradan olur mu?
Bir de galerileri düşünün.Elimizde bir carousel galeri olsun; ama Gengine 3D farkı ile galeri SWF içinde değil, siz galeri içinde olun.Sanki bir müzedeymiş gibi etrafa bakın resimlere yaklaşın vs.
Ya da daha farklı bir şey düşünelim. Mesela kendinizi anlatan bir siteniz var.Bir kaçta video dosyanız var. Sitenin ortasında bir televizyon ve yayında sizin videolarınız. Kullanıcı da mouse ile televizyonu döndürüyor.
Peki sadece 3D görüntü mü? Mesela bir sitenizde müzik yayını olsun.Neden bu ses 3D olarak kulağa gelmesin? Mesela hoporlörümüz sağdan sola döndüğünde seste ona göre azalsın artsın.
Kulağa her ne kadar hayal gibi geliyorsa da Gengine 3D ile bu dediklerimi yapmak gerçekten çok kolay :)
3D Animasyon yapabilir miyim?
Evet. Gengine 3D animasyon için, performansı yüksek olan Tweener sınıfını kullanıyor. Hatta birleşikte diyebiliriz :)
Kodlaması zor mu?
Eğer AS3 ile haşır neşirseniz Gengine3D size çok kolay gelecektir. Alt yapısı diğer 3D motorlarından çok farklı. Örneğin Papervision’da bir çok sınıf import etmeniz gerekirken Gengine3D ile sadece bir import satırı yazmanız yeterli.
Nereden öğrenebilirim?
Şu anda Gengine 3D için herhangi bir ders yok.Çok yakında MMİstanbul’da, videolar, makaleler, dersler, sunumlar olacak.
Şimdilik bu kadar :) Gengine 3D daha çok yeni.Ama şimdiden bir çok 3D motorların arasına girebilecek düzeyde. Şu anda Türkiye’nin ilk ve tek Flash 3D motorudur.Umarım ileride de tek olmayı başarır.
MMIstanbul’u takip etmeyi unutmayın :)
Hocam tebrikler.. Gerçekten güzel gözüküyor..
Gengine’nin papervision sınıfıyla yapılacaklara yetişmesi söz konusu mu? bu ya da ileriki sürümlerde. Ayrıca gengine’de hazır ışık komutları var mı?
teşekkürler..
Evet Ali AS3’e geçtim :)
Işık konusunda Gengine şu anda CellShading ve FlatShading destekliyor.Phong da yakında gelecek :)
Bunun dışında şu anda Papervision ile yapılan çalışmalara değil de sitelerle yarışabilir. Mesela çok rahat bir şekilde 3D FLV oynatma, 3D Menuler, 3D Galeriler yapabilirsiniz.
sanki biraz sandy ye benzettim ben kodlamayı. en azından oradan buradan tırtıklandığı, araya senin eklediğin satırlar çok belli oluyor
Aklın yolu birdir :) Ayrıca sınıfımdaki bir çok kod Sandy ve Papervision’ında kullandığı açık kaynak kodlardır.Mesela primitive ve UV gibi kodlar Andre’nindir.Sandy’nin veya PV’nin değil
Umarım anlatabilmişimdir.
kendi hazırladığım diye bir ifade kullanmasaydın keşke. güzel bir çalışma yapmışın ama tutupda "3d grafik motoru" yaptım demen saçma olmuş. işin büyük kısmını dışarıdan almışın gibime geldi. tutupta papervisionun kütüphanelerini kullanıpta daha sonra performans olarak papervision a yakın demek pek mantıklı değil.
ayrıca "türkiye deki ilk ve tek flash 3d motoru" gibi bir ifade de pek bir saçma ve gereksiz olmuş. şu küçük dağları ben yarattım tarzı ifadelerinden vaz geçmeni öneririm. neredeyse türkiye ye flashı ben getirdim diyecekmişin.
Hocam bu konuda size katılmıyorum.Eğer Papervision’ın kütüphanesini (ç)almış olsaydım, bir çok ışık sistemini kaplama metodları da motorun içinde olurdu.
Mesela kendi motorumdaki serbest kamera algoritmasını ben yazdım.Küptür, silindirdir tüptür, bunun gibi hazır objelerin 3D kordinatlarını da ben yazdım.MovieClip’i 3D olarak görüntülemeyi de ben yazdım.Ya da yukarıdaki orman örneğndeki gibi persfektif olmayan görüntü algoritmasını da ben yazdım.3D objelerin rotasyonu gibi tüm transform kodlarını hiç bir yere bakmadan gene kendim yazdım.Motorun içindeki cellshading ışık sistemini de ben yazdım ve hiç bir zaman bilgisayarıma PV veya Sandy indirmedim.Nasıl çalıştıklarını ya da nasıl bir metod kullandıklarını bilmiyorum.
Motordaki tek alıntı olan UV kordinatlarının Matrix’e çevrilme kodlarıdır. Yakında bir sunum vermeyi düşünüyorum orada daha detaylı tartışabiliriz :)
yoo çalmışın diye bir şey demiyorum zaten, sonuçta adamların free olarak dağıttığı bir çalışma. kullanmak yasak diye bir şey yok
komple almışın da demedim, sadece alıntılar var gibi duruyor dedim.
"Ayrıca sınıfımdaki bir çok kod Sandy ve Papervision’ında kullandığı açık kaynak kodlardır.Mesela primitive ve UV gibi kodlar Andre’nindir."
UV ile bitmap kaplamayı kastetmişin sanırım da, primitive derken neleri kastettin? 3d kordinatları 2d ye çevirme mi? biraz daha açarsan memnun olurum.
ayrıca örnekte depth problemleri var gibi. keşke hiç depth ayarlama yapmasaydın, en azından örnekteki bakabileceğimiz açılarda depth hangi nesnenin hangi depth te olacağı değişmeyecek gibi duruyor.
Tebrikler.Motoru gormeden yorum yapmak istemem ama orneklerine bakilacak olursa bazi yorumlarda da bahsettigin gibi papervision3d motorunun kodlarini baya bi (basariyla) kullandigin belli.Ama yinede ugrasmana sevindim.Yalniz benim tavsiyem (tecrubelerimden yola cikarak konusuyorum)heryerde vurgu yaptigin gibi henuz lisedeyim lafinin arkasida dur ve su anki vaktini cok daha verimli degerlendir keza ilerde bunlarla ugrasacak pek vaktin olmayacak.Bence çakma bi papervision3d motoru yapmaktansa papervision3d motorunun gelistiricilerinden biri olmaya ve olaya bir yenilik katmaya calis.Ornegin henuz cok yeni olan ve super isleyen yine papervision3d motoru tabanli vectorvision motorunu incele neler demek istedigimi anlarsın.Kim bilir belki birgun Barcinski & Jeanjean adinin yerine usta bir software developer olarak senin adini anariz.Kimbilir belki birgun codes.google da bir turk evladinin adini okuruz. Herneyse calismalarinda basarilar.
Haber
Etkinlikler
Eğitim
Akbank exi26 Şipşak: Gençler için Fotoğraf Yarışması
Akbank exi26 Şipşak: Gençler için Fotoğraf Yarışması
Akbank Gençlik Bankacılığı exi26 tarafından düzenlenen fotoğraf yarışmasına dijital fotoğraf makinelerinizle çektiğiniz fotoğraflarla katılabilirsiniz...
Kategori:
Eğitim




tebrikler gazing sanırım as3 olayına girmişsin..