Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

2B Görüntüleme Işın İzleme Kırpma İnönü Üniversitesi Bilgisayar Mühendisliği Bölümü.

Benzer bir sunumlar


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

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. • https://github.com/sachinruk/xiaolinwu/blob/master/xiaolinwu.m

5 Ray Tracing

6 • «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 • 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 o Cohen – Sutherland algoritması o Liang – Barsky algoritması • Çokgen kırpma o Sutherland – Hodgman algoritması

12 2B’ de Doğru Kırpma • Uç noktaları kırpma o 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 o Eğer ikisi de içeride ise, olduğu gibi kabul edilir. (işleme gerek yoktur.) o Eğer bir uç nokta içeride, diğeri de dışarıdaysa kırpmak gerekir. o 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 o Sadece sonsuz uzunluktaki doğrularda işe yarar. o 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 o İlk bit: Üst kenarın üzerinde o İkinci bit: Alt kenarın altında o Üçüncü bit: Sağ kenarın sağında o Dördüncü bit: Sol kenarın solunda • Her doğrunun iki köşesi için outcode değerleri hesaplanır. (OC 0 ve 0C 1 ) • OC 0 = 0 (yani 0000) ve 0C 1 = 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 OC 0 ve 0C 1 ≠ 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. o Doğruyu kesmek için bir kırpma kenarı kullanılır. o Ü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. o Kontrol için sırasıyla üst, alt, sağ ve sol kenara bakılır. o Kesişim noktası hesaplanır. • Kırpma kenarı x ya da y’ de sabitlenir. • Doğru denkleminde yerine yazılabilir. o 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); 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 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 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) • 2 boyuttakine çok benzer. • Hacmi 27 alana böler. (Rubik küpü gibi) • Outcode 6 bittir ve 6 sınır testini kaydeder. o İlk bit: arka düzlemin arkasında o İkinci bit: ön düzlemin önünde o Üçüncü bit: üst düzlemin üzerinde o Dördüncü bit: alt düzlemin altında o Beşinci bit: sağ düzlemin sağında o Altıncı bit: sol düzlemin solunda • Yine OC 0 = 0 ve 0C 1 = 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 OC 0 ve 0C 1 ≠ 0 ise bariz olarak reddedilir. (yani “dışarıda” olan ortak bitleri varsa) 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)

17 Avantaj ve Dezavantajları • Avantajları o Eğer doğrudan kabul/ret ihtimali yüksekse çok hızlı bir algoritmadır. o Bu durum kırpma dikdörtgeninin çok büyük veya küçük olduğu durumlarda mümkündür. • Dezavantajları o Bariz olmayan doğruları kırpmak vakit alabilir. o 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. o V1 dışarıda, V2 içerideyse: V1’ ve V2 alınır. o V2 dışarıda, V1 içerideyse: V1 ve V2’ alınır. o V1 ve V2 içerideyse: V1 ve V2 alınır. o 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 İnönü Üniversitesi Bilgisayar Mühendisliği Bölümü." indir ppt

Benzer bir sunumlar


Google Reklamları