Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

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

Benzer bir sunumlar


... konulu sunumlar: "2B Görüntüleme Işın İzleme Kırpma"— Sunum transkripti:

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.

4 Xiaolin Wu’ nun Algoritması
Bresenham’ ın algoritması çok hızlı çalışmakta lakin anti aliasing yapmamaktadır. Xiaolin Wu, 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.

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. E

8 Bazı Örnekler

9 Bazı Örnekler Whitted, 1980

10 Bazı Örnekler

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)
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 outcode değ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 OC0 ve 0C1 ≠ 0 ise bariz olarak reddedilir. (yani “dışarıda” olan ortak bitleri varsa) Kırpma Dikdörtgeni

14 Cohen-Sutherland Algoritması (2B)
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. Kırpma Dikdörtgeni D C B A E F G H I

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

16 Cohen-Sutherland Algoritması (3B)
Arka düzlem (önünde) (arkasında) Ön düzlem (önünde) (arkasında) Alt düzlem (üstünde) (altında) Sol düzlem (solunda) (sağında) Üst düzlem (üstünde) (altında) Sağ düzlem (solunda) (sağı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 OC0 ve 0C1 ≠ 0 ise bariz olarak reddedilir. (yani “dışarıda” olan ortak bitleri varsa)

17 Avantaj ve Dezavantajları
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.


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

Benzer bir sunumlar


Google Reklamları