DIRECTX. 1980'lı Yıllar ve MSDOS

Benzer belgeler
BİT in Temel Bileşenleri (Yazılım-1)

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

Sanal Ortamda Nesnelerin Haptic Kol ile Manipülasyonu. Sevcan AYTEKİN Alpaslan DUYSAK

Doğu Akdeniz Üniversitesi Bilgisayar ve Teknoloji Yüksek Okulu Bilgi teknolojileri ve Programcılığı Bölümü DERS 1 - BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

YRD. DOÇ. DR. AGÂH TUĞRUL KORUCU Kernel çeşitleri

Üç Boyutlu Grafik Teknolojilerinin Mobil Öğrenme Alanı ile Bütünleştirilmesi

BCA611 Video Oyunları için 3B Grafik. Zümra Kavafoğlu

Teknoloji Kullanımı. Oyun Motorları

TEMEL BİLGİ TEKNOLOJİSİ KULLANIMI. Enformatik Bölümü

Bilgisayar Mimarisi Nedir?

Dersin Konusu ve Amaçları: Ders P lanı: Bölüm 1: Bilgi Teknolojilerinde Temel Kavramlar

DONANIM. 1-Sitem birimi (kasa ) ve iç donanım bileşenleri 2-Çevre birimleri ve tanımlamaları 3-Giriş ve çıkış donanım birimleri

O P C S T A N D A R D I

Temel Kavramlar-2. Aşağıda depolama aygıtlarının kapasitelerini inceleyebilirsiniz.

İşletim Sistemleri. Discovering Computers Living in a Digital World

Android e Giriş. Öğr.Gör. Utku SOBUTAY

OPC Data Access (DA) Temelleri

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

İŞLETİM SİSTEMLERİ. (Operating Systems)

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Temel Bilgisayar (Basic Computer) Yazılım (Software)

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Hazırlayan: Cihan Aygül BT Rehber ÖĞRETMENİ

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

Object-oriented Graphics Rendering Engine (OGRE)

DONANIM KURULUMU. Öğr. Gör. Murat YAZICI. 1. Hafta.

Kemalettin YıldY KADIR HAS UNIVERSITY. UNIX SYSTEM ADMINISTRATOR

Wake-On-Lan& LDCM Nedir?

Çekirdek Nedir? Ne yapar?

BİLGİSAYAR KULLANMA KURSU

ENF 100 Temel Bilgi Teknolojileri Kullanımı Ders Notları 2. Hafta. Öğr. Gör. Dr. Barış Doğru

Bilgisayar Grafiği. Volkan KAVADARLI

PARALEL HESAPLAMA ÇAĞRI GİDER ENES BİLGİN

Bilgisayar Yazılımları

EYLÜL 2012 İŞLETİM SİSTEMLERİ. Enformatik Bölümü

Yer yüzündeki en küçük, en hafif Handycam

KONU 1 BİLGİSAYAR VE ÇEVRE ÜNİTELERİ

PROGRAMLAMA TEMELLERİ

Aşağıdaki programlardan kartınıza uygun bir program kullanarak ekran kartınıza hızaşırtma yapabilirsiniz.

Bilgisayar İşletim Sistemleri BLG 312

Bu 7.1 Ses Kartı ev sinema ve eğlence sistemleri için mükemmeldir. Doyurucu ve benzersiz 3B ses deneyimi.

BSM 532 KABLOSUZ AĞLARIN MODELLEMESİ VE ANALİZİ OPNET MODELER

Temel Bilgi Teknlolojileri 1. Ders notları 5. Öğr.Gör. Hüseyin Bilal MACİT 2017

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

İŞ İSTASYONU SEÇİM REHBERİ

İşletim Sistemleri; İÇERİK. Yazılım BİLGİ TEKNOLOJİLERİ VE UYGULAMALARI Yazılım Türleri

WINDOWS TABANLI İŞLETİM SİSTEMLERİNE GENEL BAKIŞ

DİZÜSTÜ BİLGİSAYAR (5)

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması

NETWORK BÖLÜM-5 OSI KATMANLARI. Öğr. Gör. MEHMET CAN HANAYLI CELAL BAYAR ÜNİVERSİTESİ AKHİSAR MESLEK YÜKSEKOKULU 1/27

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, Kabuk ve diğer temel kavramlar) Öğr.Gör. Dr. Dr. Şirin KARADENİZ

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

Bilgisayar Donanım ANAKART ÜZERĐNDE YER ALAN GĐRĐŞ/ÇIKIŞ (I/O) BAĞLANTI NOKTALARI

Bilgisayar, elektronik bir cihazdır ve kendi belleğinde depolanan talimatları sırasıyla uygulayarak çalışır. İşler. Bilgi İşlem Çevrimi

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış

Bilgisayar en yavaş parçası kadar hızlıdır!

Veritabanı. Ders 2 VERİTABANI

BİLGİSAYAR DESTEKLİ TASARIM AUTOCAD DERSİ. 1. HAFTA Öğr. Gör. Serkan ÖREN

Akılda kalıcı sahneler

İşletim Sistemlerine Giriş

BİLGİSAYAR DESTEKLİ TEKNİK RESİM. Hazırlayan: Araş. Gör. Ezgi Öztorun

SAB 103 TEMEL BİLGİSAYAR KULLANIMI

1 DERS İZLENCESİ 2 BİLGİSAYARA GİRİŞ Bilgisayar nedir? Bilgisayarın tarihçesi Bilgisayarın kullanıldığı alanlar Bilgisayarın kullanılmasında dikkat

1. PS/2 klavye fare 2. Optik S/PDIF çıkışı 3. HDMI Giriş 4. USB 3.0 Port 5. USB 2.0 Port 6. 6 kanal ses giriş/çıkış 7. VGA giriş 8.

C# nedir,.net Framework nedir?

Merkezi İşlem Birimi Kavramı (CPU)

Vmware Esx Server Nedir Ve Ne İşe Yarar

İşletim Sistemi. BTEP205 - İşletim Sistemleri

BİLGİ TEKNOLOJİSİNİN TEMEL KAVRAMLARI. 1-Bilgisayar, donanım ve yazılım kavramları 2-Bilgisayar çeşitleri 3-Bilgisayarlar arsındaki farklılıklar

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Öğr.Gör. Mehmet Can HANAYLI

Sanallaştırma Nedir? Bahadır Demircioğlu. Şubat, 2013

Bilgi ve iletişim teknolojileri

ÇOK ÇEKİRDEKLİ İŞLEMCİLER VE PARALEL YAZILIM GELİŞTİRME OLANAKLARI HAKKINDA BİR İNCELEME

Satış, pazarlama, iletişim ve müşteri deneyimleriniz için yaratıcı çözümler sunmaktayız.

C) 19 inçlik CRT ile LCD monitörün görünebilir alanı farklıdır. D) Dijital sinyali, analog sinyale çevirmek için DAC kullanılır.

İNTERNET PROGRAMCILIĞI - II

Bilişim Teknolojilerine Giriş

Pardus. S.Çağlar Onur, 21 Aralık Pardus Projesi [TÜBİTAK / UEKAE] Linux Kullanıcıları Derneği

U SB M I N I ADAPTE R BLUETOOTH

COĞRAFİ BİLGİ SİSTEMLERİ SERVER MİMARİSİ SERVER UYGULAMA GELİŞTİRME EĞİTİMİ

Qlik Sense için sistem gereksinimleri. Qlik Sense June 2017 Copyright QlikTech International AB. Tüm hakları saklıdır.

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

Bilgisayarların Gelişimi

Bitirme Ödevi Sunumu PLATFORM BAĞIMSIZ BENZETİM PROGRAMI. Danışman : Yrd.Doç.Dr. D Feza BUZLUCA Gökhan Akın ŞEKER

EKLER EK 12UY0106-5/A4-1:

Spring Giriş Eğitimi

.. YILI BİLGİSAYAR SİSTEM KURULUM BAKIM ONARIM VE ARIZA GİDERME KURS PLANI MODÜL SÜRESİ

Yazılım Çeşitleri. Uygulama Yazılımları. İşletim Sistemleri. Donanım

Kişisel Bilgisayarın Parçaları

İşletim Sistemleri (Operating Systems)

MOBIL UYGULAMA GELIŞTIRME

.. YILI BİLGİSAYAR SİSTEM KURULUM BAKIM ONARIM VE ARIZA GİDERME KURS PLANI MODÜL SÜRESİ

İşletim Sistemlerine Giriş 2. Kaynakların Paylaşımı. Öğr.Gör. Dr. Şirin KARADENİZ

TEMEL BĐLGĐ TEKNOLOJĐLERĐ KULLANIMI BÜLENT TURAN

Giriş Çıkış Birimleri:

Transkript:

DIRECTX Son günlerde PC ile ilgili forumlarda kim ekran kartı tavsiyesi ile ilgili bir başlık açarsa muhakkak bir iki kişi "Arkadaşım şimdi ekran kartı alma. Directx10'u destekleyen ekran kartları çıkacak yeni ekran kartlarını bekle" diye tavsiyelerde bulunuyorlar. Oysa alınacak alt düzey bir Direct X10 uyumlu ekran kartı, üst düzey bir DirectX 9 uyumlu ekran karttından çok daha yavaş olacaktır. DIRECTX nedir Directx10 destekli bir ekran kartı almaya karar versek bize ne kazandıracak Directx'in çıkış tarihinden başlayarak şu anki aşamaya gelinceye kadarki gelişmeleri makalemizde incelemeye çalışacağız. Şimdiye kadar yapay zekâsı bir insanınki kadar iyi olan bir bilgisayarla oyun oynadınız mı Bu şu an için maalesef mümkün değil. Daha fazla olasılığı değerlendirebilen, bir B planı olan karmaşık stratejiler kurabilen, öğrenmeye uygun ve risk değerlendirmesi yapan sistemler, bilgisayarları daha değerli rakipler haline getirebilir. Özellikle her patlamadan sonra ortaya çıkan ve bir birinin aynı olan siyah delikler yerine ufalanmış duvar ve kırılmış cam parçalarını nesnelerin yakınlarına dağılmış olarak göremedik veya patlayan bir evin parçaları sahnenin her tarafına dağıldığını da göremedik. Bir kapıyı kurşunlarla delik deşik edip etrafa saçılan odun parçalarını ayrıntılı bir şekilde veren herhangi bir oyun hiç oynayabildiniz mi Şimdiki oyunlarda birini vuruyorsunuz ve aynı bez bir bebeğin yere düşmesi gibi yıkılıp kalıyorlar. Yani oyunlarda büyük bir devrim gerçekleşmedi henüz. Ekran kartlarındaki gelişmeye paralel bir şekilde arayüzlerde de gelişmeler oluyor olması da gerekir. Gerek ekran kartları gerekse ekran kartlarının kullandığı yazılımların tek hedefi son kullanıcıya daha gerçekçi, insan zekâsına daha yakın oyunlar oynatabilmek. Bu yazılımlardan biride Directx'tir. Windows 95'ten önce çıkan oyunlar yani DOS altında çalışan oyunlar, ekran kartı ve joystick gibi donanımlara direk ulaşabilmekte idi. Dolayısı ile herhangi bir aracı programa da gerek yoktu. 1980'lı Yıllar ve MSDOS

*Çok fazla değişik donanım yok *Herkes kendi kodunu yazıyor *PC'lerin yetenekleri çok az *Ses yok, ağ hiç yok 1990'lı Yılların başı *Çeşitlenen donanım *Hala herkes bütün işi baştan yapıyor.

*Ses kartları için ilk ortak sürücüler *Win 3.1 (İlk kez grafiksel kullanıcı arabirimi gerçekleştirildi) *MS-DOS 6 *Ses ve seri bağlantı Windows 95'ten önce çıkan oyunlar yani DOS altında çalışan oyunlar, ekran kartı ve joystick gibi donanımlara direk ulaşabildiğini yukarda bahsetmiştik. Taki Windows 95'in çıkana kadar. Windows 95'in çıkış ile birlikte gelen korumalı bellek yönetimi oyun üreticileri için yeni bir problem getirdi: bu yeni işletim sistemi, belleğe direk erişilmesini önlüyordu. Oyun yapanlar artık çıkmaza girmişlerdi. İşte Microsoft'un ilk hedefi bu sorunu çözmekti. 3 Microsoft çalışanı, DirectX denilen sistemi geliştirdiler. Oyun programcıları artık hafızaya direk erişmek zorunda değillerdi. Ayrıca DirectX kodcuların işini azaltan birçok yeni ve standart kütüphane içeriyordu. Aslında Microsoft bu yaklaşımı daha önce de denemiş; ancak başarılı olamamıştı. Microsoft mevcut haliyle fazla ileri gidemezdi. Çünkü kaliteli grafikler ve sesler üretemiyordu. Oysa Mac'ler grafik alanında da Microsoftun önünde idi. Profesyonel 3 boyutlu uygulamalarda akla gelen tek isim, Silicon Graphics'di. Firma, sahip olduğu ve kendi geliştirdiği OpenGL teknolojisi sayesinde hem çok kaliteli ve performanslı 3 boyutlu grafikler üretiyor, hem de bu alanda yazılım geliştirmeyi de kolaylaştırdığından, geniş destek görüyordu. Ekran kartları büyük bir hızla gelişiyor bu gelişme paralel olarak hemen her kartın özellikleri farklı olabiliyor. Programcıların da her kart için ayrı kod yazmaları mümkün olmadığına göre bütün kartların ve yazılımın anlaşabileceği ortak bir platforma ihtiyaç var. İşte bu boşluğu API (Application Programming Interface, Uygulama Programlama Arayüzü) dolduruyor. API, uygulamalarla onları çalıştıran donanımın anlaşmasını sağlıyor. Programlar kodlarını direk donanıma aktarmadan standart biçimde API`ye aktarıyorlar. Ekran kartının sürücü yazılımı da API`den aldığı bu standart kodları kartın kullanabilceği şekle çevirip karta ulaştırıyor. Oyunlarda en sık kullanılan iki API OpenGL ve Direct3D`dir. OpenGL OpenGL grafik kütüphanesi, grafik donanımına ait birara yüzdür.2d ve 3D nesnelerden oluşan hareket eden görüntüler üretmemize olanak sağlar. OpenGL

Silicon Graphics tarafından geliştirilmiştir. Direct3D den daha eski ve sağlamdır OpenGL tamamen nesneye dayalı değildir fakat kendi nesnelerimizi oluşturmak oldukça kolaydır. OpenGL ile kendi nesnemizi oluşturabilir ve dokulandırabiliriz OpenGL tamamen portatiftir ve bir çok platform destekler Örneğin MacOS,windows,BeosSGI dan OpenGL i lisanslamışlardır. Ayrıca OpenGL network üzerindede çalışabilir. OpenGL komutlarını network üzerinden ileten bir protokolda vardır. Örneğin sever bir similasyonu hesaplamalrını yapan süperbilgisayar client ise serverin gönderdiği OpenGL komutlarını yorumlayan bir bilgisayar olabilir. *SGI tarafından 1992'de duyuruldu *İyi tanımlanmış ve açık kaynaklı *Kolay kullanım *14 yılda sadece 5 değişiklik *OpenGL Architecture Review Board (ARB) tarafından özellikleri belirleniyor. *Donanım üreticileri yeni standardı beklemeden yeni özellikler ekleyebiliyor. DirectX'ten sonraki en ünlü 3B API'si ise OpenGL. DirectX'ten çok daha uzun süredir ortalarda ve birçok işletim sisteminde de desteği bulunuyor. DirectX gibi OpenGL de sürekli düzeltiliyor, güncelleniyor ve yetenekleri artırılıyor. Yine DirectX gibi tüm ekran kartları tarafından destekleniyor. Dahası en yeni 3B özellikleri, asıl OpenGL standardında bulunmasa bile, OpenGL Uzantıları (extensions) adı altında eklenebiliyor. Sıklıkla çizim işlemcisi (graphics processor) üreticileri bazı uygulamalar ve oyunlardaki belirli etkileri desteklemek kendi OpenGL uzantılarını sürücülerine ekliyorlar. Çoğunluk eserde DirectX egemenliği sürse de, hala birçok oyun OpenGL için yazılmaya devam ediyor. Bunun en iyi örneklerinden birisi id Software tarafından yayınlanan Texan; hatta birçok başka kuruluş da, kendi eserlerinde kullanmak üzere, id Software'in 3B oyun motorunu lisanslamış bulunuyor.. DirectX Genel anlamı ile ifade edecek olursak, DirectX programlarla (uygulamalar ve oyunlar) ile grafik kartınızı çalıştıran driverlar, ses ve diğer bilgisayar donanımları arasındaki bağlantıyı sağlayan bir arayüzdür. DirectX, 3D rendering (nesnelerin yüzeyinin doku ile örtülmesi ve bunlara renk, gölge ve tonlama verilerek gerçekçilik kazandırılması

işlemi), video playback, capture, TV görüntüleme uygulamaları, joystick ve Mouse ara yüzleri, çoklu oyunlar ve daha fazlası gibi birçok önemli fonksiyonu yerine getirmektedir. Mesela multiplayer bir oyun yapmaya çalıştığımızı düşünelim, eger DirectX kullanmazsak bilgisayarlar arasındaki iletişimi sağlayacak kodu da bizim yazmamız gerekir. Bu fazladan çaba demek olur ve de hata olasılığını artırır. Burada DirectX herşeyi bizim yerimize yapar gibi de düşünmemek gerekir, ancak isleri önemli bir biçimde hafiflettiği de ortadadır. DirectX bilgisayarın grafik donanımına doğrudan erişir, bu da uygulamalarımızın çok daha hızlı işlemesini sağlar. Basitçe tarayıcılar bir etkiyi matematiksel olarak tanımlıyor. Örneğin bir taşın ıslak görünmesini istiyorsanız, parlaklık etkisini, yansımaları, aydınlanmayı ve diğerlerini tanımlayan bir tarayıcı yazmanız yeterli. Çizim işlemcisi bu etkileri gerçek zamanlı hesaplamak için tarayıcıyı kullanıyor. Özetlersek; *Çok amaçlı çoklu ortam kütüphanesi *1995'te ilk sürüm *Donanım kaynaklarına doğrudan erişim *Ses, görüntü ve kontrol araçları desteği *Ağ desteği 2000'lı Yıllar

*Çok özelleşmiş donanım *Programlanabilir boruyolları *İnternet üzerinden oyun *Surround ses sistemleri *DirectX 8/9 DirectX mimarisi *HAL: Hardware abstraction layer *HEL: Hardware emulation layer *Donanımdan bağımsız kod imkânı *Beyaz yalanlar ve device_caps

Pratik DirectX uygulamaları *Tüm Oyunlar (RPG,MMO,RTS ) *Peer-to-peer ağlar *Seri Port Programlama *3 boyutlu ses uygulamaları *CAD, 2d &3D modelleme *DVD gösterme Yenilikler ve Gelecek *DirectX oyun piyasasını kontrol etmeye devam edecek *Donanım üreticileriyle yakın çalışmalar *Her yıl yeni bir sürüm *Managed DirectX'e geçiş *Managed Çerçeve yoluyla değişik platformlar *X'li sistemler *Taşınabilir sistemler DirectX'in sahip olduğu bileşenler nelerdir DirectX, genelde oyun programcıları tarafından kullanılsa da, aslında sadece bir 3 boyutlu grafik kütüphanesi değildir. Joystick kontrolünden ağ yönetimine kadar birçok araç içerir. Üstelik sadece oyun geliştiricileri tarafından kullanılmaz. DirectX içinde üç çekirdek alan bulunur:

- Giriş aygıtları - Ses - Video Aşağıda şu anki sürümde bulunan API'lere önce kısaca bir değinelim. Daha sonraki aşamada geniş bir şekilde ele alacağız. 1-Giriş Aygıtları (Input Devices) DirectInput: Bu API, klavyeler, fareler, oyun çubukları, oyun pedleri ve güç tepkili (force feedback) aygıtlar için kullanılır. Windows XP SP1 ve sonraki sürümleri için bu API'nin içine Xbox360 denetleyicisi desteği de eklenmiştir. 2-Ses DirectSound : Bu düşük seviye API uygulama ile ses kartı arasındaki arayüz için kullanılır. Donanımsal önbellekler, ses yükseklik seviyesi gibi sesle ilgili özellikler bu API kullanılarak değiştirilebilir. DirectMusic : Bu daha yüksek seviyeli bir API'dir ve birden fazla sesi karıştırabilir. MIDI çalma, birden fazla sesin yüksekliği ve çeşitli çalışma zamanı (runtime) özellikleri bu bileşen tarafından denetlenebilir. 3-Video Direct3D: Ekrana resimlerin çıkarılmasından bu API sorumludur. Donanımsal hızlandırıcılar (grafik kartları) tarafından 3B nesnelerin özelliklerinin değiştirilebilmesine bu düşük seviye arayüz izin verir. DirectDraw : Eskiden önemli olan bu başlık yeni sürümlerde 2B işlevlerinin Direct3D içine konulmasıyla eski önemini kaybetmiştir Görüldüğü gibi DirectX tek başına bir varlık değil, birbirinden bağımsız çalışan uygulamaların bütünüdür.şimdi bu bileşenleri daha geniş bir şekilde incelemeye başlayalım. 1-DirectDraw Microsoft'un çıkardığı directx'in temel bileşenlerinden biri.2 boyutlu çizim yapabilmeyi sağlar. DirecDraw esas olarak bir video bellek yöneticisidir. Ve bitmapleri direkt olarak video belleğe saklamak ve yönetmek için programcıya büyük olanaklar sağlar.video belleğin içindeki bitmaplerin aktarılması için direkt olarak video donanım aktarıcıları (blitter) kullanılır.video belleğinden video belleğine aktarım için video donanım aktarıcıları kullanıldığından, sistem belleğinden video belleğine aktarımdan daha hızlıdır.bu özellikle video belleği içinde 64 bit veri yolu sağlayan günümüzün 64 bitlik video kartları ile geçerlidir. Diğer bir taraftan donanımsal bir aktarım CPU dan

bağımsız işlenmektedir, bundan dolayı CPU bu sırada diğer işlerle uğraşabilir. Ayrıca DirectDraw video kartların diğer bazı donanım özelliklerini de destekler. Örneğin donanım Z-buffer tekniğini kullanabilir 2-Direct3D DirectX'in en önemli bileşeni olan Direct3D'nin temelleri Ati tarafından atıldı. En radikal değişikliğin yaşandığı DirectX 8.1, ilk Xbox için Nvidia tarafından geliştirildi. DirectX paketinin yıldızı, Direct3D kütüphanesidir. Bunun dışındaki tüm kütüphaneler benzer ya da daha iyi fonksiyonlarla diğer işletim sistemlerinde zaten mevcuttur. Ekran kartı üreticilerini milyar dolarlar sahibi yapan, oyunların müthiş kaliteye çıkmasını sağlayan kütüphane Direct3D'dir. Grafik kartlarıyla birlikte adı sıkça anılan vertex shaders, pixel shaders, bump mapping, mip mapping,texture mapping gibi teknikler, Direct3D olmadan kullanılamazlar. Direct3D şu özellikleri sağlar: Shader'lar Günümüzdeki oyunlar ve 3D programların motorları genel itibariyle shader konsepti üzerine üretilirler. Shader, poligon ve piksellerin nasıl kaplanması gerektiğini kontrol eden, GPU üzerinde çalıştırılan kod parçacıklarına verilen isimdir. Shader'ların programlanabilir olması, geliştiriciye uçsuz bucaksız görsel efekt yaratma imkanı da sunar. *HLSL *Assembly benzeri eski dilin yerini alıyor *Modellerden görüntüye geçişin kontrolü

*Pixellerin ve Köşelerin işlenişi *Yumuşak dokular, su ve tüyler *Karmaşık ışıklar, parlak yüzeyler Donanımdan Bağımsızlık Programları farklı donanım çakışmalarından korur. Böylece program çalıştırıldığı bilgisayardaki ekran kartı, ses kartı vb. özelliklerden bağımsız olarak çalışabilir Donanım İçin Genel Sürücü Modeli Diect3D'yi destekleyen tüm sürücülerin en azından belirlenmiş özellikleri kesinlikle destekleyeceğini garanti eder. Böylece bu belirlenmiş özellikleri kullanan programlar Direct3D'yi destekleyen donanıma sahip her bilgisayarda çalışır. Ayrıca Direct3D, ekran kartı üreticilerine kartlarının Direct3D'nin değişik özelliklerini kullanabilmesi için tarifler sağlar. Bu özellikleri kullanan programlarda büyük performans artışları gözlenir. Programlara 3 Boyut Eklemeyi Kolaylaştırır Direct3D 3 boyutlu grafikler için standart algortimalar ve mekanizmalar sağladığı için, bu özellikleri kullanan programlar çok daha kolay ve hızlı üretilebilir. Donanıma Açık Ulaşım Bu Direct3D'nin en önemli özelliklerinden biridir. Bilgisayardaki donanım bir özelliği desteklemiyorsa, Direct3D bunu yazılım kullanarak destekler hale getirir. Program, çalışırken donanım özelliklerini tespit edebilir. Oluşturma Motoru (Rendering Engine) Oluşturma motoru, sahnenin 3 boyutlu nokta bazında tanımlanması, değişik yüzey desenlerinin, ışıkların, kameranın özelliklerinin tanımlanması, oluşturulmaya hazır hale getirilmesi işlerinden sorumludur. Penceresiz Çalışma Direct3D'nin bir başka fonksiyonu, programların penceresiz çalışabilmesini sağlamasıdır. Özetlersek; *Başlatma *Makinenin özelliklerini öğren *Uygun modülleri çalıştır

*2D *Dörtlüler *Nokta sprite'lar *Text ve parçacık efektleri *Primitifler *Dokular *Işıklandırma 3-DirectInput Mouse, Joystick, Klavye gibi giriş aygıtlarını desteklemek için kullanılmaktadır. 4-DirectPlay Internet ya da LAN üzerinden oynanan oyunlara ağ desteği sağlamaktadır. Aslında bu ölü bir kütüphane; Microsoft uzun süredir güncellemiyor Desteklenen bağlantı modelleri *Peer-to-peer *Sunucu-istemci

*Kullanılabilen protokoller *TCP/IP *IPX *Bluetooth *Seri bağlantı *Doğrudan modem-modem bağlantıları 5-DirectSound ve DirectSound 3D Ses kartına direkt erişim sağlar DirectSound, bildiğimiz klasik mp3 Ya da wav formatındaki ses dosyalarını çalıyor. DirectSound 3D ise, çevresel ses efektlerine -EAX gibi- destek vermekte. Özellikleri *"wav" formatında ses ve müzik *Aynı anda birden fazla sesi çalmak *Sesler için öncelik tanımlası ve kaynak yönetimi *3 boyutlu dünyada yerleşik sesler *Eko ve koro gibi efektler *Ses kayıdı *Alternatifler *SDL Sound *Java Sound API *Win32 DirectX Alternatifleri

*Windows soketleri (DirectPlay) *MFC/.NET klavye ve mouse desteği (DirectInput) *Win32 API *Java Sınıfları *SDL *Diğer Grafik paketleri *GDI/GDI+ (2D) *OpenGL (3D) *SDL'nin özellikleri *Kolay kullanım *Çok geniş platform desteği *(Linux, Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, QNX, *Windows CE, AmigaOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64, RISC OS, SymbianOS) *Windows da DirectX/MFC/ATL/.NET API'leri ile çakışan bir çok özellik Ağ ve ses özellikleri DirectPlay ve DirectSound kadar güçlü değil Oyun geliştiriciler olabildiğince düşük DirectX sürümlerini kullanarak daha geniş bir alıcı kitlesini kapsayabiliyorlar. Bir tarayıcı modelinin ne kadar hesaplama gücü gerektireceği her şeyden önce karmaşıklığına bağlı. Son olarak tüm kartların geriye doğru tam uyumlu olduğunu belirtelim.

Tarayıcıları sürekli kullanan ilk oyun FarCry diyebiliriz. DirectX 9 sağolsun ki, yüzeyler son derece gerçekçi, aydınlatma değişikliklerine güzel yanıt veriyor ve gölgeler inandırıcı geliyor. Oyundaki ortam gerçekten "yaşam bulmuş". Microsoft'un şu anki 3 boyut API'si DirectX 9, tarayıcı programlamada önceki DirectX 8'den daha fazla özgürlük sunuyor ve daha uzun ve çokça karmaşık tarayıcılar yazılmasına izin veriyor. Aynı zamanda kayar-nokta veri modeliyle de (floating-point data model) ayrıntı hesapları çok daha kesin yapılabiliyor. DirectX 10; Uzun bir zamandır DX10 ve onun DX9'e göre sunduğu artıları dinleyip duruyoruz. Şimdiye kadar geliştirme aşamasındaki oyunların ekran görüntüleriyle kendimizi tatmin ettik. Aşağıda da bahsedeceğimiz gibi DX10'daki yenilikler birleşik mimari, tarayıcıların sunduğu güçten daha verimli bir şekilde yararlanabiliyor. Teknik gelişmeler' Peki, ekran kartlarında köklü değişikliğe neden olacak DirectX 10 nerede fark yaratıyor. Bunun cevabı çok kolay. DirectX9 ile birlikte çalışan ekran kartlarında bir Vertex Shader bir de Pixel Shader unitesi yer alıyordu. Grafik ağırlıklı uygulamalarda Vertex Shader tavana vuruyordu ve Pixel shader veri iletim yolu boş kalıyordu. Benzer bir durum oyunlarda görülüyordu ve Pixel Shader yolu tam kapasite çalışıyordu.

-Unified Shader Model. Bu sayede, artık pixel ya da vertex shader için ayrı ayrı sanal makineler oluşturulmuyor; hepsi aynı alan içinde işlenebilicek. -Maximum doku boyutu artık 8192x8192. DirectX'de bu rakam maksimum 4096x4096. -Bellek arayüzü.üst model ekran kartlarında önceden 256 bit olan bellek arayüzü yeni çıkan directx10 destekli ekran kartlarında 320 bit ve 384 bit değerlerine yükseltildi. -DirectX 10, dizüstü bilgisayarlarda da kullanılabilecek. -Shader Model 4 geliyor; elde edilecek kazanımları ise ancak oyunları görmeye başladığımızda değerlendirebileceğiz. -HLSL (High Level Shader Language). Bunun ilk adımını Nvidia yıllar önce Cg ile atmıştı; ancak aynı dönemlerde Ati'de önemli atılımlar yaptığından, Nvidia'ya has Cg kabul görmemişti. Aslında bunun kullanıcıya sağlayacağı fayda dolaylı olacak; zira HLSL görüntü kalitesi ya da performansı artıran Bir şey değil; sadece kartların daha kolay programlanmasını sağlayacak.

-Geometry Shader geliyor. DirectX 10'un gelmesi ile birlikte yeni bir veri yolu daha eklendi. Geometry Shader olarak adlandırılan bu yeni veri yol performansı daha da arttırmaya yönelik özellikle Motion Blur gibi efektlerde çok işe yaradığından bahsetmiş. Bitmedi. DirectX 10 ile birlikte veri yolları ayrı olmaktan çok birleşik bir hat üzerinden çalıştırılacak. Bunun avantajı bu sayede aynı anda kalite ve performansı arttırılabilecek.

DirectX 9 destekli ekran kartları işte bu yüzden Direct 10 desteklemeyecekler. Bunun sayesinde de DirectX 10'a geçmek isteyen kişiler yeni ekran kartları satın almak zorunda kalacaklar. Sonuç; Oyunlar şu anda bir dönemeçteler ve DX10 destekli donanımlar sadece yeni oyunları oynatmakla kalmıyorlar şu anki oyunları da eskiye göre daha kaliteli oynamanıza izin veriyorlar. Peki, bunların standart kullanıcılar açısından anlamı ne Kısaca söylemek gerekirse sistem nesneleri daha hızlı ve verimli bir şekilde yaratımlayabilecek (render). Oyunlar açısından bakıldığında saniyede daha fazla kare sayısı anlamına geldiğinden bu son derece faydalı bir şey. Tabi ki bu durum geliştiricilerinin oyun sahnelerine daha fazla ayrıntı eklemesine kadar geçerli olacak. İster daha fazla ayrıntı ister daha fazla kare hızı olsun sonuç olarak DX10 sayesinde donanımlarımızdan daha fazla verim alabileceğiz. Ayrıca geometri tarayıcıları, değişen her karede duruma göre nesnelerin eğilip bükülmesini sağlayarak yaratımlama (render) sürecine yardım edecekler. Bazı nesneler sadece tek bir tepeden (vertex) yaratılabilecek. Geometri tarayıcıları fizik kurallarına uymak zorunda değiller çünkü veriyi sıfırdan yaratıp tarayıcı programın isteğine bağlı olarak da tamamen yok edebilme yeteneğine sahip olacaklar. Bu özellik sayesinde yaratımlama sürecinin

hızlandırılması planlanıyor. Tepe (vertex) ve noktacık (pixel) tarayıcılarından birkaç kez geçerek üretilebilen bazı nesneler tepe tarayıcılara hiç gitmeden yaratımlanabilecekler. Ayrıca bir sonraki karede aynı nesne geometri tarayıcısı tarafından tekrar çağırılıp yeniden şekillendirilebilecek. Gerek CPU'lar gerek Windows Vistanın ve ekran kartlarının hızla yeni ufuklara ilerlediğini açık bir şekilde görebiliyoruz. Yeni donanım ve yazılımlar çoktan deneme aşamasına getirildi bile. İşlerin hangi yönde ilerleyeceğini veya yeniliklerin bizlere neler sunacağını görmek için sadece bir iki ay beklememiz gerekiyor. Kasım 2006 Mustafa İRDEM Referanslar www.chip.com.tr www.opengl.org