Profili Göster

Flash ve Papervision3D ile 3D Animasyon

Engin Yöyen Tarih: 3/01/2008 Yorum: 0 adet

Okunma : 360 Tutanlar: Bu yazıyı 1 kişi tuttu.

Flash içerisinde 3D animasyon geçen yıla kadar hemen hemen hayal sayılıyordu. Her ne kadar 3D başlığı altında animasyonlar yapılsada biz bunların gerçek anlamda 2 li koordinat sisteminin dışına çıkmadığını biliyorduk. Flash takipçileri mutlaka papervison3D hakkında birşeyler duymuşlardır.Papervision3D flash için 3D moturu hazırlıyor. Papervison 3D sınıfını aşağıdaki adresten indirebilirsiniz. Bu makalede çok detaya girmeden nasıl kullanabileceğinizi anlatmaya çalışağım.

mmistanbul.com

Not: Uygulamanın çalışan haline bu adresten ulaşabilirsiniz

 //Bizim için gerekli olan sınıflar import ediyoruz
import org.papervision3d.scenes.*;
import org.papervision3d.cameras.*;
import org.papervision3d.objects.*;
import org.papervision3d.materials.*;
//Yeni bir MovieClip oluşturuyoruz
var holder:MovieClip = new MovieClip();
//Movieclibi koordinatlarını sahnenin ortasına gelecek şekilde yerleştiriyoruz.
holder.x = stage.stageWidth / 2;
holder.y = stage.stageHeight / 2;
//Movie Clibi display liste ekliyoruz.
addChild(holder);
//Yeni bir sahne(scene) oluşturuyoruz.Ve arguman olarak holder movieclibin gönderiyoruz.
//holder movie clibimiz sahneye tutacak diyebiliriz
var scene:Scene3D = new Scene3D(holder);
//yenibir camera oluşturuyoruz.Bu arada eğer herhangi bir kameranız yoksa ekrandaki hiç bir
//şeyi göremezsiniz
var camera:Camera3D = new Camera3D();
//kütüphanemizde yer alan air logosunu yeni bir bitmap material olarak
//kullanıyoruz.Tabii ki kütüphanedeki logunun linkage ID vermenzi gerekiyor.
var imageMat:BitmapAssetMaterial = new BitmapAssetMaterial("air");
//burada materyalimizi iki yönlü olmasını saglıyoruz
//Default olarak bu true geliyor.yani materyalin sadece tek tarafı görükücektir.
imageMat.oneSide = false;
//Materyalimizin smooth özelliğini devrey sokuyuruz
//be şekilde bozulmaları engelliyebiliriz.
imageMat.smooth = true;
//Burada bir çember oluşturduğumuzu düşünün.Çemberin radyanını 820 olarak ayarlıyoruz
var radius:Number =820;
//Buradaki "angle" bizim açımız, okuldan hatırlarsak bir dairenin açısının
//360 derecedir.Ama biliyoruzki flash derece kavramı ile çalışmıyor
// " Math.PI * 2 " iki yarı dairenin birleşmesi demek yani bir tam daire
//yani Math.PI = 180 derecedir. bizim bunu 8 bölmemizin sebebi ise
// ekrana 8adet logo eklemek istememiz.Bu sayede her bir logu arasındaki ölçü eşit olacaktır
var angle:Number = (Math.PI * 2) / 8;
//İkinci açımız ise mouse her hareket ettiğinde değişecek olan açı
var angleX:Number=0;
//Burada for loop kullanarak logo sayısını arttırıyoruz.
for (var i:Number=0; i<8; i++) {
//Burada her loop ta yeni bir plane oluşturuyoruz
//plane verilen ilk parametre imageMat materyalimiz
//İkinci ve üçünçü parametremiz materyalimizin x ve y koordinatları
//Dördüncü ve beşimiz materyalimiz ise resmin üzerindeki denetim noktaları
//Numara arttıkça materyal üzerinde çizilen üçgen sayısı artacaktır.Bu çgen sayısı
//Materyalin nekadar iyi gözükeceğini belirliyor
//Tabii üçgen sayısı artıkça performans düşecektir
var plane:Plane = new Plane(imageMat, 304, 264, 10, 10);
//Materyalimizi tutan plane ait x ve y koordinatları
// x koordinatı ayarlıyoruz.Buradaki sin ve cos açıklamalrını başka bir makalede değineceğim
//Sadece birşeye değinmek istiyorum
//eğer bu animasyonu 2d oalrak yapmak isteseydik "z" koordinatına değil y koordinatına
// Math.sin in açısını vericektik.
plane.x = Math.cos(i * angle) * radius;
// z koordinatını ayarlıyoruz
plane.z = Math.sin(i * angle) * radius;
//Plane donme açısını burada hesaplıyoruz/
plane.rotationY = (-i * angle) * (180/Math.PI) + 270;
//Flashtaki display list mantığıyla papervisiondaki liste mantığı aynı
//oluşturduğumuz plane leri sahnenin içine koyuyoruz.
scene.addChild(plane);
}
//on enter frame eventini ayarlıyoruz.Sahneyi girer girmez çalışacak olan fonksiyonu belirliyoruz
this.addEventListener(Event.ENTER_FRAME,run);
function run(e:Event):void {
//Buradaki angle X cameranın hareketınde kameranın nerde yer alcagını belirliyor
angleX += (this.mouseX - 200) * 0.001;
//cameranın x posizyonunu ayarlıyoruz
camera.x = Math.cos(angleX) * 1000;
//camera nın z pozisyonunu ayarlıyoruz
camera.z = Math.sin(angleX) * 1000;
//burada camerayı render ediyoruz
scene.renderCamera(camera);
}

Papervision 3D Sınıfı http://papervision3d.googlecode.com/files/Papervision3D15.zip

Google Code sayfası http://code.google.com/p/papervision3d/downloads/list

Papervision3D web sitesi http://papervision3d.org/

Papervison3D Blog http://blog.papervision3d.org

Papervison3D Wiki http://wiki.papervision3d.org/index.php?title=Main_Page

Kaynak Dosyalar Kolay Gelsin

aç-kapa İçeriğin rss beslemesi kullanımda değil Yorumlar

İçeriğe kayıtlı yorum bulunmuyor. İlk yorumu siz buradan ekleyebilirsiniz.


yeni üyelik | şifremi unuttum

Etkinlikler Etkinlikler RSS Etkinlikler

aç-kapa 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

aç-kapa Konferans 2. Ulusal Yazılım Mimarisi Konferansı - UYMK'08

2. Ulusal Yazılım Mimarisi Konferansı - UYMK'08

2.Ulusal Yazılım Mimarisi Konferansı (UYMK’08), 11 – 12 Eylül 2008 tarihlerinde Ege Üniversitesi Bilgisayar Mühendisliği Bölümü ev sah...
Kategori: Konferans

aç-kapa Eğitim İstanbul'da Bir Sürrealist: Salvador Dali

İstanbul'da Bir Sürrealist: Salvador Dali

Picasso ve Rodin’den sonra kimi görmek istersiniz deseler; Salvador Dali listenin ilk başlarında yer almaz mı? Ressam, yazar, bilim adamı, tasar...
Kategori: Eğitim

aç-kapa Fuar CeBIT 2008 Bilişim Eurasia 7 - 12 Ekim 2008' de

CeBIT 2008 Bilişim Eurasia 7 - 12 Ekim 2008' de

CeBIT Bilişim Eurasia bu yıl 7 – 12 Ekim tarihlerinde düzenleniyor Adını dünyanın en büyük on fuarı arasına yazdırarak, İstanbul’u Avrasy...
Kategori: Fuar

aç-kapa Sempozyum Yazılım Kalitesi ve Yazılım Geliştirme Araçları Sempozyumu 2008 (YKGS 2008)

Yazılım Kalitesi ve Yazılım Geliştirme Araçları Sempozyumu 2008 (YKGS 2008)

Yazılım Kalitesi ve Yazılım Geliştirme Araçları Sempozyumu 2008 (YKGS 2008), yazılım mühendisliği alanında; kalite deneyimlerini, çözümlerini, yazılım...
Kategori: Sempozyum

üyeler En Yeni Üyelerimiz

MMIstanbul Adobe UG MMIstanbul Adobe UG

adobe user group

ColdFusion, Flex, AIR, Flash , PDF, Dreamweaver, Fireworks, Photoshop, Illustrator, INdesign, Connect, Premiere, Soundbooth, Contribute, Lightroom, InCopy, JRun, LiveCycle, Acrobat, AfteEffects, Resmi Adobe Kullanıcı Grubu.

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 251 (0 kayıtlı, 251 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

MMBlog MMIstanbul Blog'undan

Ne Nedir Kampanyası Başlıyor!

Selam arkadaşlar, MMIstanbul içeriğinin gelişmesine katkıda bulunmak isteyen arkadaşlarımıza söyle bir önerimiz var. Sizleri çok fazla yo ...

Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız

MMIstanbul Online Seminerlerine Nasıl Katılabilirim?

Bazı Akıl - Fikirleriniz Olabilir

MMIstanbul' u Nasıl Desteklerim?

coldfusion mysql ubuntu
 

Burada bulunan kategorimize 3, 6 12 ay sürelerince sponsor olabilir, hem topluluğumuzun gelişimine katkılarda bulunup, hem de ürün / servis ya da markanızın yüzbinlerce insan tarafından pozitif olarak tanınmasını sağlayabilirsiniz.