İçeriğe atla

Direct3D

Direct3D; DirectX teknolojisinin alt kümesini oluşturan API'sidir. Tamamıyla 3D teknolojisi üzerine geliştirilmiştir. Genelde Video Oyunu Geliştiricilerinin kullandığı bir kütüphanesi vardır. Bu; direct3d.h dır.

Ön bilgi: İki boyutlu bir ortamı oluşturmak için iki ordinata, üç boyutlu bir ortam oluşturmak için üç ordinata ihtiyacımız var. İki boyut için ordinatlar X ve Y olup oluşan koordinat A(X,Y) ve üç boyut için ise ordinatlar X, Y, Z ordinatlarıdır, oluşan koordinat sistemi ise; B(X,Y,Z) dir.

Bildiğiniz gibi bir nokta, hangi boyutta oluşturulmuşsa o boyuta göre koordinat parametreleri oluşur. İki boyutlu bir çizim için ki örnek olarak doğru parçası oluşturmak için A ve B noktaları verelim... A noktası için X ve Y ordinatlarının parametresi olarak sırasıyla 30 ve 42 birimlerini verelim. Yani A(30,42) oluşmuş durumda. B noktası ise B(-30,-42) olsun. Evet şu anda birbirine simetrik iki nokta çizdik. Bu noktaların her birine VERTEX diyoruz. Yani iki boyutlu bir çizim için bağlantı noktaları...

Neden bağlantı noktası dedik? Çünkü; iki nokta arasına bir doğru parçası çizeceğiz ve bize lazım olan iki noktanın parametrelerini aldık. Ve bu sayede çizim işlemini gerçekleştirdik... Noktaların her biri bizim bağlantı noktalarımızdır. Üç boyutlu bir nesne yani küp için de aynı yöntem geçerli. Fakat küpü oluşturmak için minimum sekiz vertexe yani 8 noktaya ihtiyacımız var.

Eğer üç boyut hakkında bilgilendiyseniz veya bilgileriniz güncellendiyse ilk Direct3D örneğimizi verelim...

Direct3D teknolojisi primitive type (ilkel verileri) bile destekler. Örneğin programlamada, DirectX teknolojisini kullanıyorsanız ve koordinatları belli bir nokta kümesi verdiyseniz, yani örneğin;

  • nokta1 için x=14, y=16, z=42; (bu; üç boyutlu üçgen çizimi için verilen birinci vertex; yani bağlantı noktası)
  • nokta2 için x=21, y=72, z=15; (bu; üç boyutlu üçgen çizimi için verilen ikinci vertex; yani bağlantı noktası)
  • nokta3 için x=12, y=15, z=12; (bu; üç boyutlu üçgen çizimi için verilen üçüncü vertex; yani bağlantı noktası)

koordinatlarını verip DirectX'in bize bu noktaları bir üçgen oluşturacak şeklinde deklare ettiysek, koordinatları verilen noktalar birbirleriyle birleştirilir ve uzayda üçboyutlu bir üçgen çizilir.

Bunun yanında Direct3D; Video Oyunu Geliştiricileri için; çeşitli üç boyutlu hesaplamaları üstlenir.

  • Mesela; bir video oyunu geliştiricisi olan X firması, geliştirdiği video oyununda kullanmak üzere üç boyutlu grafikler tasarladı. Tasarlanan en küçük yapıdaki üç boyutlu grafik, yaklaşık 720 vertex yani bağlantı noktası içermekte. Varsayım olarak bu üç boyutlu grafik bir insan vücudu. Gövde kısmında 170 kadar, kol kısımlarında 120 kadar, bacak kısımlarında ise 200 kadar vertex var. Tanımlanmış diğer vertexler de grafiğin baş kısmını oluştursun... Eğer bu şirket oluşturulan grafikleri bir video oyununda kullancaksa, karakterin doğal olarak hareket etmesini de isteyecektir.
  • Örneğin bazı oyunlarda olduğu gibi oluşturduğu karakterin bir arabaya binmesini, konuşabilmesini kısaca gerçek hayattaki bir insan gibi hareket etmesini ister. Yani bir vazo gibi katı durmamasını, her uzvunun (ellerinin, kollarının, bacaklarının) değişik şekillerde hareket etmelerini arzu eder. Bunu için bu üç boyulu grafiği oluşturan vertexler yani bağlantı noktalar hareket esnasında koordinatlarını değiştirirler.
  • Yani yüzlerce vertex içinden bir tanesini ele alırsak; vertex(140, 270, 660) ise ele aldığımız vertex, koordinatları üç boyutlu grafiğin hareket esnasında koordinatlarını değiştirecek ve belki de yeni vertex; vertex(220, 290, 550) olacak.
  • Şimdi; üç boyutlu bir grafiği oluşturan binlerce vertex, nasıl koordinatlarını değiştirir? Veya hangi işlemlerden sonra koordinatlarını değiştir sorusu için; çeşitli nesne taşıma formülleri, vektörler, matrisler işin içine giriyor dersek bu konu için yeterli olur çünkü bu konuda direct3d üzerinde duruyoruz.
  • 3D nesnelerin hareket etmesi için kullanılan hesaplamalar ve formüller konu dahilinde değil...
  • Bunca anlatımdan sonra Direct3D için şunu da belirtmenin zamanı geldi... İşte Direct3D; Video oyunu geliştiricileri için bu türlü ilkel veri tipleri ile uğraşmak zorunda kalmamalarını sağlar.
  • Aslında Direct3D konusu buraya kadar da değil, bunca süredir anlattığımız üç boyutlu nesnelerin hareketlerinin sağlanmasından tutun da, Işık ve yansıma gibi olayların da üretimini sağlamasıdır.
  • Yani sadece 3D hesaplamaları için değil; ışık ve bu gibi fiziksel hesaplamalarını da kendisi yapar. Tabii tahmin edersiniz ki, gereken argümanların verilmesi ile...

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Işın izleme</span>

Işın izleme, gerçek dünyada ışığın ne şekilde hareket ettiğini göz önünde bulundurarak bir sahnenin görüntüsünü çizen bir grafik oluşturma yöntemidir. Ancak bu yöntemde işlemler gerçek yeryüzündeki yolun tersini izler. Gerçek dünyada ışık ışınları bir ışık kaynağından çıkar ve nesneleri aydınlatırlar. Işık, nesnelerden yansır ya da şeffaf nesnelerin içinden geçer. Yansıyan ışık gözümüze ya da kamera merceğine çarpar. Yansıyan ışık ışınlarının çoğu bir gözlemciye erişmediği için bir sahnedeki ışınları izlemek sonsuza dek sürebilir.

<span class="mw-page-title-main">Doğru (geometri)</span>

Doğru, matematikte mantıksal bir değerdir. Matematik'te ne olduğu belli olmayan (tanımsız) değerlerden biridir. Ayrıca geometride doğru ifadesi aynı doğrultuda olan ve her iki yönden de sonsuza kadar giden noktalar kümesi diye de tanımlanır. Bir doğru üzerinde en az 2 nokta, dışında da en az 1 nokta mevcuttur.

<span class="mw-page-title-main">Küre</span> geometrik şekil

Günlük kullanımıyla küre kusursuz simetriye sahip geometrik bir nesnedir, bir yüzeydir; üç boyutlu Öklit uzayında (R3) yatar.

<span class="mw-page-title-main">DirectX</span>

DirectX, Microsoft'un video oyunları başta olmak üzere çoklu ortam yazılımlarını rahat, hızlı ve uyumlu şekilde hazırlayabilmek için yarattığı bir uygulama programlama arayüzüdür (API). Şu andaki en güncel resmî sürüm DirectX 12'dir. İçerdiği bileşenlerden bazıları şu şekilde özetlenebilir:

Koordinat sistemi, geometride herhangi bir düzlemdeki (çokkatlıdaki) bir nokta veya başka bir geometrik elemanın konumunu tam olarak belirlemek için bir veya daha çok sayı ya da koordinat kullanılan bir sistemdir. Koordinatlar basit matematikteki reel sayılardan oluşur. Fakat soyut cebir gibi bazı alanlarda karmaşık sayılar veya elemanlardan oluşabilir. Koordinat sisteminin kullanılması, geometrik problemlerin sayısal problemlere ve tersine dönüştürülmesini sağlar. Bu analitik geometrinin temelidir.

<span class="mw-page-title-main">Sinüs (matematik)</span>

Matematikte sinüs, trigonometrik bir fonksiyon. Sin kısaltmasıyla ifade edilir.

<span class="mw-page-title-main">Üç boyutlu uzay</span>

Üç boyutlu uzay (3D); en, boy ve derinlik algılarının hepsinin birden var olduğu ortam. Cisimler; uzunluk, genişlik ve derinliği ile gösterebiliyorsa bu durumda üç boyuttan bahsedilebilir.

<span class="mw-page-title-main">Yarıçap</span> merkezinden çevresine bir daire veya küre içinde bölüm veya yüzeyi ile uzunluğu

Yarıçap, bir daire veya kürenin özeğinin (merkezinin) çemberine olan mesafesidir. Çapın yarısına eşittir.

<span class="mw-page-title-main">Öteleme</span> Fizik terimi

Öklid geometrisinde bir öteleme, belli bir yönde sabit bir uzaklık kadar yer değiştirme demektir. Eşölçer dönüşümlerden biridir. Ötelemenin bir diğer yorumu, her noktaya sabit bir vektör eklemek veya koordinat sistemini kaydırmaktır. Bir öteleme operatörü şöyle tanımlanır:

Cebirsel geometri, matematiğin bir dalıdır. Adından anlaşılabileceği gibi, soyut cebirin, özellikle değişmeli cebirin yöntemleri ile geometrinin dili ve problemlerini bir araya getirir. Çağdaş matematik içerisinde merkezi bir rol üstlenmesinin yanında, karmaşık analiz, topoloji, sayılar kuramı gibi matematiğin diğer dallarıyla yakın ilişkisi vardır.

Karesel gölgelendirme anlamına gelen Pixel Shader DirectX 9 ve üzeri oyun grafik kütüphanesinde bulunan grafik işleme komut fonksiyonudur. Yeni nesil olarak tanımlanan birçok oyunda bu özellik şartı aranıldığı için bir önceki nesil ekran görüntü kartları bu özelliği desteklemediği için birçok oyun yazılımı çalışmama durumu yaşanmaktadır.

<span class="mw-page-title-main">Çevrel çember</span>

Çevrel çember, geometride, bir çokgenin tüm köşelerinden geçen çember. Bu çemberin merkezi çevrel özek olarak isimlendirilir.

<span class="mw-page-title-main">Sıfır noktası</span>

Matematikte sıfır noktası (orijin) düz uzayda O harfi ile gösterilen özel bir noktadır. Kartezyen eksenler sisteminde eksenlerin kesiştiği nokta sıfır noktasıdır. Düz uzayda sıfır noktası herhangi bir uygun nokta olarak seçilebilir. Bu seçim işlem sonucunda herhangi bir değişikliğe yol açmayacaktır. Sıfır noktası seçilirken genellikle yapılacak işleme göre uygun olan yer seçilir.

Fizikte konuşlanma sistemi farklı zaman dilimlerinde nesnelerin konum ve yönelim gibi özelliklerini belirlemek ve ölçmek için kullanılan bir koordinat sistemini ifade etmektedir. Ayrıca bu özelliklerin temsilinde kullanılan kümelerini de içerebilmektedir. Daha zayıf bir anlamda, bir konuşlanma sistemi yalnızca koordinatları betimlememektedir, aynı zamanda bu sistemde hareket eden nesnelerin ayırt edilmesinde her zaman dilimi için aynı üç boyutlu alanları da tanımlamaktadır.

<span class="mw-page-title-main">Birim çember</span> trigonometri ve mampo da çok işlemi olmuş bir çemberdi ve çok kolay bir yönetimi vardır birim çemberi matematiğin temelini olustur bu yüzden çok önemli bir cemberdir

Birim çember Matematikte, yarıçapı bir birim olan çembere birim çember denir. Çoğunlukla, özellikle trigonometride, Öklid düzlemine göre Kartezyen koordinat sisteminde, merkezi orijin üzerinde (0,0) olan ve yarıçapı bir birim olan çemberdir. n birim çember sıklıkla S1; olarak ifade edilir. Genellikle daha büyük boyutları ise birim küredir. (x,y) birim çember üzerinde bir nokta olduğunda, |x| ve |y|, dik olan ve hipotenüsü bir olan üçgenin diğer kenar uzunluklarıdır. Bu nedenle, Pisagor teoremine göre, x ve y bu denklemi karşılamaktadır.

<span class="mw-page-title-main">Üçgenlenmiş düzensiz ağ</span>

Bir üçgenlenmiş düzensiz ağ (TIN) bir yüzeyin gösterimi için bir coğrafi bilgi sisteminde (CBS) kullanılan bir sayısal veri yapısıdır. TIN örtüşmeyen üçgenler bir ağ halinde düzenlenmiş üç boyutlu koordinatlar ile düzensiz dağıtılan düğümlerin ve çizgilerden oluşan fiziksel arazi yüzeyi veya deniz dibinin, bir vektör tabanlı temsilidir. TIN'ler genellikle raster edilmiş sayısal yükseklik modeli (SYM) ile yükseklik verilerinden türetilmiştir. Haritalama ve çözümlemeler bir raster DEM üzerinde TIN kullanılarak kazançlı TIN noktalarının doğru arazi temsili için en gerekli olanı belirleyen bir algoritmaya dayalı değişkenle dağıtılmış olmasıdır. Veri girişi nedeniyle esnek ve daha az puanlı düzenli olarak dağıtılmış nokta ile, bir raster DEM'in daha saklanması gereklidir. TIN böyle bir yüzeyin eğimi ve yönünün çözümlemesi gibi CBS uygulamalarında belirli türde bir raster DEM daha az uygun olabilir. TIN'ler ilk kez 1947 yılında Edinburgh Üniversitesi'nde Sosyoloji okuyan Phil Mellor tarafından icat edildi.

<span class="mw-page-title-main">Feuerbach noktası</span>

Üçgen geometrisinde, üçgenin iç çemberi ve dokuz nokta çemberi, üçgenin Feuerbach noktasında birbirine içten teğettir. Feuerbach noktası bir üçgen merkezidir, yani tanımı üçgenin yerleşimine ve ölçeğine bağlı değildir. Clark Kimberling'in Üçgen Merkezleri Ansiklopedisi'nde X(11) olarak listelenmiştir ve adını Alman geometrici Karl Wilhelm Feuerbach'tan almıştır.

<span class="mw-page-title-main">Apsis ve ordinat</span> apsis noktanın bulunduğu yeri saptamaya yarayan ana çizgilerden yatay olanıdır Ordinat ise ana çizgilerden dikey olanıdır

Yaygın kullanımda, apsis, yatay (x) ekseni ve ordinat, standart iki boyutlu bir grafiğin dikey (y) eksenini ifade eder.

<span class="mw-page-title-main">Mimari görselleştirme</span>

Mimari görselleştirme, bilgisayar donanımları ve modelleme yazılımları aracılığıyla bir mimari yapının üç boyutlu sureti olan ham modelinin oluşturulmasının ardından, bu modelin farklı yazılımlar aracılığıyla işlenerek realist bir görsel haline getirilmesidir.

<span class="mw-page-title-main">Etkileşimli geometri yazılımları listesi</span> Vikimedya liste maddesi

Etkileşimli geometri yazılımı (İngilizce: Interactive geometry software ) veya dinamik geometri ortamları (İngilizce: dynamic geometry environments ), düzlem geometrisi başta olmak üzere geometrik yapıları oluşturmaya ve daha sonra bunları değiştirmeye olanak tanıyan bilgisayar programıdır. Çoğu etkileşimli geometri yazılımında, kişi birkaç nokta koyarak ve bunları çizgeler, daireler veya diğer noktalar gibi yeni nesneler tanımlamak için kullanarak inşaya başlar. Yapı, bir miktar oluştuktan sonra, kişi başladığı noktaları hareket ettirebilir ve yapının nasıl değiştiğini görebilir.