SlideShare une entreprise Scribd logo
1  sur  58
Visible-Surface
Detection
Methods
Canan Girgin
06.07.2011
Kocaeli Üniversitesi
Visible-Surface Detection Methods

 Tek bir mükemmel çözüm yoktur.
 Algoritmalarının birbirlerine göre avantaj ve
  dezavantaj ölçümleri
 Hız
 Bellek ihtiyacı
 Yöntemin geliştirme zorlukları
 Sadece belirli nesneler üzerinde
  uygulanabilirliklerine göre değişmektedir
Visible-Surface Detection Methods
Kullanılan algoritmalarda başlıca iki yaklaşım vardır:

1) Nesne Uzayı Yöntemleri (object-space methods) :
Nesnelerin görünürlüğünü, yüzeyleri, diğer nesne ve
yüzeylerle karşılaştırarak tanımlandıkları uzayda belirler.

 Az sayıda nesnenin olduğu ekranlarda etkilidir.
 implementasyonu zordur.
 N tane obje olan bir uzayda N*N tane karşılaştırma
gerekir
Visible-Surface Detection Methods

2) Görüntü Uzayı Yöntemleri (image-space methods) :
Görüntü uzayı algoritmaları, nesnelerin ve yüzeylerin
görünürlüğünü piksel piksel izdüşüm düzleminde
belirler.

Algoritmanın     çalışma zamanı nesnelerdeki pixel
sayısına bağlıdır.
Algoritmaların çoğu görüntü uzayı yöntemlerini
kullanır.
Visible-Surface Detection Methods

   Image-Space Method               Object-Space Method
       Depth-Buffer Method              Back-Face Detection
       A-Buffer Method                  BSP-Tree Method
       Scan-Line Method                 Area-Subdivision
       Area-Subdivision Method           Method
                                         Octree Methods
                                         Ray-Casting Method


                                                             6
Back-Face Detection (Arka Yüz Tespiti )

Arka  yüz tespiti, poligon tabanlı grafik uygulama
algoritmasıdır.

Görüntülenmesi    gereken poligon sayısını yarıya
indiren basit ve hızlı bir yöntemdir
Back-Face Detection (Arka Yüz Tespiti )

Arka yüz tespitinin düzgün sonuçlar verebilmesi için
bazı şartların sağlaması gereklidir:

   Nesneler kapalı olmalıdır. Bir başka deyişle,
    nesneler içi görülebilen boşluklar içermemelidir.
   Nesneler şeffaf ya da yarı geçirgen olmamalıdır.
   Nesneyi oluşturan yüzeylere ait normal vektörleri
    dışarıya doğru tanımlanmış olmalıdır.
Back-Face Detection (Arka Yüz Tespiti )


  Yüzey Denklemi   : Ax + By + Cz + D = 0
  Yüzey Normali    : N = (A,B,C)
Back-Face Detection (Arka Yüz Tespiti )

  Eğer Vview⋅N>0 ise poligon yüzeyi arka yüzdedir.
    ( 0,0,−1)⋅N<0 ya da if C<0
Back-Face Detection (Arka Yüz Tespiti )

Arka yüz tespiti tek başına kullanıldığı zaman görünür
yüzey tespit yöntemi olarak yeterli değildir.

Başka   bir görünür yüzey yöntemi ile desteklenmelidir.

Ancak  basitliği ve hızı nedeniyle, diğer görünür yüzey
tespit yöntemlerinin uygulanmasından önce bir ön
algoritma olarak işleme konulur.
Depth-Buffer Method
(Derinlik Arabelleği Yöntemi)

   En çok kullanılan yöntemlerdendir.

   Z-buffer metodu olarak da bilinir.

   Bir Image-Space yöntemidir.

   Birçok grafik uygulaması ve grafik hızlandırıcı donanım görünür
    yüzey tespit algoritması olarak Z-tamponu veya Z-tamponuna
    benzeyen yöntemler kullanır.
Depth-Buffer Method
(Derinlik Arabelleği Yöntemi)

Depth-Buffer algoritmasının arkasında yatan temel fikir
 ekranda gösterilecek olan piksellerden bakış
 noktasına en yakın olanları (en küçük z koordinatına
 sahip olanları) bulmaktır.
Depth-Buffer Method
İşlem Adımları:

Ekrandaki    tüm pikseller için iki adet iki boyutlu dizi
kullanılır. (Refresh Buffer ve Depth Buffer )
İlk dizi noktaların rengini, ikincisi ise noktaların derinliğini
tutar.
Renk dizisi arka plan rengiyle, derinlik dizisi de mümkün
olan en büyük değer ile doldurulur.
Ekranda görüntülenecek tüm pikseller için pikselin z
koordinatı hesaplanır.
Depth-Buffer Method
İşlem Adımları :

 Hesaplanan z değeri derinlik dizisinde aynı piksele
karşılık gelen değerden daha küçükse (bir başka deyişle,
piksel daha yakındaysa), derinlik dizisindeki pikselin eski z
değeri, hesaplanan yeni z değerine eşitlenir.

Derinlikdeğerleri genellikle [0,1] arasına normalize
edilerek tutulur.

  Renk dizisindeki pikselin değeri de görüntülenecek
pikselin rengine eşitlenir.
Depth-Buffer Method - Algoritma

    Depth buffer ve refresh buffer tanımlanır.
        depth(x, y) = 0,       refresh(x, y) = Ibackgnd

    Poligondaki Her bir (x, y) pozisyonu için derinlik hesaplanır

                          Ax By D
                     z
                             C
  Eğer z > depth(x, y),
       depth(x, y) = z,             refresh(x, y) = Isurf(x, y)
Depth-Buffer Method
(Derinlik Arabelleği Yöntemi)

                       Yv
        S3   S2
                  S1

                        (x, y)
                                 Xv
A-Buffer Method

 Depth-buffer algoritmasının devamı olan bir
 metoddur.

    Bufferdaki her bir pozisyonun iki alanı vardır
     • Derinlik alanı
            Pozitif ya da negatif bir derinlik değeri saklar
     • Yoğunluk alanı
            Yüzey yoğunluk bilgisini ya da bir pointer değerini tutar.
A-Buffer Method - Algoritma
     Bufferdaki her bir pozisyon bir linked listte referans
     tutar.
        • Her bir piksel pozisyonu için bir çok yoğunluk değeri
          olabilir.



        d>0        I                  d<0                   Surf1                Surf2
       Depth Intensity               Depth Intensity
        field (a) field               field (b) field
    <Organization of an A-buffer pixel position : (a) single-surface overlap (b) multiple-surface overlap>
A-Buffer Method - Algoritma

   Derinlik alanı pozitifse
     • Derinlik alanı derinliği tutar
     • Yoğunluk alanı RGP değerini tutar
   Derinlik alanı negatifse
     • İlgili pixeli birden fazla yüzey paylaşmaktadır.
     • Yoğunluk alanı yüzeylerin linked listlerine ait bir pointer
       içerir.
     • Tüm yüzeylere ait veriler linked listtedir.
A-Buffer Method

 A-Buffer metodunun dezavantajları:

    Sadece şeffaf olmayan yüzeyler ile ilgilenir.

    Daha fazla belleğe ihityaç duyar.
Scan-Line Method

   Bir image-space algoritmasıdır.

   Edge Table
       Ekrandaki doğruların koordinatlarını tutar.

 Polygon Table
      Doğrular arasında kalan yüzeyleri tutar.
Algoritma soldan sağa işletilir.
Scan-Line Method - Örnek


   Aktif Liste Scan line 1                                          B
                                                                         E
                                                   yv
       Edge table                                                                    F
                                                                                      Scan line 1
                                                        A
               AB, BC, EH, ve FG                               S1               S2
                                                                                      Scan line 2

           AB ve BC arasında , sadece S1                        H
                                                                                      Scan line 3
                                                                             C

            Yüzeyi     olduğu için                         D
                                                                                 G

                Derinlik hesaplamasına gerek yoktur                                      xv


                S1 is refresh buffer’a girilir.

           EH ve FG içinde durum benzerdir , sadece S2 yüzeyini
            kapsar.
Scan-Line Method - Örnek

   Scan line 2, 3
       Edge table                                            B
                                                                  E
                                            yv
       AD, EH, BC, ve FG                                                      F
                                                                               Scan line 1
                                                 A
           AD ve BC arasında , sadece S1                S1               S2
                                                                               Scan line 2

           EH ve BC her iki yüzeyide                     H
                                                                               Scan line 3
                                                                      C
            Kapsadığından derinlik                   D
                                                                          G

            hesaplaması yapılır ve S1 ‘in                                          xv


            derinliği daha küçük hesaplandığından refresh buffera
            yüklenir.
Scan-Line Method – Örnek2
Depth-Sorting Method
(Derinlik Sıralaması)

Görüntü   ve Nesne Uzayı yöntemlerinin her ikisini de kullanır.
Painter’s algorithm (ressamın algoritması) olarak da geçer.

Yüzeyler   derinliklerine göre sıralanır.

En   derinden başlanarak ekrana basılır.
Depth-Sorting Method
(Derinlik Sıralaması)


Bu yöntem bir bakıma ressamın resim yapmasına benzer. Nasıl bir
ressam sıra ile önce en arkadaki dağları, ovaları, sonra gerideki
ağaçları, evleri, en sonra da en önde oynayan çocukları
boyarsa, bu yöntemde de en arkadaki yüzeyden başlayarak
yüzeyler sırayla çizilir
Depth-Sorting Method
Depth-Sorting Method
Depth-Sorting Method - Örtüşme Testleri

Örtüşen Yüzeyler için Örtüşme Testleri uygulanır:
S ile örtüşen tüm yüzeyler test edilir.

     xy düzleminde örtüşmeyen




                                    xv
                 zv

                                                    30
Depth-Sorting Method - Örtüşme Testleri

 Bakış açısına göre Yüzey S’nin tamamen örtüşen
 yüzeyin arkasında kalması durumu



                        S


                            S’


                                     xv
                 zv
Depth-Sorting Method - Örtüşme Testleri
Bakış açısına göre Yüzey S’nin tamamen örtüşen
önünde kalması durumu


                     S




                     S’

                                 xv
             zv
Depth-Sorting Method - Örtüşme Testleri

İki alanın görüntüsünün örtüşmediği durumlar


                           S




                      S’

                                     xv
                 zv
Depth-Sorting Method - Örtüşme Testleri
    Tüm yüzeyler bu testlerden herhangi birini geçti ise hiç biri
     S’in arkasında değildir
     Tekrar sıralamaya gerek yoktur.
    Eğer 4 testin tamamıda S için başarısız olmuş ise:
 ⁻   Sıralı listede S ve S’ alanları yerdeğiştirilir.
 ⁻   Listede tekrar sıralanan her bir alan için testler tekrar edilir.



                                                        S’’
                                                 S
              S’          S                                         S’




                                xv                                          xv
                   <S  S’>                   <S  S’’, then S’’  S’>
     zv                                zv
Depth-Sorting Method - Dezavantaj
İki veya daha fazla yüzey değişimli olarak birbirinin
üzerinde ise
 — Sonsuz bir döngü oluşur
BSP-Tree Method

   Nesneleri ekranda arkadan öne doğru çizdirir.

   Painter algoritması ile benzerlik gösterir.

   Aşağıdaki durumlarda faydalıdır:
       - Bakış açısı değişken olduğunda
       - Ekrandaki nesneler sabit olduğunda
BSP-Tree Method - Algoritma

   Alanlar belirlenir

   ‘inside’ ve ‘outside’ ayrımı yapılır.


             P2                    P1                        P1

                        C                           front             back
                                        D

               A                                    P2                 P2

                                            front        back front          back
                    B
            front           back               A         C        B          D
BSP-Tree Method - ÖRNEK
BSP-Tree Method - ÖRNEK
BSP-Tree Method - ÖRNEK
BSP-Tree Method - ÖRNEK
BSP-Tree Method - ÖRNEK
BSP-Tree Method - Algoritma
Area-Subdivision Method

   Tüm alanı küçük parçalara bölerek ele alır.

   Bölünen her bir küçük alanda tek bir yüzey parçası
    görünene dek bölme işlemine devam edilir.

   Küçük alanların tek bir yüzeyi içerdiğine dair testler
    yapmak gerekir.

   Parçalamaları genellikle dörtlü alanlar şeklinde
    yapar (quadtree).
Area-Subdivision Method

 Tüm  alandan başla
 Alan üzerinde tanıma testlerini uygula
 Alan komplex bir alan ise, alanı küçük alanlara böl
 Yeni oluşan alanlara tanıma testlerini uygula
 Tek bir alanı içeren parçalar elde edene kadar
  işlemi tekrar et.
Tanımlama Testleri
   4 olası ilişki olabilir:
       Surrounding surface
           Tamamen alanı kapsayabilir
       Overlapping surface                                     Surrounding   Overlapping
           Alanın bir bölümü içerde ya da dışarda kalabilir.     Surface      Surface

       Inside surface
           Tamamen içerde kalabilir
       Outside surface                                           Inside       Outside
           Tamamen dışarda kalabilir.                           Surface       Surface



   Ekteki şartlardan herhangi biri sağlandı ise bölünmeye devam
    etmeye gerek yoktur:
        Tüm yüzeyler beklenen alanın dışında kaldı ise.
       Alan içerisinde sadece bir içerde, overlapping, ya da surrounding
        yüzey varsa
        Bir surrounding yüzey alan içinde diğer tüm yüzeyleri kapsıyorsa
                                                                      46
Octree Method

   Area-subdivision methodun geliştirilmiştir.


   Görüntülenen alanda Octree düğümleri oluşturur.
       Front-to-back order  Depth-first traversal
           0’ a komşu diğer 4 parça ziyaret edilir.
           Framebufferda ki ön yüzde ziyaret edilen ilgili pixele daha
            önce bulunan renk atanmamış ise yüklenir.        6
               Sadece öndeki renkler yüklenir             5
                                                       4

                                                                   1
                                                               0


                                                   7               2   47
                                                               3
Bir Octree’nin Gösterimi
 Görünür alanların dörtlü ağaç
(quadtree) üzerinde octree haritası

Recursive  bir prosedürle octree nodeları önden arkaya
doğru sıralanır

Görünen    tüm yüzeyler için dörtlü ağaç (quadtree)6
gösterimi framebuffer ’a yüklenir.               5
                                              4


                                                                  1
                                                         0


                                          7                       2
                                                                 48
                                                         3


                                              Octants in Space
Ray-Casting Metod

   Işık ışınlarının yollarını izler
         Bakış açısından her piksele ışın gönderilir.
         Bu ışın ile hangi nesnelerin kesiştiğini tespit eder.
         Kesişim noktası en yakın olan görünür yüzeyler belirlenir.


 Etkili görünürlük algılama yöntemidir
       Eğrilik içeren sahneler için etkindir




                                                                49
Ray-Casting Metod




                    50
Curved
Surfaces
(Eğri Alanlar)
Curved Surfaces - Abstract
   Eğri alanlarda etkin metodlar
       Ray-casting
       Octree metodu


    Eğri Yüzeyler genellikle bir düzlem ve poligon
    yüzeyleri setinden oluşur
       Diğer herhangi bir visible-surface metodu uygulanır.
       Daha etkili bir sonuç için daha sonra ray casting ve
        curved-surface metodları da uygulanır.
                                                          52
Wireframe Metod
   Wireframe Gösteriminde
       Yüzey kenarlarına görünürlük testleri uygulanır.
       Görünür kenar alanları gösterilir.
       Gizli kenar alanları saklanır ya da görünür kenar


    Kenarların görünürlük belirlemesi procedürü
    Visible-line detection, Hidden-line detection metodları
    kullanılabilir.


                                                            53
Wireframe Visibility Methods
   Her bir doğruyu her bir yüzey ile karşılaştır.
       Görünür doğruları tanımlamak için direk kullanılan bir
        uygulamadır.
       Derinlik değerleri yüzeylerinki ile karşılaştırılır.
       Coherence metodu (Scan Line) kullanılır.


   Depth-sorting(Derinlik sıralaması) ile
       İç kısımdakiler arka plan rengindedir.
       Sınırlar ön plan rengindedir.
       Yüzeyler arkadan öne doğru işlenir.
           Saklı alanlar yakın yüzeylerden silinir.
                                                                 54
Özet
56
Özet(1 / 2)
   Back-face detection metod
       İlk tarama olarak etkin ve hızlı
            Ancak tüm gizli alanların tepitini yapamaz.


   Depth-buffer(z-buffer) metod
       Hızlı ve basittir
       İki Buffer kullanır:
        1.     Refresh buffer pixel yoğunlukları için
        2.     Depth buffer görünen yüzeyin derinlikleri için




                                                                57
Özet(2 / 2)
   A-buffer metodu
       Depth-buffer uygulamasının gelişmiş halidir.
       Şeffaf yüzeylerde de etkilidir.

   Diğer visible-surface detection metodları
       Scan-line metodu
       Depth-sorting metodu (painter’s algorithm)
       BSP-tree metodu
       Area subdivision metodu
       Octree metodu
       Ray casting metodu

                                                       58

Contenu connexe

Tendances

Computer Graphics - Hidden Line Removal Algorithm
Computer Graphics - Hidden Line Removal AlgorithmComputer Graphics - Hidden Line Removal Algorithm
Computer Graphics - Hidden Line Removal AlgorithmJyotiraman De
 
5.5 graph mining
5.5 graph mining5.5 graph mining
5.5 graph miningKrish_ver2
 
Cohen and Sutherland Algorithm for 7-8 marks
Cohen and Sutherland Algorithm for 7-8 marksCohen and Sutherland Algorithm for 7-8 marks
Cohen and Sutherland Algorithm for 7-8 marksRehan Khan
 
L03 ai - knowledge representation using logic
L03 ai - knowledge representation using logicL03 ai - knowledge representation using logic
L03 ai - knowledge representation using logicManjula V
 
AI Greedy and A-STAR Search
AI Greedy and A-STAR SearchAI Greedy and A-STAR Search
AI Greedy and A-STAR SearchAndrew Ferlitsch
 
Breadth first search and depth first search
Breadth first search and  depth first searchBreadth first search and  depth first search
Breadth first search and depth first searchHossain Md Shakhawat
 
Hidden lines & surfaces
Hidden lines & surfacesHidden lines & surfaces
Hidden lines & surfacesAnkur Kumar
 

Tendances (12)

Computer Graphics - Hidden Line Removal Algorithm
Computer Graphics - Hidden Line Removal AlgorithmComputer Graphics - Hidden Line Removal Algorithm
Computer Graphics - Hidden Line Removal Algorithm
 
5.5 graph mining
5.5 graph mining5.5 graph mining
5.5 graph mining
 
Cohen and Sutherland Algorithm for 7-8 marks
Cohen and Sutherland Algorithm for 7-8 marksCohen and Sutherland Algorithm for 7-8 marks
Cohen and Sutherland Algorithm for 7-8 marks
 
L03 ai - knowledge representation using logic
L03 ai - knowledge representation using logicL03 ai - knowledge representation using logic
L03 ai - knowledge representation using logic
 
AI Greedy and A-STAR Search
AI Greedy and A-STAR SearchAI Greedy and A-STAR Search
AI Greedy and A-STAR Search
 
A bufferrrrrrrrrr (1)
A bufferrrrrrrrrr (1)A bufferrrrrrrrrr (1)
A bufferrrrrrrrrr (1)
 
Breadth first search and depth first search
Breadth first search and  depth first searchBreadth first search and  depth first search
Breadth first search and depth first search
 
Graphs bfs dfs
Graphs bfs dfsGraphs bfs dfs
Graphs bfs dfs
 
Avltrees
AvltreesAvltrees
Avltrees
 
Hidden lines & surfaces
Hidden lines & surfacesHidden lines & surfaces
Hidden lines & surfaces
 
Pushdown automata
Pushdown automataPushdown automata
Pushdown automata
 
Digital Basics
Digital BasicsDigital Basics
Digital Basics
 

Visible surface detection methods

  • 2.
  • 3. Visible-Surface Detection Methods  Tek bir mükemmel çözüm yoktur.  Algoritmalarının birbirlerine göre avantaj ve dezavantaj ölçümleri  Hız  Bellek ihtiyacı  Yöntemin geliştirme zorlukları  Sadece belirli nesneler üzerinde uygulanabilirliklerine göre değişmektedir
  • 4. Visible-Surface Detection Methods Kullanılan algoritmalarda başlıca iki yaklaşım vardır: 1) Nesne Uzayı Yöntemleri (object-space methods) : Nesnelerin görünürlüğünü, yüzeyleri, diğer nesne ve yüzeylerle karşılaştırarak tanımlandıkları uzayda belirler.  Az sayıda nesnenin olduğu ekranlarda etkilidir.  implementasyonu zordur.  N tane obje olan bir uzayda N*N tane karşılaştırma gerekir
  • 5. Visible-Surface Detection Methods 2) Görüntü Uzayı Yöntemleri (image-space methods) : Görüntü uzayı algoritmaları, nesnelerin ve yüzeylerin görünürlüğünü piksel piksel izdüşüm düzleminde belirler. Algoritmanın çalışma zamanı nesnelerdeki pixel sayısına bağlıdır. Algoritmaların çoğu görüntü uzayı yöntemlerini kullanır.
  • 6. Visible-Surface Detection Methods  Image-Space Method  Object-Space Method  Depth-Buffer Method  Back-Face Detection  A-Buffer Method  BSP-Tree Method  Scan-Line Method  Area-Subdivision  Area-Subdivision Method Method  Octree Methods  Ray-Casting Method 6
  • 7. Back-Face Detection (Arka Yüz Tespiti ) Arka yüz tespiti, poligon tabanlı grafik uygulama algoritmasıdır. Görüntülenmesi gereken poligon sayısını yarıya indiren basit ve hızlı bir yöntemdir
  • 8. Back-Face Detection (Arka Yüz Tespiti ) Arka yüz tespitinin düzgün sonuçlar verebilmesi için bazı şartların sağlaması gereklidir:  Nesneler kapalı olmalıdır. Bir başka deyişle, nesneler içi görülebilen boşluklar içermemelidir.  Nesneler şeffaf ya da yarı geçirgen olmamalıdır.  Nesneyi oluşturan yüzeylere ait normal vektörleri dışarıya doğru tanımlanmış olmalıdır.
  • 9. Back-Face Detection (Arka Yüz Tespiti ) Yüzey Denklemi : Ax + By + Cz + D = 0 Yüzey Normali : N = (A,B,C)
  • 10. Back-Face Detection (Arka Yüz Tespiti ) Eğer Vview⋅N>0 ise poligon yüzeyi arka yüzdedir. ( 0,0,−1)⋅N<0 ya da if C<0
  • 11. Back-Face Detection (Arka Yüz Tespiti ) Arka yüz tespiti tek başına kullanıldığı zaman görünür yüzey tespit yöntemi olarak yeterli değildir. Başka bir görünür yüzey yöntemi ile desteklenmelidir. Ancak basitliği ve hızı nedeniyle, diğer görünür yüzey tespit yöntemlerinin uygulanmasından önce bir ön algoritma olarak işleme konulur.
  • 12. Depth-Buffer Method (Derinlik Arabelleği Yöntemi)  En çok kullanılan yöntemlerdendir.  Z-buffer metodu olarak da bilinir.  Bir Image-Space yöntemidir.  Birçok grafik uygulaması ve grafik hızlandırıcı donanım görünür yüzey tespit algoritması olarak Z-tamponu veya Z-tamponuna benzeyen yöntemler kullanır.
  • 13. Depth-Buffer Method (Derinlik Arabelleği Yöntemi) Depth-Buffer algoritmasının arkasında yatan temel fikir ekranda gösterilecek olan piksellerden bakış noktasına en yakın olanları (en küçük z koordinatına sahip olanları) bulmaktır.
  • 14. Depth-Buffer Method İşlem Adımları: Ekrandaki tüm pikseller için iki adet iki boyutlu dizi kullanılır. (Refresh Buffer ve Depth Buffer ) İlk dizi noktaların rengini, ikincisi ise noktaların derinliğini tutar. Renk dizisi arka plan rengiyle, derinlik dizisi de mümkün olan en büyük değer ile doldurulur. Ekranda görüntülenecek tüm pikseller için pikselin z koordinatı hesaplanır.
  • 15. Depth-Buffer Method İşlem Adımları :  Hesaplanan z değeri derinlik dizisinde aynı piksele karşılık gelen değerden daha küçükse (bir başka deyişle, piksel daha yakındaysa), derinlik dizisindeki pikselin eski z değeri, hesaplanan yeni z değerine eşitlenir. Derinlikdeğerleri genellikle [0,1] arasına normalize edilerek tutulur.  Renk dizisindeki pikselin değeri de görüntülenecek pikselin rengine eşitlenir.
  • 16. Depth-Buffer Method - Algoritma  Depth buffer ve refresh buffer tanımlanır. depth(x, y) = 0, refresh(x, y) = Ibackgnd  Poligondaki Her bir (x, y) pozisyonu için derinlik hesaplanır Ax By D z C  Eğer z > depth(x, y), depth(x, y) = z, refresh(x, y) = Isurf(x, y)
  • 17. Depth-Buffer Method (Derinlik Arabelleği Yöntemi) Yv S3 S2 S1 (x, y) Xv
  • 18. A-Buffer Method Depth-buffer algoritmasının devamı olan bir metoddur.  Bufferdaki her bir pozisyonun iki alanı vardır • Derinlik alanı  Pozitif ya da negatif bir derinlik değeri saklar • Yoğunluk alanı  Yüzey yoğunluk bilgisini ya da bir pointer değerini tutar.
  • 19. A-Buffer Method - Algoritma  Bufferdaki her bir pozisyon bir linked listte referans tutar. • Her bir piksel pozisyonu için bir çok yoğunluk değeri olabilir. d>0 I d<0 Surf1 Surf2 Depth Intensity Depth Intensity field (a) field field (b) field <Organization of an A-buffer pixel position : (a) single-surface overlap (b) multiple-surface overlap>
  • 20. A-Buffer Method - Algoritma  Derinlik alanı pozitifse • Derinlik alanı derinliği tutar • Yoğunluk alanı RGP değerini tutar  Derinlik alanı negatifse • İlgili pixeli birden fazla yüzey paylaşmaktadır. • Yoğunluk alanı yüzeylerin linked listlerine ait bir pointer içerir. • Tüm yüzeylere ait veriler linked listtedir.
  • 21. A-Buffer Method A-Buffer metodunun dezavantajları:  Sadece şeffaf olmayan yüzeyler ile ilgilenir.  Daha fazla belleğe ihityaç duyar.
  • 22. Scan-Line Method  Bir image-space algoritmasıdır.  Edge Table Ekrandaki doğruların koordinatlarını tutar.  Polygon Table Doğrular arasında kalan yüzeyleri tutar. Algoritma soldan sağa işletilir.
  • 23. Scan-Line Method - Örnek  Aktif Liste Scan line 1 B E yv  Edge table F Scan line 1 A  AB, BC, EH, ve FG S1 S2 Scan line 2  AB ve BC arasında , sadece S1 H Scan line 3 C Yüzeyi olduğu için D G  Derinlik hesaplamasına gerek yoktur xv  S1 is refresh buffer’a girilir.  EH ve FG içinde durum benzerdir , sadece S2 yüzeyini kapsar.
  • 24. Scan-Line Method - Örnek  Scan line 2, 3  Edge table B E yv  AD, EH, BC, ve FG F Scan line 1 A  AD ve BC arasında , sadece S1 S1 S2 Scan line 2  EH ve BC her iki yüzeyide H Scan line 3 C Kapsadığından derinlik D G hesaplaması yapılır ve S1 ‘in xv derinliği daha küçük hesaplandığından refresh buffera yüklenir.
  • 26. Depth-Sorting Method (Derinlik Sıralaması) Görüntü ve Nesne Uzayı yöntemlerinin her ikisini de kullanır. Painter’s algorithm (ressamın algoritması) olarak da geçer. Yüzeyler derinliklerine göre sıralanır. En derinden başlanarak ekrana basılır.
  • 27. Depth-Sorting Method (Derinlik Sıralaması) Bu yöntem bir bakıma ressamın resim yapmasına benzer. Nasıl bir ressam sıra ile önce en arkadaki dağları, ovaları, sonra gerideki ağaçları, evleri, en sonra da en önde oynayan çocukları boyarsa, bu yöntemde de en arkadaki yüzeyden başlayarak yüzeyler sırayla çizilir
  • 30. Depth-Sorting Method - Örtüşme Testleri Örtüşen Yüzeyler için Örtüşme Testleri uygulanır: S ile örtüşen tüm yüzeyler test edilir.  xy düzleminde örtüşmeyen xv zv 30
  • 31. Depth-Sorting Method - Örtüşme Testleri Bakış açısına göre Yüzey S’nin tamamen örtüşen yüzeyin arkasında kalması durumu S S’ xv zv
  • 32. Depth-Sorting Method - Örtüşme Testleri Bakış açısına göre Yüzey S’nin tamamen örtüşen önünde kalması durumu S S’ xv zv
  • 33. Depth-Sorting Method - Örtüşme Testleri İki alanın görüntüsünün örtüşmediği durumlar S S’ xv zv
  • 34. Depth-Sorting Method - Örtüşme Testleri  Tüm yüzeyler bu testlerden herhangi birini geçti ise hiç biri S’in arkasında değildir  Tekrar sıralamaya gerek yoktur.  Eğer 4 testin tamamıda S için başarısız olmuş ise: ⁻ Sıralı listede S ve S’ alanları yerdeğiştirilir. ⁻ Listede tekrar sıralanan her bir alan için testler tekrar edilir. S’’ S S’ S S’ xv xv <S  S’> <S  S’’, then S’’  S’> zv zv
  • 35. Depth-Sorting Method - Dezavantaj İki veya daha fazla yüzey değişimli olarak birbirinin üzerinde ise — Sonsuz bir döngü oluşur
  • 36. BSP-Tree Method  Nesneleri ekranda arkadan öne doğru çizdirir.  Painter algoritması ile benzerlik gösterir.  Aşağıdaki durumlarda faydalıdır: - Bakış açısı değişken olduğunda - Ekrandaki nesneler sabit olduğunda
  • 37. BSP-Tree Method - Algoritma  Alanlar belirlenir  ‘inside’ ve ‘outside’ ayrımı yapılır. P2 P1 P1 C front back D A P2 P2 front back front back B front back A C B D
  • 43. BSP-Tree Method - Algoritma
  • 44. Area-Subdivision Method  Tüm alanı küçük parçalara bölerek ele alır.  Bölünen her bir küçük alanda tek bir yüzey parçası görünene dek bölme işlemine devam edilir.  Küçük alanların tek bir yüzeyi içerdiğine dair testler yapmak gerekir.  Parçalamaları genellikle dörtlü alanlar şeklinde yapar (quadtree).
  • 45. Area-Subdivision Method  Tüm alandan başla  Alan üzerinde tanıma testlerini uygula  Alan komplex bir alan ise, alanı küçük alanlara böl  Yeni oluşan alanlara tanıma testlerini uygula  Tek bir alanı içeren parçalar elde edene kadar işlemi tekrar et.
  • 46. Tanımlama Testleri  4 olası ilişki olabilir:  Surrounding surface  Tamamen alanı kapsayabilir  Overlapping surface Surrounding Overlapping  Alanın bir bölümü içerde ya da dışarda kalabilir. Surface Surface  Inside surface  Tamamen içerde kalabilir  Outside surface Inside Outside  Tamamen dışarda kalabilir. Surface Surface  Ekteki şartlardan herhangi biri sağlandı ise bölünmeye devam etmeye gerek yoktur:  Tüm yüzeyler beklenen alanın dışında kaldı ise.  Alan içerisinde sadece bir içerde, overlapping, ya da surrounding yüzey varsa  Bir surrounding yüzey alan içinde diğer tüm yüzeyleri kapsıyorsa 46
  • 47. Octree Method  Area-subdivision methodun geliştirilmiştir.  Görüntülenen alanda Octree düğümleri oluşturur.  Front-to-back order  Depth-first traversal  0’ a komşu diğer 4 parça ziyaret edilir.  Framebufferda ki ön yüzde ziyaret edilen ilgili pixele daha önce bulunan renk atanmamış ise yüklenir. 6  Sadece öndeki renkler yüklenir 5 4 1 0 7 2 47 3
  • 48. Bir Octree’nin Gösterimi Görünür alanların dörtlü ağaç (quadtree) üzerinde octree haritası Recursive bir prosedürle octree nodeları önden arkaya doğru sıralanır Görünen tüm yüzeyler için dörtlü ağaç (quadtree)6 gösterimi framebuffer ’a yüklenir. 5 4 1 0 7 2 48 3 Octants in Space
  • 49. Ray-Casting Metod  Işık ışınlarının yollarını izler  Bakış açısından her piksele ışın gönderilir.  Bu ışın ile hangi nesnelerin kesiştiğini tespit eder.  Kesişim noktası en yakın olan görünür yüzeyler belirlenir.  Etkili görünürlük algılama yöntemidir  Eğrilik içeren sahneler için etkindir 49
  • 52. Curved Surfaces - Abstract  Eğri alanlarda etkin metodlar  Ray-casting  Octree metodu  Eğri Yüzeyler genellikle bir düzlem ve poligon yüzeyleri setinden oluşur  Diğer herhangi bir visible-surface metodu uygulanır.  Daha etkili bir sonuç için daha sonra ray casting ve curved-surface metodları da uygulanır. 52
  • 53. Wireframe Metod  Wireframe Gösteriminde  Yüzey kenarlarına görünürlük testleri uygulanır.  Görünür kenar alanları gösterilir.  Gizli kenar alanları saklanır ya da görünür kenar Kenarların görünürlük belirlemesi procedürü Visible-line detection, Hidden-line detection metodları kullanılabilir. 53
  • 54. Wireframe Visibility Methods  Her bir doğruyu her bir yüzey ile karşılaştır.  Görünür doğruları tanımlamak için direk kullanılan bir uygulamadır.  Derinlik değerleri yüzeylerinki ile karşılaştırılır.  Coherence metodu (Scan Line) kullanılır.  Depth-sorting(Derinlik sıralaması) ile  İç kısımdakiler arka plan rengindedir.  Sınırlar ön plan rengindedir.  Yüzeyler arkadan öne doğru işlenir.  Saklı alanlar yakın yüzeylerden silinir. 54
  • 55. Özet
  • 56. 56
  • 57. Özet(1 / 2)  Back-face detection metod  İlk tarama olarak etkin ve hızlı  Ancak tüm gizli alanların tepitini yapamaz.  Depth-buffer(z-buffer) metod  Hızlı ve basittir  İki Buffer kullanır: 1. Refresh buffer pixel yoğunlukları için 2. Depth buffer görünen yüzeyin derinlikleri için 57
  • 58. Özet(2 / 2)  A-buffer metodu  Depth-buffer uygulamasının gelişmiş halidir.  Şeffaf yüzeylerde de etkilidir.  Diğer visible-surface detection metodları  Scan-line metodu  Depth-sorting metodu (painter’s algorithm)  BSP-tree metodu  Area subdivision metodu  Octree metodu  Ray casting metodu 58