Cumartesi, Ocak 27, 2007

Örnek Proje Çaydanlık-DirectX 10.1

Bu makalemde sizlere bir örnek çalışma göstereceğim:Çaydanlık
Çaydanlık örneğini seçmemin nedeni Matematiksel şekilleri en güzel gösterebilen mesh lerden birisidir.Programınıza eklenen her mesh aslında üçgen şekillerinden oluşmuştur.Grafik kartınız ne kadar üçgeni destekliyorsa o kadar iyidir.Ekran kartlarının milyonlarca üçgeni desteklediğini belirtsem herhalde endişenizi yokedecektir.

gelelim çalışmamıza

Sample Browser ı açıp Empty project i bir yere yükleyin,onun üzerinden işlem yapacağız

variables kısmına aşağıdaki kodu yapıştırın

private Mesh teapotmesh = null; //Çaydanlığın render edilmesini sağlayan mesh
private Material teapotmaterial; //Çaydanlığın render edilmesini sağlayan materyaller

OnCreateDevice Metdonu bulup aşağıdaki kodu metodun en sonuna yapıştırın

//Teapot mesh ini ve gereken materyalleri oluştur
teapotmesh = Mesh.Teapot(e.Device);
teapotmaterial = new Material();
teapotmaterial.DiffuseColor = new ColorValue(1.0f, 1.0f, 1.0f, 1.0f);

OnresetDevice metodunu bulup aşağıdaki kodu yapıştırın

//ışıkları ayarla

e.Device.Lights[0].DiffuseColor = new ColorValue(1.0f, 1.0f, 1.0f, 1.0f);
e.Device.Lights[0].Direction = new Vector3(0, -1, 0);
e.Device.Lights[0].Type = LightType.Directional;
e.Device.Lights[0].Enabled = true;


son olarak da OnFrameRender metodunu bulup Beginscene kodundan sonra aşağıdaki kodu yapıştırın

device.Transform.View = camera.ViewMatrix;
device.Transform.Projection = camera.ProjectionMatrix;
device.Transform.World = Matrix.RotationX((float)appTime);
device.Material = teapotmaterial;
teapotmesh.DrawSubset(0);

ve uygulamanızı çalıştırınız

360 derece dönen bir çaydanlığınız olacak.Sağ mouse tuşuyla çaydanlığı istediğiniz yere döndürebilirsiniz.Bu örnek Mesh leri anlamanız için verilmiştir.

Ve görüntü şu şekilde oluşacaktır:

2 yorum:

Adsız dedi ki...

mrb ben directx e yeni başladım makalenizi begendim ama bahsi gecen sample browser belliki onceden hazırlanmış bi taslak onu bulamıyorum onun da linkini eklermısınız cok sevinirim simdiden tesekkürer

İbrahim Ersoy dedi ki...

merhabalar...

bahsi geçen sample browser directx sdk nın içinde bulunan örnekleri görüntülemenize yarayan bir uygulamadır ve directx sdk ile birlikte gelir...

Saygılarımla
İbrahim Ersoy