1 / 27

3B Görüntüleme III

3B Görüntüleme III. İnönü Üniversitesi Bilgisayar Mühendisliği Bölümü. Görünür Yüzey Tespiti.

thina
Download Presentation

3B Görüntüleme III

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 3B Görüntüleme III İnönü Üniversitesi Bilgisayar Mühendisliği Bölümü

  2. Görünür Yüzey Tespiti • Görüntülenmek istenen 3B sahnedeki nesnelerin hangi kenar veya yüzeylerinin görünebilir olduğunun tespit edilmesi, görünmeyen kısımların “render” edilmeyerek performans artışı sağlaması açısından önemlidir. • Bir nesnenin (veya bir yüzeyin) görünmemesi başka bir nesne (veya yüzey) tarafından örtülmüş olması ya da görüntüleme hacminin dışında kalması nedeniyledir. • Kırpma düzlemleri ile görüş hacmi dışında kalmak suretiyle görünmeyen yüzey ve nesnelerin ayıklanması yapılır.

  3. Görünür Yüzey Tespiti • Bir nesnenin başka bir nesneyi örtmesi (occlusion) durumunda görünmeyen nesnelerin (yüzeylerin) tespiti için başka algoritmalar geliştirilmiştir. • Bu işlemlere ayrıca gizli yüzeylerin çıkarılması (hiddensurfaceremoval) adı verilir. • Görünür yüzey tespiti algoritmaları iki sınıfta toplanır • Nesne uzayı (objectspace)algoritmaları: Sahnedeki nesneler üzerinde kullanılır. • Resim uzayı (imagespace)algoritmaları: Nesnelerin ekran koordinatları ile belirlenen izdüşümlerine uygulanır.

  4. Resim Uzayı Algoritmaları • Çizdirilecek piksellerin hangi nesneye ait olduklarını belirleyen algoritmalardır. • Bu algoritmaların çalışma zamanı karmaşıklığı piksel sayısı * nesne sayısıdır. • Alan karmaşıklığı (spacecomplexity) ise 2 * piksel sayısıdır. • Bir piksel dizisi görüntü karesi arabelleği (framebuffer) içindir. • Diğeri ise derinlik arabelleği (depth buffer) içindir. • Yüzeylerin birbirleriyle ahenkli (uyumlu) olmasından yararlanılabilir.

  5. Derinlik İması (DepthCueing) • Bazı durumlarda gizli yüzeyleri tamamen kaldırmak yerine daha farklı etkilerle (renk yoğunluğu, gölge vb.) görüntülenerek nesnenin üçüncü boyutu olduğu vurgulanır. • Basit bir yöntem olarak şekillerin uzaklığına bağlı farklı renkler veya renk yoğunlukları kullanımından söz edilebilir.

  6. Arka Yüzün Tespiti • Bir yüzeyin ön ve arkasının tespiti kolaydır. • Bunun için öncelikle yüzeyin normalini (N) hesaplamak gerekir. Daha sonra görüntüleme yönü vektörü (V) ile normalin nokta çarpımından yüzeyin hangi yüzünün görüntülendiği anlaşılır. • Eğer V • N > 0 ise söz konusu yüzey arka yüzdür.

  7. Arka Yüzün Tespiti • Bir yüzeyin normal vektörünün yönü, çokgenin arka yüzünden ön yüzüne doğrudur. • Normal vektörü ise çokgenin iki kenarının saatin tersi yönünde vektörel çarpımı ile bulunur. V3 N = (V2 – V1) X (V3 – V2) N V2 V1

  8. Arka Yüzün Tespiti • Görüntülemenin –z ekseni yönünde olduğu durumda yüzey normali N = (A, B, C) şeklinde ifade edilirse, C ≤ 0 durumunda o yüzeyin arkada olduğu anlaşılır. • C = 0 durumunda herhangi bir yüzey görünmeyeceğinden arka yüze dahil edilir. • Arka yüz tespiti ile dışbükey ve üst üste gelmeyen çok yüzlü cisimlerin bulunduğu bir sahnedeki bütün gizli yüzeyler bulunabilir. • Ancak gerçekte yüzeyler çakışabildiğinden, ilave yöntemlere ihtiyaç vardır.

  9. Derinlik Arabelleği Yöntemi • Aynı zamanda z-arabelleği (z-buffer) yöntemi olarak da bilinir. • Her yüzey bir anda bir piksel konumuna göre ayrı ayrı ele alınır. • Bir piksel için derinlik değerleri mukayese edilir ve en yakındaki yüzey (en düşük z değeri) görüntü karesi arabelleğinde yer alacak rengi belirler. • Çokgen yüzeyleri üzerinde oldukça etkilidir. • Yüzeyler herhangi bir sırada ele alınabilir.

  10. Derinlik Arabelleği Yöntemi • Görüntü karesi arabelleği (framebuffer)ve derinlik arabelleği (depthbuffer) birlikte kullanılır. • Derinlik değerleri (z koordinatları) genelde [0,1] aralığındaki değerlere dönüştürülür.

  11. Algoritma • Derinlik arabelleği ve görüntü karesi arabelleği depthBuff (x,y) = 1.0, frameBuff(x,y) = ArkaplanRengi olacak şekilde ayarlanır. • Sahnedeki her çokgenin bir anda bir tanesi alınır. • Her çokgenin izdüşümü alınmış (x,y) piksel konumu için z derinliği hesaplanır. • Eğer z <depthBuff(x,y), o konumdaki yüzey rengi hesaplanır ve geçerli hale gelir. (depthBuff (x,y) = z, frameBuff (x,y) = surfCol (x,y)) • Bir çokgenin köşe noktalarından sonra diğer noktaların derinliği için çokgen yüzey denkleminden değerleri bulunur. • Yan yana olan dikey veya yatay konumların arasında 1 birim fark vardır. Böylece bir sonraki (x+1,y) nin derinlik değeri için yi bulmak yeterlidir.

  12. Algoritma • Ayrıca http://www.cs.technion.ac.il/~cs234325/Applets/applets/zbuffer/GermanApplet.html voidzBuffer(){ int x, y; for(y =0; y < YMAX; y++) for(x =0; x < XMAX; x++){ WritePixel(x, y, BACKGROUND_VALUE); WriteZ(x, y,1); } for each polygon { for each pixel in polygon’s projection { //plane equation doublepz= Z-value at pixel (x, y); if(pz<ReadZ(x, y)){ // New point is closer to front of view WritePixel(x, y, color at pixel (x, y)) WriteZ(x, y,pz); } } } }

  13. Avantajları • Kaba kuvvet yapısına ve her pikselin defalarca üzerinden geçiliyor gibi görünmesine rağmen donanımda kodlanması ve çalışması çok kolay ve hızlıdır. • Hiçbir ön işleme gerek kalmadan çokgenleri herhangi bir sırada işleme alabilir. • Görüntüye eklemeli ilaveler yapar, iki arabelleği kullanır ve yeni çokgenleri çizdirir. • Her piksel için kaybolan ahenk ve çokgen kimliği nedeniyle bunun tam tersini yapamamaktadır. • Basit yüzey tanımlamaları için idealdir.

  14. Dezavantajları yakın uzak z • Perspektifte küçültmeler nedeniyle perspektif sonrası hacimde z ekseninde sıkışmalar olur. • Kameradan çok uzaktaki nesnelerin z değerleri birbirine çok yakındır. • Tam sayı değerleri ile işlem yapıldığında derinlik bilgisindeki hassasiyet kaybolur. • z kavgasına sebebiyet verebilir. Öncesi 0 1 x z x Sonrası

  15. Z Kavgası • İki temel bileşenin z arabelleğinde aynı değere sahip olması durumunda oluşan görüntü bozukluğuna Z kavgası denir. • İki yüzeyden rastgele biri seçilerek diğer yüzeyin üzerinde görüntülenir ancak o piksel için z değeri iki yüzey arasında sürekli gidip gelerek farklı renklerin çekişmesi görüntüsüne neden olur. • Bu davranış deterministiktir, yani aynı kamera konumu sürekli aynı kavga görüntüsünü verecektir.

  16. Z Kavgası • http://www.youtube.com/watch?v=UVGdOFVbvBo Orijinden z ekseninde aşağı bakan göz Kırmızıdan sonra (daha önceden) çizilmiş mavi kırmızının önünde1 Kırmızı mavinin önünde Görüntünün x ekseni (her sütun bir pikseldir) Buradaki kırmızı ve mavi çizgiler, şekildeki çokgenlerin çakışan bölgelerini göstermektedir. z-değerleri 1glDepthFunc(GL_LEQUAL) fonksiyonu derinlik modu ile kullanıldığında, yeni bir parçanın z-değeriz-arabelleğindeki değer ise oradaki parçanın üzerine çizilecektir.

  17. Işın Gönderme (Ray Casting) • Bakış noktasından her piksele ışınlar gönderilerek en öndeki yüzey bulunur. • Derinlik arabelleği algoritmasının bir çeşidi gibidir, burada yüzeyler yerine pikseller peş peşe ele alınır.

  18. A – Arabelleği Yöntemi • Derinlik arabelleği yönteminin, arabellekteki her konum bilgisinin yüzeylerin bir bağlı listesine referans verecek şekilde genişlemiş halidir. • Daha fazla bellek gerektirir. • Lakin değişik yüzey renklerini doğru bir şekilde karıştırabilir (composition) ve transparan yüzeyleri belirtebiliriz. • A-arabelleğindeki her konumun derinlik bilgisi ve yüzey veri bilgisi olmak üzere iki alanı vardır. • Yüzey veri bilgisi yüzey verisi veya o piksel pozisyonuna katkıda bulunan yüzeylerin bağlı listesini gösteren bir gösterge (pointer) olabilir.

  19. Nesne Uzayı Algoritmaları • Şekillerin hangi kısımlarının görüntüleneceğini 3B koordinatlar türünden belirleyen algoritmalardır. • Bu algoritmalar nesnelerin bir görüş noktasına (viewpoint) göre 3B konum ve boyutlarının (dimension) mukayesesine dayanır. • n sayıdaki nesne için n * n kez karşılaştırma işlemi gerektirebilir. • Az sayıdaki nesneler için etkilidir ancak kodlanması uğraştırıcı olabilir.

  20. Ressamın Algoritması • Derinlik sıralaması yapan nesne uzayındaki bir yöntemdir. • Uzaktaki nesneler yakındaki nesnelerden önce çizdirilir. • Çakışma durumundaki her nesnenin pikselleri önceki nesnelerin üzerine çizdirilir. (ressamın boyaması gibi)

  21. Ressamın Algoritması • İlk olarak 1967 yılında General Electric firmasının geliştirdiği uçuş simülatöründe kullanılmıştır. http://www.youtube.com/watch?v=vajvwNctrb8

  22. Ressamın Algoritması • Öncelikle bütün çokgenler z eksenindeki uzaklıklarına göre sıralanır. • Sıralamadaki belirsizlikler çözülür. • Çokgenler arkadan öne doğru sırayla çizdirilir. • Çokgenlerin birbirlerinin üstünde olma durumunda belirsizlik çözümü karmaşıklaşmaktadır. • Bu yüzden bu algoritma basit haliyle yeterli olamamaktadır.

  23. Örnek • Bir dikdörtgenin başka bir dikdörtgenin hem üstünde hem de altında olması durumunda, bu algoritmanın basit hali yeterli olmaz.

  24. Newell’ınAlgoritması • Martin Newell, DickNewellve TomSancha tarafından 1972’ de ressamın algoritması ile çözülemeyen durumlar için önerilmiştir. • z eksenleri çakışan bütün çokgenler birbirleri arasında test edilmelidir. • En uzaktaki çokgen (örneğin P) alınır ve kendisinin z uzantısı ile çakışan diğer çokgenler karşılaştırılır. • Sırayla 5 karşılaştırma yapılır, eğer herhangi birinin sonucu P lehine ise P, diğer çokgenin önünde yazılır. Eğer en az bir karşılaştırma diğer çokgenin lehine ise P çizdirilir ve ondan bir önce gelen çokgen yeni P olur.

  25. Karşılaştırmalar • P ve diğer çokgenin x uzantıları çakışmıyor mu? • P ve diğer çokgenin y uzantıları çakışmıyor mu? • P’ nin tamamı, görüş noktasına göre diğer çokgenin bulunduğu düzlemin diğer tarafında kalıyor mu? • Diğer çokgenin tamamı P’ nin düzleminin görüş noktasına göre önünde kalıyor mu? • P ve diğer çokgenin (x,y) düzlemine izdüşümleri çakışmıyor mu? • Eğer bütün bu testler başarısız ise P ve diğer çokgenin yer değiştirdiği durum için 3 ve 4. testler tekrarlanır. • Testler ikinci kez de başarısız olursa yüzeyler ikiye bölünür ve algoritma 4 yeni yüzey için uygulanır.

  26. Örnek • Şekildeki durum için karşılaştırmalar yapıldığında çokgenlerin sırayla Q2, P1, P2, Q1 kısımları çizdirilir. -z P1 Q2 Q1 P2 x

  27. Sonuç • Aşağıdaki sayfada algoritmaların genel bir karşılaştırması yapılmıştır. http://www.youtube.com/watch?v=kPxfIXaKKUI • Hesapsal geometride karmaşık geometriye sahip nesnelerin görüntülenmesi için daha çeşitli algoritmalar öne sürülmektedir.

More Related