Visible surface detection methods

1,471 views

Published on

Görünür Yüzey Algılama Algoritmaları

Published in: Technology, Business
2 Comments
2 Likes
Statistics
Notes
No Downloads
Views
Total views
1,471
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
40
Comments
2
Likes
2
Embeds 0
No embeds

No notes for slide

Visible surface detection methods

  1. 1. Visible-SurfaceDetectionMethodsCanan Girgin06.07.2011Kocaeli Üniversitesi
  2. 2. 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
  3. 3. Visible-Surface Detection MethodsKullanı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 veyü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ırmagerekir
  4. 4. Visible-Surface Detection Methods2) Görüntü Uzayı Yöntemleri (image-space methods) :Görüntü uzayı algoritmaları, nesnelerin ve yüzeyleringörünürlüğünü piksel piksel izdüşüm düzlemindebelirler.Algoritmanın çalışma zamanı nesnelerdeki pixelsayısına bağlıdır.Algoritmaların çoğu görüntü uzayı yöntemlerinikullanır.
  5. 5. 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
  6. 6. Back-Face Detection (Arka Yüz Tespiti )Arka yüz tespiti, poligon tabanlı grafik uygulamaalgoritmasıdır.Görüntülenmesi gereken poligon sayısını yarıyaindiren basit ve hızlı bir yöntemdir
  7. 7. Back-Face Detection (Arka Yüz Tespiti )Arka yüz tespitinin düzgün sonuçlar verebilmesi içinbazı ş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.
  8. 8. Back-Face Detection (Arka Yüz Tespiti ) Yüzey Denklemi : Ax + By + Cz + D = 0 Yüzey Normali : N = (A,B,C)
  9. 9. 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
  10. 10. Back-Face Detection (Arka Yüz Tespiti )Arka yüz tespiti tek başına kullanıldığı zaman görünüryü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üzeytespit yöntemlerinin uygulanmasından önce bir önalgoritma olarak işleme konulur.
  11. 11. 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.
  12. 12. 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.
  13. 13. Depth-Buffer Methodİşlem Adımları:Ekrandaki tüm pikseller için iki adet iki boyutlu dizikullanılır. (Refresh Buffer ve Depth Buffer )İlk dizi noktaların rengini, ikincisi ise noktaların derinliğinitutar.Renk dizisi arka plan rengiyle, derinlik dizisi de mümkünolan en büyük değer ile doldurulur.Ekranda görüntülenecek tüm pikseller için pikselin zkoordinatı hesaplanır.
  14. 14. Depth-Buffer Methodİşlem Adımları : Hesaplanan z değeri derinlik dizisinde aynı pikselekarşılık gelen değerden daha küçükse (bir başka deyişle,piksel daha yakındaysa), derinlik dizisindeki pikselin eski zdeğeri, hesaplanan yeni z değerine eşitlenir.Derinlikdeğerleri genellikle [0,1] arasına normalizeedilerek tutulur. Renk dizisindeki pikselin değeri de görüntülenecekpikselin rengine eşitlenir.
  15. 15. 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)
  16. 16. Depth-Buffer Method(Derinlik Arabelleği Yöntemi) Yv S3 S2 S1 (x, y) Xv
  17. 17. 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.
  18. 18. 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>
  19. 19. 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.
  20. 20. A-Buffer Method A-Buffer metodunun dezavantajları:  Sadece şeffaf olmayan yüzeyler ile ilgilenir.  Daha fazla belleğe ihityaç duyar.
  21. 21. 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.
  22. 22. 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.
  23. 23. 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.
  24. 24. Scan-Line Method – Örnek2
  25. 25. 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.
  26. 26. Depth-Sorting Method(Derinlik Sıralaması)Bu yöntem bir bakıma ressamın resim yapmasına benzer. Nasıl birressam sıra ile önce en arkadaki dağları, ovaları, sonra geridekiağaçları, evleri, en sonra da en önde oynayan çocuklarıboyarsa, bu yöntemde de en arkadaki yüzeyden başlayarakyüzeyler sırayla çizilir
  27. 27. Depth-Sorting Method
  28. 28. Depth-Sorting Method
  29. 29. 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
  30. 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
  31. 31. Depth-Sorting Method - Örtüşme TestleriBakış açısına göre Yüzey S’nin tamamen örtüşenönünde kalması durumu S S’ xv zv
  32. 32. Depth-Sorting Method - Örtüşme Testleriİki alanın görüntüsünün örtüşmediği durumlar S S’ xv zv
  33. 33. 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
  34. 34. Depth-Sorting Method - Dezavantajİki veya daha fazla yüzey değişimli olarak birbirininüzerinde ise — Sonsuz bir döngü oluşur
  35. 35. 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
  36. 36. 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
  37. 37. BSP-Tree Method - ÖRNEK
  38. 38. BSP-Tree Method - ÖRNEK
  39. 39. BSP-Tree Method - ÖRNEK
  40. 40. BSP-Tree Method - ÖRNEK
  41. 41. BSP-Tree Method - ÖRNEK
  42. 42. BSP-Tree Method - Algoritma
  43. 43. 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).
  44. 44. 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.
  45. 45. 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
  46. 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
  47. 47. 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 arkayadoğru sıralanırGörünen tüm yüzeyler için dörtlü ağaç (quadtree)6gösterimi framebuffer ’a yüklenir. 5 4 1 0 7 2 48 3 Octants in Space
  48. 48. 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
  49. 49. Ray-Casting Metod 50
  50. 50. CurvedSurfaces(Eğri Alanlar)
  51. 51. 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
  52. 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
  53. 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
  54. 54. Özet
  55. 55. 56
  56. 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
  57. 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

×