13 Nisan 2014 Pazar

Opengl Boru Hattı(Rendering Pipeline)

Opengl Boru Hattı


Opengl uygulamalarının işlemsel bir düzene sahiptir buna rendering pipeline(boru hattı) denmektedir ,bu işlem iki katmanlı işleyişe sahiptir

1.Pixel Data
Piksel-tabanlı görüntü ilkelleri(primitive)

2.Vertex Data
Geometrik vertex-tabanlı görüntü ilkelleri





Bu iki aşamalı işlemin nasıl gercekleştigini anlamak için bir cizimi incelemek yeterli olacaktır çizim işlemi geometrik şekiller(noktalar, çizgiler ve çokgenler) yani vertex data kısmı çizim işleminin bir diger kısmı ise pixel data kısmı görüntü ilkeleri (piksel, resimler ve bitmapler) iki katmanlı bu işlem işlenerek renk,ışık özellikleri ve diger özellikler hazırlanır ve görüntü tanponuna yollanır (framebuffer)yani ekran kartına yönlendirilir.Bu kısmi acıklamadan sonra yukarıdaki resimde bu işleyişin grafiksel olarak göre biliriz ve bu aşamalarıda inceliye biliriz.

Görüntü listeleri (Display Lists)
Görüntü listeleri pixel data veya vertex data verilerini istediginiz zaman kullanmak üzere kaydeden komut grubudur,bu komut grubu dışında immidiate modu nuda kullana bilirsiniz ancak display list modu immidiate modundan daha verimlidir.Görüntüleme listelerinin (Display lists) çalışma mantıgı display list komutlarının çagırımı ile listelerde tanımlara göre işlenmesiyle oluşmaktadır.

Hesaplayıcılar(Evaluators)
Evaluators adı üstünde hesaplayıcılar opengl de oluşturan geometrik şekiller,mekansal koordinat degerleri, renk degerleri dokular,vs. her biri aynı şekilde olmadıgı için bu kısımda Evaluators devreye girmektedir oluşturulan çizimin düzenli bir şekilde işlemesi ve ilerlemesini saglamaktadır.

Köşe işlemleri(Per- Vertex Operations)
Köşe verilerinin 4*4 floating-point matrixlerine dönüştürülerek oluşturulan mekansal koordinat sisteminin 3D dünya koordinat sistemine uyarlandıgı bölüme Per- Vertex Operations denmektedir.Eğer gelişmiş özellikler etkinse bu işlemin yükü daha da cogalmaktadır.Örnegin texture doku kaplama özelligi aktif ise doku koordinatları ve Lighting aydınlatma özellikleri,köşe,yüzey normal ışık kaynağı pozisyonu, material özellikleride bu bölümde hesaplanmaktadır.

primitif montajı(Primitive Assembly)
Primitive Assembly nın en önemli görevlerinden biri (Clipping)kırma işlemi ,düzlem dışında kalan geometrik kısımların kırpılması gerekmektedir.Nokta,çizgi,çokgenlerin,(Clipping) işlemi sırasında ,nokta için kırma işlemi basit olmasına ragmen çizgi çokgen gibi geometrik kısımlar için farklı algoritmalar uygulanmaktadır.Bazı durumlarda uzakta olan objelerin daha küçük gözükmesi yakında olan objelerin görünür olması gerekmektedir bu kısım perspective division işlemi ile halledilmektedir,daha sonra bakışaçısı ve derinlik (z-koordinat) sistemi uygulanmaktadır.Renk derinligi doku koordinat degerleri gibi işlemlerin kırmalarıyla devam etmektedir.

Pixel işlemleri(Pixel Operations)
Opengl de geometrik nesneler boru hattı üzerinden bir yol almasına nazaran pixel işlemleri daha farklı bir yol izlemektedir.
Sistem içersinde dizi halinde tutulan veri çözülerek uygun bir bileşen durumunu alır.Daha sonra veri pixel haritası (pixel map) ile ölçeklenir(scaled biased) devamında doku bellege yazılır ve rasterization işlemi gercekleşir.Bu işlem sırasında şu aşamalar gercekleşir (ölçekleme,haritalama(maping),şıkıştırma) ,daha sonra bu sonuçlar paketlenerek uygun bir biçime dönürştürülür.Bu işlemler framebuffer veya texture buffer'a yazılmadan yapılmakıtadır.


Texture Assembly
Openglde geometrik nesneler üzerine doku kaplama işleminin gercekleştigi bölüm (Texture Assembly).

Rasterization
Rasterization geometrik nesnelerin ve pixellerin dönüştürüldügü bölümdür.Her parça kare kare framebuffer da bir pixel karşılıgı bulur,çizgi,çokgen,çizgi genişligi,nokta büyüklügü,gölgeleme,kapsam hesaplamaları ,renk derinlik degerleride burada atanır.

Fragment işlemleri(Fragment Operations)
Yapılan işlemlerin framebuffer a yuklemeden önce bir takım degişikliklerin yapılabilecegi alandır bir başka deyişle Enable ve Disable bazı degişiklikler etkin veya devre dışı bırakabilecegimiz bölüm.Örnegin doku elemanları ile doku bellegi oluşturularak sis hesaplamaları ,scissor test, alpha test, stencil test, depth-buffer testleri gercekleşir.

Hiç yorum yok:

Yorum Gönder