Her Grafikerin Bilmesi Gereken Altın Kurallar (bölüm 1)

3d-grafik

Merhaba arkadaşlar. İnternette tesadüfen rastladığım ve ilgimi çeken bir yazıyı sizinle paylaşmak istiyorum. Yazıda bir çok bilgiler basit ve ayrıntılı şekilde açıklanıyor.

 ———-
Bu konu altında sizlerle beraber sanalitenin bizlere sunmuş olduğu 2/3D nimetlerinin neler olduğunu, bu nimetlerin akademik literatürde hangi amaç ve deneyimleri kapsadığını detaylıca inceleyip; sonucu, kapsam dahilindeki teorilerimize örnekler vererek tartışacağız.

Peki nedir ana konumuz?

Grafik

Biz burada, Sanalın laçkalaştırılmış bilgi çöplüğünden ayrı, işin gerçek,akademik ve ciddi boyutunu işleyeceğiz. Burada kazanacağımız edinimleri başka yerde bulamayız, nedeni ise işin içerisine teknik, detaylı ve gerçek bilgiler girecek, işin içerisine Matematik girecek, işin içerisine Akademi girecek…

Bu sebeple konuyu mutlaka ciddiye alıp dikkatlice okuyalım.
Evet, başlıyoruz.
Ne diyordu ecnebi?
There we go
Biz ne diyoruz?
Hadi Bismillah.

“Grafik”

Evet, adını her gün mesleki muhteviyattan dolayı 08-18 arası duyduğumuz ya da farklı mecralarda zırt pırt karşımıza çıkan, ya da daha da vahimi masum bir ilkokul bebesinin dahi kalkıp bize bir şeyler öğretmeye çalışarak duyurabileceği bu terim artık çoğumuzun hayatına oturmuştur.

Öyle ki dünyada her 2 insandan birisi mutlaka sanalda Grafik ile ilgili bir şeyler paylaşmıştır.

Hatta bu konuda sanalda öyle bir bilgi çöplüğü var ki yeni başlayan birisi neye, nereden,nasıl başlayacağını şaşırabilir.

Ancak bunlar işin sadece basit görünen kısmı, dolayısıyla ben de kalkıp size Vektör ile Piksel arasındaki farkı göstermek gibi bir standardizelikte bulunmayacağım.

Şimdi öncelikle işe Grafik nedir bununla başlayalım isterseniz…

Grafik, somut tanımıyla herhangi bir yere kaleminizin ucuyla koyduğunuz o basit noktadır, soyut tanımı ise çok geniştir, yani özetle hayal dünyanızın kağıda yansıdığı bariz şeklidir.

Sanal dünyada ise Grafik yaratabilmek için bize teknik açıdan öncelikle bir İşletim Sistemi, bir Ekran Kartı ve bir de Program gereklidir.

Peki bu Grafik, sanal dünyada nasıl çalışır,nasıl işler?

Bir grafik, sanal dünyada ancak 2/3D Programlar vasıtasıyla hayat bulabilir.

Sanal dünyada bir grafiğin ortaya çıkabilmesi için öncelikle onun program içerisinde yaratılması gerekir. Yaratılan bu çalışma aslında bir bakıma RENDER edilmiştir.

Bu render işlemi örneğin illustrator’de çalışmamızı tamamlayıp Export komutunu verdiğimiz anda dışarıya aktarılırken gerçekleşir. Bu çok kısa bir renderdir ve saliseler içerisinde çalışmamız dışa aktarılmış olur çünkü hem programımız 2D’dir hem dışarı aktarılan bilgiler sadece basit path bilgileridir.

Ancak söz konusu bir 3D program ise, hem render süresi haftalar ya da aylar alabilir hem sahnede yarattığınız renderi almak için ayrı bir motor kullanmanız gerekir, çünkü 3D model içerisinde muhteşem büyüklükte koordinat ve doku bilgileri tutulur. Dolayısıyla bu güç işlemler için Render motoru kullanılmaktadır.

Piyasada bu anlamda birçok render motoru mevcuttur, bilindik 3D’s Max, içerisinde 1 adet basit 1 adet gelişmiş render motoru barındırır. Basit render motoru Default Scanline Renderer’dir ve bunu Autodesk bizzat kendisi yazmıştır.

(Basit dediğime bakmayın, her render motoru ayrı bir deneyim inceliği ister)

İçerisindeki gelişmiş render motoru ise Mental Ray’dir.

Mental Ray bir grafik kartı üreticisi olan NVIDIA firmasına aittir ancak Autodesk firması Mental Ray’in yayım hakkını NVIDIA’dan satın almıştır.
(Bu arada NVIDIA, I-Ray render motorunu da yazmıştır)

Bu konuda anlatacaklarım bu kadar.

Şimdi asıl konumuz olan Grafik konusunu 3 Bölüm altında inceleyeceğiz.

Bunlar :
a) 3D Sürücüler
b) Net Framework
c) Grafik Kartı

-Ek Uygulamalar.

Başlıyoruz artık…

Bölüm 1: 3D Sürücüler.

Ben Aslında Neredeyim?

Bildiğimiz üzere teknoloji hızla gelişiyor ve 2/3D grafik alanında da tekno-satış stratejileri buna paralel olarak geliştiriliyor, iyi ama kim bu adamlar?

Her nasıl CPU mimarisinde 2 dev firma var ise – ki bunlar INTEL ve AMD’dir- GPU mimarisinde de 2 dev firma, piyasaya hakim durumdadır.

Haha, bunlar NVIDIA ve ATI’ dir diyorsanız doğru tahmin ettiniz.

Şu an piyasadaki ekran kartı üreticilerine GPU pazarlayan iki firma bunlardır.

İyi de GPU nedir? :?:

GPU Graphic Process Unit açılımın kısaltmasıdır.

Neye yarar ki bu GPU?

Güzel soru.
CPU her nasıl anakarttan tüm donanımlara kadar bilgisayardaki işlemleri hesaplıyor ise GPU da bilgisayardaki texture (tekscır) işlemleriyle boğuşur. Peki, artık GPU’nun neye yaradığını biliyoruz.

Immm, ama nasıl çalışıyor ki?

Olabilecek ikinci en güzel soru da budur belki. Yukarıda iki GPU üreticisinden bahsetmiştik, GPU bu noktada işin yalnızca fiziksel kısmını teşkil eder, donanımımız hazır, iyi ama yazılım olmaz ise donanım nasıl çalışabilir, o halde şimdi bize bir yazılım lazım.

Firmalar GPU teknolojisini geliştirirken bir yandan da yazılım teknolojisini geliştirmiştir ve bunlardan en bilineni Microsoft’a ait olan Direct3D teknolojisidir.

Yani?

Direct 3D, adından da anlaşılacağı üzere temelde 3D oyunlara ve programlara yönelik yazılmış olan ve bünyesinde birçok “.dll” yani DirectX kütüphanesindeki kodlarla Grafik Kartı arasında aracılık yapan dosyaları barındıran bir interaktif grafik görüntüleme teknolojisidir.

Nasıl çalışır ki bu, hem interaktif de ne oluyor?

Direct 3D’nin adına bakarak aslında bize ne anlatmak istediğini az çok çıkarabiliriz.

Farkındaysanız teknolojinin Türkçe adı “Direkt 3D erişimi”dir. Buradan anlayacağımız bu teknoloji 2/3D platformlara erişebilmek için araya herhangi bir aracı koymuyor, buraya direkt erişiyor.

Peki, Kim Nereye Erişiyor?

Cevap basit, örneğin 3D’s Max programı grafik hesaplattırması yapmak için CPU’ya uğramadan NVIDIA ekran kartınızın GPU’suna direkt erişiyor ve bu hesaplamayı GPU’ya yaptırıyor. Ya da Adobe Illustrator, değişen bir şey yok.

Peki, bunu neden yapıyor, derdi nedir ki?

Onun tüm derdi içerisinde yarattığınız modelleri ya da çizgileri size anlık (interaktif) olarak hızlıca görüntüleyebilmek.

Hepsi bu.

Buradan çıkaracağımız sonuç, makinemizin bin bir derdiyle uğraşan CPU tutup bir de 3D programdan gelen yüzey hesaplamalarıyla uğraşmasın, bunu grafik kartının içerisindeki GPU yapsın, böylece sonuca daha hızlı erişilsin.

O halde bilgisayarımızda bu yazılım olmaz ise her 3D oyunu oynayamayız, her 2-3D yazılımı tam performansıyla kullanamayız öyle mi?

Kesinlikle evet.

Aslında bir oyunu ya da programı örnek alırsak, bu hata güncel olarak çoğumuzun başına en az 1 kez gelmiştir.

Senaryo: Direct X Hataları :

Muhtemelen bir yerlerden herhangi bir oyun edinmişizdir, ağzımızdan salyalar akıtarak eve koşarız ve PC’nin power butonuna küt diye basarız, ikinci hamlemiz ise direkt CD/DVD’yi çıkarıp DVD okuyucuya sürmek olacaktır, nihayetinde oyunu kurmuşuzdur, yapmamız gereken tek şey oyun kısayoluna tıklamak ve bizi neyin karşılayacağını hayal etmek olacaktır. Ama olaylar hiç de bizim istediğimiz gibi gelişmez, hele ki günlerden Pazar ise kimse yaklaşmasın o saatten sonra yanımıza.

Hata örneğin “d3dx9_30.dll” dosyası eksik olduğundan uygulama başlatılamadı” şeklinde gelebilir. Bu hatamızın nedeni, yüklediğimiz oyunun, işletim sistemi kütüphanesiyle konuşamamasıdır. Peki, bunu kim yapar? Tabii ki DirectX yapar.

Olasılıklar neler peki?

Ya bilgisayarımızda DirectX Yüklü değil ya Direct Draw özelliği kapalı ya da makinemizdeki DirectX yazılımı güncel değildir.

Burada bilmemiz gereken, DirectX 9 sürümü Windows XP Prof. için yazılmıştır, Vista ve üstü sistemler için DirectX 10.1 veyahut DirectX 11 sürümünü makinenize yükleyebilirsiniz.

Verdiğim linkteki uygulama esasında sürücünün kendisi değil sürücüyü indirecek olan yükleme yöneticisidir, dolayısıyla size sadece uygulamayı kurup başlatmak kalıyor, uygulama sizin işletim sisteminizi inceleyip buna uygun sürümü otomatik indiriyor.

Evet, uygun sürümü yükleyebildiyseniz artık oyununuzu açmış olmalısınız, yanına mutfaktan bir bardak kahve alabiliriz.

Peki, DX’i yükledikten sonra her şeyin yolunda gidip gitmediğini nasıl anlayacağız?

Bu konuda şu yönergeleri izleyebilirsiniz.
Windows Vista ve üzeri platformlarda Başlat butonuna basarak açılan arama kutusuna dxdiag yazalım, DirectX listede belirecektir, enter tuşuna basarak yazılımı çalıştıralım, daha sonra Ekran sekmesine geçelim ve ilgili özelliklerin devrede olup olmadığını kontrol edelim.

Resim2 ve Resim3’te ilgili aşamalar gösterilmiştir.

dxdiag

directx

Peki Bu DirectX nasıl çalışır?

Aslında DirectX’in ve benzeri diğer platformların yaptığı tek şey oturup vertexler arası ordinatları birleştirip elde ettiği koordinatlarda eşzamanlı yüzeyler çizmektir.

Ordinat mı, Koordinat mı, iyi ama bunlar ne oluyor ki?

Bunu anlamak için evvela bir çizginin nasıl meydana geldiğini hatırlamamız gerekir.

Örneğin önünüze boş, çizgisiz bir parşömen alın ve kaleminizle birbirinden farklı iki alana nokta koyun, artık bu noktaların parşömenin boşluğunda bir konumları oluştu, noktaların bu konumlarının her birine ordinat adı verilir, bir çizgi oluşması için en az 2 ordinat; bir yüzey oluşması için en az 3 ordinatın birleşmesi gerekir, Ordinatların birleşmesi ile de parşomen uzayında cismin Koordinatı oluşur, bu arada bu noktaların her birine bundan sonra vertex diyeceğiz. Şimdi bu iki vertex noktasını bir çizgi ile birleştirin, aslında yaptığınız, parşömen boşluğundaki uzayda birbirinden farklı konumda bulunan iki vertex noktasının arasını noktalarla doldurarak bir çizgi yaratmak oldu. Artık ilk 2D çiziminizi yaptınız.

Bu senaryoyu Grafik dünyasına uyarlarsak: Boş parşömen 2D ya da 3D programın çalışma alanı, kaleminiz ise sizin bu programın çalışma alanındaki uzayda yarattığınız ordinatları birleştiren Direct3D’tir.

Resim4’te iki ayrı ordinata sahip vertex noktası DirectX ya da benzeri yazılım tarafından birleştirilmiş ve neticede 2D bir çizgi çizilmiştir.

cizgi

2D çizimi anladık, peki ya 3D?

Daha önce de dediğimiz gibi bir yüzeyin oluşması için mutlaka en az 3 vertex noktası olmalıdır, böylece uzayda 3 ayrı ordinata sahip bu noktalar Direct3D tarafından birleştirilerek bir koordinata sahip yüzey meydana getirilecektir. Bundan dolayıdır ki 3D modelleme programlarının tümü üçgenler mantığına göre çalışır, daha basit bir deyim ile, 3D programların bir anlam kazanabilmesi için gerekli en küçük yapı taşı basit bir üçgendir.

Ordinatlar 3D adına her bir noktanın uzayda kapladığı konumu ifade eder ve 3D dünyasında tek bir anda tanımlanabilecek 3 ordinat vardır, bunlar X,Y,Z ile temsil edilir.

X uzunluk Y derinlik Z ise yüksekliği ifade eder.

Resim 5’te bir yüzey mevcuttur ve bu yüzeyin çiziminin yapılabilmesi için 3 ordinat konumu Direct3D tarafından birleştirilmiştir ve ortaya çıkan cismin yine aynı uzayda bir Koordinatı oluşmuştur.

3d-cizim

Bu arada 3D dünyasında söz konusu bir obje çizimi ise bu objeler X,Y,Z ordinatları kullanılarak çizilir, söz konusu bu objelerin giydirileceği resim haritaları (MAP) ise U,V,W ordinatları kullanılır.

Elbette ki Direct3D sadece Microsoft’un 3D çizimlere getirdiği bir interaktif çizim (anlık çizim) teknolojisidir, bunun yanında 3. parti Open GL teknolojisi de tıpkı akranı Direct 3D gibi 2-3D piyasasında yaygınlaşmış bir anlık çizim programıdır ve ekran kartlarının çoğu bu teknolojiyi desteklemektedir. Bu yazılımı anlatmak tamamen yersizdir çünkü tüm mantığı Direct 3D’nin işlevselliğine dayanır, tek farkı, farklı bir firma tarafından geliştirilmiş olmasıdır. Ayrıca yüklenmesi de gerekmez, işletim sistemlerine gömülü gelir.

Resim6’da bir 3D program ve desteklediği anlık çizim teknolojileri gösterilmiştir.

direct3d

Tüm bunların yanında hem anlık hem anlık olmayan (Real Time – Non Real Time) grafik bilgilerinin GPU tarafından çok işlemcili bilgisayarlarda hesaplanması için de yazılımlar geliştirilmiştir.Bunlar NVIDIA’ya ait CUDA ve APPLE’nin kullandığı OPEN CL teknolojisidir.

Bu teknolojileri kullanabilmek için öncelikle bir 3D programımız olmalıdır, sonra 3D programımızda yarattığımız grafik bilgilerini GPU’ya hesaplattırabilmek için bir Render yazılımımız olmalıdır, artık (destekliyor ise) render yazılımımızda hesaplama motoru olarak GPU ya da CPU’yu seçebiliriz.

Kaynak

Yazıda kullanılan çalışma (Epilogue) Meksikalı sanatçı Carlos Ortega Elizalde tarafından yapıldı.

Her Grafikerin Bilmesi Gereken Altın Kurallar (bölüm 1) için 3 cevap

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bugün dünden daha iyiyiz!

Dersler
Anket

Ekran kartı seçiminiz

Sonuçları Göster

Yükleniyor ... Yükleniyor ...