1/2

Oyun Hazırlıyorum - 3

Serkan Birkan 3.06.2010 - 12:31
Direct 3D'nin değişik özelliklerini 3 başlık altında inceliyoruz.

Direct3D 

Direct 3D, yazılım geliştirenlerin kullandığı bilgisayarın özelliklerini çok daha iyi kullanabilmeleri için Microsoft'un API'lerinden biridir. Direct 3D hakkında bir çok bilgi verilebilir, ama biz Direct 3D'nin değişik özelliklerini içeren 3 başlık altında bunu inceleyeceğiz. Bunlar: 

1- Direct 3D'ye genel bakış

2- Direct 3D Retain Mode

3- Direct 3D Immediate Mode

Direct 3D, Direct X'in bir parçasıdır ve daha önce de belirttiğimiz gibi bir API'dir. Bu şekilde 3 boyutlu grafikler çok daha hızlı olarak kullanılabilir. 

DirectX 

DirectX, bir API'ler bütünüdür ve bir COM (Component Object Model) olarak kullanılır. Bu API'ler, Windows ortamında gerçek-zamanlı, yüksek performanslı uygulamalar geliştirmek için objeler ve fonksiyonlar sağlar.

Bu tip kütüphaneler  üretilmesinin esas sebebi, Windows’un, oyun ve multimedia gibi yoğun grafiksel işlemler içeren programları göstermede çok zayıf  kalmasıdır. Aynı programların DOS versiyonları çok daha hızlıdır. DirectX, bu gibi programların yüksek performansla işlenmesi için standart ve çok güçlü bir platform sunmaktadır.

DirectX bu imkanı sunarken bilgisayardaki donanımdan bağımsız olarak çalışır. Bunu yaparken donanımla aralasında bir arayüz sağlar ve uyumsuzlukları en aza indirger. Örneğin DOS’la yazılmış programlar bir çok değişik donanım konfigürasyonunu göz önüne almalı ve ona göre davranmalıdır. Ama şimdi, bütün bu uyumsuzluk yükü programcının üzerinden alınmış, daha az kodla daha hızlı program geliştirme sağlanmıştır.

DirectX tek başına bir varlık değil, birbirinden bağımsız çalışan uygulamaların bütünüdür. Bunlar: 

  • DirectDraw: 2 boyutlu işlemler için, örneğin “fast 2D blitting (bit block transfers)”

  • DirectSound: Programlara ses ekleme

  • DirectPlay: Uygulamalar için birden fazla kullanıcı eklemek, network iletişimi sağlamak için

  • Direct3D: 3 boyutlu işlemler eklemek için

  • DirectInput: Joystick, mouse, klavye vb.’den gelen bilgileri almak için  

DirectDraw  

DirectDraw bileşeni, direkt ya da dolaylı olarak Direct3D tarafından kullanıldığından  önemlidir. DirectDraw, yazılım ve donanım arasındaki donanım soyutlama tabakasını (hardware abstraction layer (HAL)) oluşturur. HAL,  programları donanım farklılıklarından korur. DirectDraw kullanan programlar yalnızca DirectDraw’la iletişim kurar ve HAL’e ile direkt ya da dolaylı olarak ulaşamazlar.

DirectDraw 2 boyutlu uygulamalar için performans artırıcı destek ve ekran dışındaki görüntülere direkt ve hızlı ulaşım sağlar. Ayrıca blitting (bit block transfer) ve buffer flipping (tampon yerdeğiştirmesi)’i kullanmamıza, saydam blitting yapmaya, ekranda obje ve çok katmanlı animasyonlar oluşturmaya olanak tanır. Bütün bu özellikler programların Windows ortamında çok daha hızlı ve performanslı çalışmasını sağlar.

DirectDraw Objeleri

DirectDraw kullanan programlar 2 obje kullanır, DirectDraw ve DirectDrawSurface. DirectDraw objesi ekran kartını simgeler, DirectDrawSurface ise ekrana gelecek görüntünün oluşturulduğu görüntü hafızasını temsil eder. Bunun yanında uygulamalar DirectDrawPalette ve DirectDrawClipper gibi yardımcı objeler de kullanabilirler. 

Genel Kullanım

DirectDraw kullanmada kullanılan bir yol şöyledir:

1-     Ön ve arka tamponu hazırla (görüntüleri yer değiştirmek için kullanılırlar)

2-     Ekrana getirilecek görüntüler direkt ekrana gelmeden önce arka tamponda çizilir

3-     Çizim tamamlanınca, ön ve arka tamponlar yerdeğiştirilir. Bundan sonra arka tampon ön tampon, ön tampon da arka tampon olmuş olur.