1 / 22

2B Görüntüleme Işın İzleme Kırpma

2B Görüntüleme Işın İzleme Kırpma. İnönü Üniversitesi Bilgisayar Mühendisliği Bölümü. Görünümdeki Eksiklikler. Değinilen bütün rasterization algoritmalarında, piksellerin ‘’ya hep, ya hiç’’ mantığıyla çizdirilmesi söz konusudur.

ada
Download Presentation

2B Görüntüleme Işın İzleme Kırpma

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. 2B Görüntüleme Işın İzleme Kırpma İnönü Üniversitesi Bilgisayar Mühendisliği Bölümü

  2. Görünümdeki Eksiklikler • Değinilen bütün rasterization algoritmalarında, piksellerin ‘’ya hep, ya hiç’’ mantığıyla çizdirilmesi söz konusudur. • Dolayısıyla görünümde kırıklıklar (jaggies) oluşur. Bu duruma aliasing sorunu denmektedir.

  3. Anti Aliasing • Aliasing problemini çözme işlemleridir. • Görüntünün farklı tonda piksellere sahip bölgelerinin kenarlarında ara tonlara sahip pikseller oluşturarak yapılabilmektedir. • Bu sayede nesnelerin detaylarındaki bozukluklar yumuşatılarak daha düzgün görüntü elde edilmektedir. • Günümüzün grafik işlemcileri (GPU) yüksek oranda anti-aliasing yapılabilmesine imkan vermektedir. • http://www.tweakguides.com/images/Antialiasing.gif

  4. XiaolinWu’ nun Algoritması • Bresenham’ ın algoritması çok hızlı çalışmakta lakin anti aliasing yapmamaktadır. • XiaolinWu, 1991’ de anti aliasing ile doğru çizme algoritması geliştirmiştir. • Her bir pikseli ara tonları ile birlikte bir dikdörtgen şeklinde çizdirir. Ara renklerin tonu, doğrudan uzaklaştıkça zayıflar. • https://github.com/sachinruk/xiaolinwu/blob/master/xiaolinwu.m

  5. Ray Tracing

  6. Ray Tracing • «Işın izleme» olarak ifade edilir. • Çokgenlerin fizik tabanlı bir modelle render edilmesidir. • Fotogerçekçi görüntü elde edilmesini sağlar. • Çok sayıda hesaplama içerdiğinden, optimizasyona ihtiyaç duyar.

  7. Ray Tracer • Kameradan (göz) sahnedeki nesnelerin her bir parçasına (piksel) giden ışınların geri eşleştirilmesi işini yapan programcıktır. • Her piksel ya sahnedeki bir nesne ile ışın kesişimini gösterir, ya da kesişim olmaz. • Bir ışından yola çıkarak milyonlarca ışın aynı mantıkla takip edilir. • Rasterization köşeler üzerinden yapılmakta iken, ray tracing 2B pikseller üzerinden yapılır ve 3B uzaydaki kesişimleri hesaplanır.

  8. Bazı Örnekler

  9. Bazı Örnekler • Whitted, 1980

  10. Bazı Örnekler • http://www.youtube.com/watch?v=b_UqzLBFz4Y

  11. Kırpma (Clipping) • Nesnelerin görüntüleme alanına sığmayan parçalarının çıkarılması işlemidir. • Performans artışı sağlar. • Doğru kırpma • Cohen – Sutherland algoritması • Liang – Barsky algoritması • Çokgen kırpma • Sutherland – Hodgman algoritması

  12. 2B’ de Doğru Kırpma • Uç noktaları kırpma • Eğer xmin < x < xmax ve ymin < y < ymax ise, nokta kırpma dikdörtgeninin içindedir. • Doğru parçaları için uç nokta analizi • Eğer ikisi de içeride ise, olduğu gibi kabul edilir. (işleme gerek yoktur.) • Eğer bir uç nokta içeride, diğeri de dışarıdaysa kırpmak gerekir. • Eğer ikisi de dışarıdaysa, bir şey söylenemez. • Kaba kuvvetle kırpma: y = mx + b ‘yi kullanarak doğru ve 4 kırpma kenarı için aynı anda denklemlerini çözmek • Sadece sonsuz uzunluktaki doğrularda işe yarar. • Dikey doğrularda etkisizdir.

  13. Cohen-Sutherland Algoritması (2B) Kırpma Dikdörtgeni • Alan 9 bölgeye bölünür. • Bir kenar ve köşe arasındaki 4 karşılaştırmanın işaret bitini hesaplanır. • 4 sınır testinin sonuçlarını 4 bitlik “outcode” ile ifade edersek • İlk bit: Üst kenarın üzerinde • İkinci bit: Alt kenarın altında • Üçüncü bit: Sağ kenarın sağında • Dördüncü bit: Sol kenarın solunda • Her doğrunun iki köşesi için outcodedeğerleri hesaplanır. (OC0 ve 0C1) • OC0 = 0 (yani 0000) ve 0C1 = 0 olan doğrular, olduğu gibi kabul edilir. • Tamamen bir kenarın dışındaki yarı düzlemin içinde yer alan doğrular eğer OC0ve 0C1 ≠ 0 ise bariz olarak reddedilir. (yani “dışarıda” olan ortak bitleri varsa)

  14. Cohen-Sutherland Algoritması (2B) D Kırpma Dikdörtgeni C B I A H G F E • Eğer olduğu gibi kabul ya da reddedilemiyorsa, böl ve yönet stratejisi uygulanır. • Doğru parçası, iki parçaya ayrılır; daha sonra bir yada ikisi birden olduğu gibi ret/kabul edilir. • Doğruyu kesmek için bir kırpma kenarı kullanılır. • Üzerinden geçilen kenarları seçmek için outcode kullanılır. • Verilen bir kırpma kenarı için, eğer bir doğrunun iki outcode değeri onun bitlerinden farklı ise doğrunun kenarın her iki tarafında da birer köşesi olacağından kenarın üzerinden geçer. • Kontrol için sırasıyla üst, alt, sağ ve sol kenara bakılır. • Kesişim noktası hesaplanır. • Kırpma kenarı x ya da y’ de sabitlenir. • Doğru denkleminde yerine yazılabilir. • Kısaltılmış doğru için iterasyonlar yapılır.

  15. Cohen-Sutherland Algoritması (2B) OutCodeHesapla(x0,y0,outcode0); OutCodeHesapla(x1,y1,outcode1); tekrarla olduğu gibi kabul/ret için kontrol et kırpma dikdörtgeninin dışındaki noktayı seç eğer ÜST ise x = x0 + (x1 – x0) * (ymax – y0) / (y1 – y0); y = ymax; ya daeğerALT ise x = x0 + (x1 – x0) * (ymin – y0) / (y1 – y0); y = ymin; ya daeğer SAĞise y = y0 + (y1 – y0) * (xmax – x0) / (x1 – x0); x = xmax; ya daeğerSOLise y = y0 + (y1 – y0) * (xmin – x0) / (x1 – x0); x = xmin; eğer(x0, y0 dıştaki nokta) ise x0 = x; y0 = y; ComputeOutCode(x0, y0, outcode0) ya da x1 = x; y1 = y; ComputeOutCode(x1, y1, outcode1) bitene kadar

  16. Cohen-Sutherland Algoritması (3B) Arka düzlem 000000 (önünde) 100000 (arkasında) Ön düzlem 010000 (önünde) 000000 (arkasında) • 2 boyuttakine çok benzer. • Hacmi 27 alana böler. (Rubik küpü gibi) • Outcode 6 bittir ve 6 sınır testini kaydeder. • İlk bit: arka düzlemin arkasında • İkinci bit: ön düzlemin önünde • Üçüncü bit: üst düzlemin üzerinde • Dördüncü bit: alt düzlemin altında • Beşinci bit: sağ düzlemin sağında • Altıncı bit: sol düzlemin solunda • Yine OC0 = 0 ve 0C1 = 0 olan doğrular, olduğu gibi kabul edilir. • Tamamen bir düzlemin dışındaki bir hacmin içinde yer alan doğrular eğer OC0ve 0C1 ≠ 0 ise bariz olarak reddedilir. (yani “dışarıda” olan ortak bitleri varsa) Üst düzlem 001000 (üstünde) 000000 (altında) Alt düzlem 000000(üstünde) 000100 (altında) Sağ düzlem 000000 (solunda) 000010 (sağında) Sol düzlem 000001 (solunda) 000000 (sağında)

  17. Avantaj ve Dezavantajları • Avantajları • Eğer doğrudan kabul/ret ihtimali yüksekse çok hızlı bir algoritmadır. • Bu durum kırpma dikdörtgeninin çok büyük veya küçük olduğu durumlarda mümkündür. • Dezavantajları • Bariz olmayan doğruları kırpmak vakit alabilir. • Test etme ve kırpma sabit bir düzende olduğundan algoritma bazen gereksiz kırpma yapabilir.

  18. Sutherland-Hodgman Algoritması • Çokgen kırpmada, kırpma penceresi içerisinde kalan köşelerin bulunmasında kullanılır. • Çokgenin her kenarı pencere sınırlarına karşı kontrol edilir. Geçişlere bağlı olarak köşeler değiştirilir. Yeni oluşan kenarlar kırpma sınırlarına aktarılır.

  19. Sutherland-Hodgman Algoritması • Kenar – sınır karşılaştırmasında 4 durum söz konusudur. • V1 dışarıda, V2 içerideyse: V1’ ve V2 alınır. • V2 dışarıda, V1 içerideyse: V1 ve V2’ alınır. • V1 ve V2 içerideyse: V1 ve V2 alınır. • V1 ve V2 dışarıdaysa hiçbiri alınmaz.

  20. Sutherland-Hodgman Algoritması • Çok sayıda özel durumda kırpma zorlaşmaktadır. • Böl ve yönet stratejisi ile çözülebilmektedir. • Basit ve aynı türden alt problemlerin çözümleri birleştirilerek kırpma yapılabilmektedir.

  21. Böl, Yönet ve Birleştir Örneği

  22. Diğer Çokgen Kırpma Algoritmaları • Weiler – Atherton: Çokgenlerin, bir kırpma çokgeni ile kırpılmasını sağlar. Çokgenlerin kenarlarının kendileriyle kesişmemesi gerekir. • Vatti: Rastgele çokgenlerin rastgele kırpma çokgenleri ile kırpılmasını sağlar. Karışık çokgenler ve içinde delikler olan çokgenlerde de kullanılabilir. Genelde 2B için geçerlidir.

More Related