Scanline oluşturma - Scanline rendering

Tarama satırı algoritması örneği

Scanline oluşturma (Ayrıca tarama çizgisi oluşturma ve tarama çizgisi oluşturma) için bir algoritmadır görünür yüzey belirleme, içinde 3D bilgisayar grafikleri, bu bir satır yerine satır bazında çalışır çokgen çokgen veya piksel piksel bazında. Oluşturulacak tüm çokgenler önce ilk göründükleri üst y koordinatına göre sıralanır, sonra her satıra veya tarama çizgisi Görüntünün% 'si, sıralanan listenin önündeki çokgenlerle bir tarama çizgisinin kesişimi kullanılarak hesaplanırken, sıralanan liste, etkin tarama çizgisi resimde aşağı ilerlerken artık görünmeyen çokgenleri atacak şekilde güncellenir.

Bu yöntemin temel avantajı, köşeler tarama düzleminin normali boyunca kenarlar arasındaki karşılaştırma sayısını azaltır. Diğer bir avantaj, tüm köşelerin koordinatlarını ana bellekten çalışma belleğine çevirmenin gerekli olmamasıdır - yalnızca geçerli tarama çizgisiyle kesişen kenarları tanımlayan köşelerin aktif bellekte olması gerekir ve her bir tepe noktası yalnızca bir kez okunur. Ana bellek, merkezi işlem birimi ile ana bellek arasındaki bağlantıya kıyasla genellikle çok yavaştır. ön bellek ve böylece ana bellekteki köşelere yeniden erişimin önlenmesi önemli bir hızlanma sağlayabilir.

Bu tür bir algoritma, diğer birçok grafik tekniğiyle kolayca entegre edilebilir. Phong yansıma modeli ya da Z tampon algoritması.

Algoritma

Genel yöntem, her tarama çizgisi için bir tane olmak üzere, öngörülen çokgenlerin kenarlarının kovalara yerleştirilmesiyle başlar; rasterleştirici, etkin bir kenar tablosu tutar (AET). Girişler sıralama bağlarını, X koordinatlarını, degradeleri ve bağladıkları çokgenlere referansları korur. Sonraki tarama çizgisini rasterleştirmek için artık ilgili olmayan kenarlar kaldırılır; mevcut tarama çizgilerinin Y-kovasından yeni kenarlar eklenir, X koordinatına göre sıralanmış olarak eklenir. Etkin kenar tablosu girişlerinde X ve diğer parametre bilgileri artırılır.Aktif kenar tablosu girişleri, X-sıralı bir listede şu şekilde tutulur: kabarcık sıralama, 2 kenar kesiştiğinde bir değişiklik gerçekleştirir. Kenarları güncelledikten sonra, aktif kenar tablosu, yalnızca görünür aralıkları yaymak, Z-sıralı etkin Yayılma tablosunu sürdürmek, kenarlar çaprazlandığında yüzeyleri eklemek ve silmek için X sırasına göre çaprazlanır.[kaynak belirtilmeli ]

Varyantlar

Bu ve arasında bir melez Z tamponlama etkin kenar tablosu sıralamayı ortadan kaldırır ve bunun yerine, her seferinde bir tarama çizgisini bir Z-arabelleğinde rasterleştirir, bir tarama çizgisinden diğerine aktif çokgen aralıklarını korur.

Başka bir varyantta, bir kimlik tamponu bir ara adımda pikselleştirilerek ertelenmiş gölgeleme ortaya çıkan görünür piksellerin oranı.

Tarih

Tarama çizgisi oluşturma tekniğinin ilk yayını muhtemelen 1967'de Wylie, Romney, Evans ve Erdahl tarafından yapılmıştır.[1]

Tarama çizgisi oluşturma yönteminin diğer erken gelişmeleri, 1969'da Bouknight tarafından yapılmıştır.[2] ve 1972'de Newell, Newell ve Sancha.[3] Bu yöntemler üzerine yapılan ilk çalışmaların çoğu, Ivan Sutherland 'ın grafik grubu Utah Üniversitesi ve Evans ve Sutherland şirket Tuz Gölü şehri.

Gerçek zamanlı oluşturmada kullanın

Evans & Sutherland ESIG görüntü üreteçleri (IG'ler) serisi, donanım tekniğini 'anında' kullandı ve her seferinde bir tarama satırı olmadan görüntü oluşturmak için framebuffer daha sonra maliyetli bellek ihtiyacını ortadan kaldırır. Daha sonraki varyantlar hibrit bir yaklaşım kullandı.

Nintendo DS 3B sahneleri bu şekilde oluşturmak için en son donanımdır ve rasterleştirilmiş görüntüleri VRAM'de önbelleğe alma seçeneği vardır.

sprite donanımı 1980'lerde yaygın olan oyun makineleri, tarama çizgisinin basit bir 2D biçimi olarak düşünülebilir.

Teknik, ortamların yazılımla oluşturulması için ilk Quake motorunda kullanıldı (ancak hareketli nesneler Z tamponlu üstte). Statik sahne kullanıldı BSP öncelik için türetilmiş sıralama. Daha iyi oldu Z-arabelleği /ressamın Maliyetli piksel işlemleriyle yüksek derinlikli karmaşıklığa sahip sahneleri işlemek için yazım algoritmaları (örneğin, perspektif açısından doğru doku eşleme donanım yardımı olmadan). Bu kullanım, artık PC'lerde yaygın olan Z-arabellek tabanlı GPU'ların yaygın olarak benimsenmesinden önce geldi.

Sony, yazılım tarama çizgisi oluşturucularını bir saniyede denedi Hücre işlemcinin geliştirilmesi sırasında PlayStation 3, geleneksel bir CPU / GPU düzenlemesine karar vermeden önce.

Benzer teknikler

Benzer bir ilke, kiremitli render (en ünlüsü PowerVR 3D çip); diğer bir deyişle, ilkel öğeler ekran alanına ayrılır, ardından hızlı yonga üstü bellekte, her seferinde bir döşeme olarak oluşturulur. Dreamcast doğrudan tarama için tek seferde bir sıra döşemeyi rasterleştirmek için bir mod sağladı ve bir şekilde donanım tarama çizgisi oluşturma ruhu dahilinde tam bir çerçeve arabelleği ihtiyacını ortadan kaldırdı.

Bazı yazılım tarayıcıları, sıralı, kırpılmış aralıkların bir listesinin tarama çizgisi kovalarında depolandığı 'aralık arabelleği' (veya 'kapsam arabelleği') kullanır. Son aşamada yalnızca görünür pikselleri rasterleştirmeden önce, bu veri yapısına temel öğeler art arda eklenecektir.

Z tampon algoritması ile karşılaştırma

Tarama çizgisi oluşturmanın temel avantajı Z tamponlama görünür piksellerin işlenme sayısının mutlak minimumda tutulmasıdır; bu, hiçbir şeffaflık efekti kullanılmadığında her zaman bir keredir - yüksek çözünürlük veya pahalı gölgeleme hesaplamaları durumunda bir avantajdır.

Modern Z tampon sistemlerinde, kaba önden arkaya sıralama ('ters ressamlar algoritmasına' yaklaşarak), erken Z-reddi (hiyerarşik Z ile bağlantılı olarak) ve daha az yaygın olan ertelenmiş oluşturma teknikleriyle benzer faydalar elde edilebilir. programlanabilir GPU'lar.

Tarama üzerinde çalışan Scanline tekniklerinin, aşırı yüklenmenin düzgün bir şekilde ele alınmaması gibi bir dezavantajı vardır.

İlkellerin sayısı arttıkça tekniğin ölçeklendirildiği düşünülmez. Bunun nedeni, oluşturma sırasında gereken ara veri yapılarının boyutudur - bu, karmaşık bir sahne için bir Z-arabelleğinin boyutunu aşabilir.

Sonuç olarak, çağdaş etkileşimli grafik uygulamalarında, Z-arabelleği her yerde bulunur hale geldi. Z-arabelleği, modern donanıma uygun bir şekilde, daha büyük hacimlerde ilkellerin paralel olarak doğrusal olarak aktarılmasına olanak tanır. Dönüştürülmüş koordinatlar, nitelik gradyanları vb. Grafik çipinden asla ayrılmamalıdır; yalnızca görünen pikseller ve derinlik değerleri saklanır.

Ayrıca bakınız

Referanslar

  1. ^ Wylie, C, Romney, G W, Evans, D C ve Erdahl, A, "Yarım Ton Perspektif Çizimleri Bilgisayarla" Proc. AFIPS FJCC 1967, Cilt. 31, 49
  2. ^ Bouknight W.J "Yarı Tonlu Bilgisayar Grafikleri Temsilinin Oluşturulması İçin Geliştirilmiş Bir Prosedür, "UI, Koordineli Bilim Laboratuvarı, Eylül 1969
  3. ^ Newell, M E, Newell R. G ve Sancha, T.L, "Gölgeli Resim Problemine Yeni Bir Yaklaşım", Proc ACM National Conf. 1972

Dış bağlantılar