Ray dökümü - Ray casting

Gölgeli idealleştirilmiş evrensel mafsalın ışın döküm görüntüsü

Işın dökümü , 3-D CAD/CAM katı modelleme ve görüntü işleme için metodolojik temeldir. Esasen, sanal ışık ışınlarının bir kameranın odak noktasından kamera sensöründeki her bir piksel boyunca yollarında "döküldüğü" veya "izlendiği" bilgisayar grafikleri için ışın izleme ile aynıdır . 3 boyutlu sahne. "Ray Döküm" terimi, Scott Roth tarafından 1978-1980 yılları arasında General Motors Araştırma Laboratuarlarında iken tanıtıldı. "Katı Modelleme için Işın Dökümü" adlı makalesi, bloklar ve silindirler gibi ilkel katıları küme operatörleri birliği (+), kesişim (&) ve fark (-) kullanarak birleştirerek modellenmiş katı nesneleri açıklar. Bu ikili operatörleri katı modelleme için kullanmanın genel fikri, büyük ölçüde Voelcker ve Requicha'nın Rochester Üniversitesi'ndeki geometrik modelleme grubuna bağlıdır. Katı modelleme yöntemlerine genel bir bakış için Katı modellemeye bakın . Sağdaki bu şekil, 1979 dolaylarında Roth'un ışın döküm sistemini kullanan ikili bir ağaçtaki silindirlerden ve bloklardan modellenen bir U-Mafsalını göstermektedir.

Işın dökümünden (ve ışın izlemeden) önce, bilgisayar grafik algoritmaları yüzeyleri veya kenarları (örneğin çizgiler) 3 boyutlu dünyadan görünürlük mantığının uygulanması gereken görüntü düzlemine yansıtıyordu. Dünyadan görüntüye düzlem projeksiyonu, 3B homojen bir koordinat sistemi dönüşümüdür (aka: 3B projeksiyon , afin dönüşüm veya projektif dönüşüm ( Homografi )). Gizli yüzey/kenar kaldırma ile bir görüntüyü bu şekilde işlemek zordur. Ayrıca, kavisli yüzeylerin silüetlerinin açık bir şekilde çözülmesi gerekir, oysa bu ışın dökümünün örtük bir yan ürünü olduğundan, görünüm değiştiğinde bunun için açıkça çözmeye gerek yoktur.

Işın dökümü, bir çizgi bir çizgiye dönüştüğü için 3-D nesnelerin ve sahnelerin görüntü oluşturmasını büyük ölçüde basitleştirdi. Böylece 3 boyutlu sahnedeki eğri kenarları ve yüzeyleri 2 boyutlu görüntü düzlemine yansıtmak yerine dönüştürülmüş çizgiler (ışınlar) sahnedeki nesnelerle kesişir . Homojen bir koordinat dönüşümü 4x4 matris ile temsil edilir. Matematiksel teknik, bilgisayar grafikleri ve geometrik modelleme için ortaktır. Bir dönüşüm, üç eksen etrafında döndürmeleri, eksenler boyunca bağımsız ölçeklemeyi, 3 boyutlu ötelemeleri ve hatta eğriltmeyi içerir. Dönüşümler, matris aritmetiği yoluyla kolayca birleştirilir. 4x4 matrisle kullanım için, bir nokta [X, Y, Z, 1] ile temsil edilir ve bir yön vektörü [D x , D y , D z , 0] ile temsil edilir . (Dördüncü terim öteleme içindir ve yön vektörleri için geçerli değildir.)

Matematiği basitleştirirken, ışın döküm algoritması çok bilgisayar işleme yoğundur. Pixar , animasyonlarını çekirdek teknik olarak ışın izleme [diğer adıyla "ışın dökümü"] kullanarak yapmak için büyük işleme çiftliklerine, 1000'lerce CPU'ya sahip binalara sahiptir.

konsept

Işın dökümü, ışın izlemenin geometrik algoritmasını kullanan birçok bilgisayar grafiği işleme algoritmasının en temelidir . Işın izleme tabanlı işleme algoritmaları, üç boyutlu sahneleri iki boyutlu görüntülere dönüştürmek için görüntü sırasına göre çalışır . Geometrik ışınlar , ışın yönünden gözlemciye doğru hareket eden ışığı ( parlaklık ) örneklemek için gözlemcinin gözünden izlenir . Işın dökümünün hızı ve basitliği, ışının çarptığı noktadaki parlaklık olayını örnekleyen ek ışınları tekrar tekrar izlemeden ışığın rengini hesaplamaktan gelir. Bu, yansımaları , kırılmaları veya doğal gölge düşüşlerini doğru bir şekilde oluşturma olasılığını ortadan kaldırır ; ancak doku haritalarının veya diğer yöntemlerin yaratıcı kullanımıyla bu öğelerin tümü bir dereceye kadar taklit edilebilir . Yüksek hesaplama hızı, erken gerçek zamanlı 3D video oyunlarında ışın dökümünü kullanışlı bir işleme yöntemi haline getirdi .

Işın dökümünün arkasındaki fikir, her piksel için bir tane olmak üzere gözden gelen ışınları izlemek ve bu ışının yolunu kapatan en yakın nesneyi bulmaktır - bir görüntüyü ekrandaki her karenin bir piksel olduğu bir ekran kapısı olarak düşünün. Bu, gözün o pikselden gördüğü nesnedir. Bu algoritma, malzeme özelliklerini ve sahnedeki ışıkların etkisini kullanarak bu nesnenin gölgelenmesini belirleyebilir. Basitleştirici varsayım, bir yüzey bir ışığa bakarsa, ışığın o yüzeye ulaşacağı ve engellenmeyeceği veya gölgede olmayacağı varsayımı yapılır. Yüzeyin gölgelenmesi, geleneksel 3B bilgisayar grafik gölgelendirme modelleri kullanılarak hesaplanır. Eski tarama çizgisi algoritmalarına göre sunulan önemli bir avantaj ışın dökümü , koniler ve küreler gibi düzlemsel olmayan yüzeyler ve katılarla kolayca başa çıkma yeteneğiydi . Matematiksel bir yüzey bir ışın tarafından kesilebiliyorsa, ışın dökümü kullanılarak oluşturulabilir. Ayrıntılı nesneler katı modelleme teknikleri kullanılarak oluşturulabilir ve kolayca oluşturulabilir.

"Katıları Modellemek için Işın Dökümü" başlıklı makalenin özetinden: Modellenen kompozit katıları görselleştirmek ve analiz etmek için, sanal ışık ışınları problar olarak dökülür. Basitliği sayesinde ışın dökümü güvenilir ve genişletilebilirdir. En zor matematik problemi, çizgi-yüzey kesişim noktalarını bulmaktır. Böylece, düzlemler, kuadrikler, toriler ve muhtemelen parametrik yüzey parçaları gibi yüzeyler ilkel katıları bağlayabilir. Işın dökümünün yeterliliği ve verimliliği burada ele alınan konulardır. Etkileşimli modelleme için hızlı resim oluşturma yeteneği en büyük zorluktur.

Kamera modelleri

Işık ışınları ve kamera geometrisi, buradaki tüm geometrik akıl yürütmenin temelini oluşturur. Bu şekil, görüntü işlemede perspektif etkisi için bir iğne deliği kamera modelini ve kütle analizi için paralel bir kamera modelini göstermektedir. Basit iğne deliği kamera modeli, bir odak noktasından (veya göz noktasından) ve bir kare piksel dizisinden (veya ekrandan) oluşur. Düz ışık ışınları, odak noktasını piksel başına bir ışın olacak şekilde sahneye bağlamak için piksel dizisinden geçer. Resimleri gölgelemek için ışınların yoğunlukları ölçülür ve piksel olarak saklanır. Bir pikselin değerinden sorumlu olan yansıtıcı yüzey, pikselin ışınıyla kesişir.

Odak uzaklığı, odak noktası ile ekran arasındaki mesafe sonsuz olduğunda, tüm ışık ışınları birbirine paralel, ekrana dik olduğu için görüntüye “paralel” denir. Perspektif görünüm resim yapmak için doğal olsa da, bazı uygulamalar uzayda eşit olarak dağılabilen ışınlara ihtiyaç duyar.

Modelleme kolaylığı için, kamera için tipik bir standart koordinat sistemi, XY düzleminde ekrana, +Z yarım uzayında sahneye ve -Z ekseninde odak noktasına sahiptir.

Z=0 düzleminde "ekran" ile kamera yerel koordinat sistemi

Işın, kamera modelinin 3 boyutlu uzayındaki düz bir çizgidir. En iyi bir nokta (X 0 , Y 0 , Z 0 ) ve bir yön vektörü (D x , D y , D z ) olarak parametreleştirilmiş biçimde bir yön vektörü olarak tanımlanır . Bu formda, hat üzerindeki noktalar tek bir parametre t üzerinden sıralanır ve erişilir. Her t değeri için, doğru üzerinde karşılık gelen bir nokta (X, Y, Z) tanımlanır:

   X = X0 + t · Dx
   Y = Y0 + t · Dy
   Z = Z0 + t · Dz

Vektör normalleştirilirse, t parametresi çizgi boyunca olan mesafedir. Vektör, aşağıdaki hesaplama ile kolayca normalleştirilebilir:

   Dist = √(Dx2 + Dy2 + Dz2)
   Dx = Dx / Dist
   Dy = Dy / Dist
   Dz = Dz / Dist

Her biri bir veya daha fazla yüzeyle sınırlanan nesnelerin geometrik tanımları verildiğinde, bir ışının ekrandaki tüm sınırlı yüzeylerle kesişiminin hesaplanmasının sonucu iki diziyle tanımlanır,

   Ray parameters:    t[1], t[2], ..., t[n]
   Surface pointers:  S[1], S[2], ..., S[n]

burada n, ışın yüzeyi kesişimlerinin sayısıdır. Işın parametrelerinin sıralı listesi t [i] giriş-çıkış noktalarını belirtir. Ray noktasında katı girer t [1] de çıkış t [2], bir katı girer t [3], vs. Noktası t [1] kamera ve en yakın olan t [n] en uzak olan. Işın parametreleriyle bağlantılı olarak, yüzey işaretçileri, kesişen yüzeyin bilgileri için benzersiz bir adres içerir. Yüzey, renk, aynasallık, kırılmalı/kırılmasız şeffaflık, yarı saydamlık vb. gibi çeşitli özelliklere sahip olabilir. Yüzeyle ilişkili katı, yoğunluk gibi kendi fiziksel özelliklerine sahip olabilir. Bu, örneğin, bir nesne farklı malzemelerin bir araya getirilmesinden oluştuğunda ve genel kütle merkezi ve atalet momentleri ilgi çekici olduğunda yararlı olabilir.

Bilgileri uygulama

Işın dökümü kullanan üç algoritma, çizgi çizimleri yapmak, gölgeli resimler yapmak ve hacimleri ve diğer fiziksel özellikleri hesaplamaktır. Bir kamera modeli verilen her algoritma, ekranda piksel başına bir ışın gönderir. Hesaplama hacmi için kullanılacak piksel ekranının çözünürlüğü, çözümün istenen doğruluğuna bağlıdır. Çizgi çizimleri ve resim gölgeleme için çözünürlük, görüntünün kalitesini belirler.

Döküm ışınları ile yapılmış örnek hat çizimleri. İkisi standart plan görünümleridir. Biri gizli kenarları kesikli çizgiler olarak gösterir.

HAT ÇİZİMLERİ . Bir katının görünür kenarlarını çizmek için, ekranda yukarıdan aşağıya, soldan sağa hareket eden piksel başına bir ışın oluşturun. Sıralanmış ışın-yüzey kesişimleri listesindeki ilk yüzey işaretçisi olan görünür yüzey S[1]'i belirlemek için her ışını değerlendirin. Piksel konumundaki (X, Y) görünür yüzey, pikseldeki (X-1, Y) görünen yüzeyden farklıysa, (X-½, Y) merkezli bir piksel uzunluğunda dikey bir çizgi görüntüleyin. Benzer şekilde, (X, Y) noktasındaki görünür yüzey, pikseldeki (X, Y-1) görünür yüzeyden farklıysa, (X, Y-½) merkezli bir piksel uzunluğunda yatay bir çizgi görüntüler. Ortaya çıkan çizim, rota çözünürlüklerinde pürüzlü görünen yalnızca yatay ve dikey kenarlardan oluşacaktır.

Roth'un ışın döküm sistemi, sağdaki katı nesnelerin görüntülerini oluşturdu. Optimizasyon için kutu muhafazaları, dinamik sınırlama ve tutarlılık kullanılmıştır. Her resim için ekran yaklaşık 100x100 (örneğin 10.000) ışın yoğunluğu ile örneklendi ve ikili aramalar yoluyla yeni kenarlar belirlendi. Daha sonra tüm kenarları, kenarların iki yanına bir piksellik artışlarla ek ışınlar dökerek takip etti. Her resim 780x780 çözünürlükte bir Tektronix tüpüne çizilmiştir.

GÖLGELİ RESİMLER . Gölgeli bir resim yapmak için, ekranda piksel başına tekrar bir ışın yayın. Ancak bu sefer, yüzeyin açıklamasına erişmek için her pikselde görünür yüzey işaretçisini S[1] kullanın. Buradan, görünür noktadaki t [1] yüzey normalini hesaplayın . Pikselin değeri, görüntülenebilir ışık yoğunluğu, yüzey normali ve ışık kaynağı-yüzey vektörü tarafından oluşturulan açının kosinüsü ile orantılıdır. Tüm pikselleri bu şekilde işlemek, sahnenin raster tipi bir resmini üretir.

BİLGİSAYAR HACİM VE ATALET Momentleri . Eğri yüzeylerle sınırlanan bir katının hacmi (ve benzer özellikleri), katıya bir dizi dikdörtgen paralelyüz ile yaklaşılarak “yaklaşık toplamlar” entegrasyon yöntemiyle kolayca hesaplanır. Bu, paralel bir görünümde katının “derinlemesine” bir resmini çekerek gerçekleştirilir. Işınları perdeden katıya dökmek, katıyı hacim öğelerine böler. Paralel yüzün iki boyutu sabittir ve ekrandaki ışınların 2 boyutlu aralığıyla tanımlanır. Üçüncü boyut, hesaplanan giriş-çıkış noktası tarafından tanımlanan değişkendir. Spesifik olarak, ekrandaki ışınlar arasındaki yatay ve dikey mesafeler S ise, o zaman her ışın tarafından “tespit edilen” hacim

   S × S ×  (t[2]-t[1]  +  t[4]-t[3]  +  ∙∙∙ + t[n]-t[n-1]) / L

burada L, yön vektörünün uzunluğu olarak tanımlanır. (Zaten normalleştirilmişse, bu 1'e eşittir.)

   L = √(Dx2 + Dy2 + Dz2)

Her ( t [ i ]- t [ i -1])/L katının içindeki bir ışın parçasının uzunluğudur.

Bu şekil, ışın dökümü kullanılarak modellenmiş bir katı için paralel boruları göstermektedir. Bu, paralel projeksiyonlu kamera modelinin bir kullanımıdır.

Paralel yüzler tarafından modellenen katı

In-Out ışın sınıflandırması

İkili katı yapıda Ray

Bu şekil, tek bir ışının değerlendirildiği + ve – kullanan bir kompozisyon ağacındaki ikili operatörlerin bir örneğini göstermektedir.

Işın döküm prosedürü katı bileşim ağacının tepesinden başlar, özyinelemeli olarak aşağıya iner, ışını ilkel katılara göre sınıflandırır ve ardından sol ve sağ alt ağaçların sınıflandırmalarını birleştirerek ağacı döndürür.

Bu şekil, üç ikili operatörün tümü için sol ve sağ sınıflandırmaların birleştirilmesini göstermektedir.

Üç ikili işlem: birleşim (+), kesişim (&) ve fark (-)

Gerçekçi gölgeli resimler

Işın dökümü, gölgeli resimler yapmak için doğal bir modelleme aracıdır. GM Araştırma Laboratuvarlarında Scott Roth ve Daniel Bass tarafından geliştirilen gri tonlamalı ışın döküm sistemi, 1979 civarında bir Ramtek renkli raster ekranında resimler üretti. Sistem, resimleri oluşturmak için kullanıcıya aşağıdaki kontrolleri sağladı:

   View
      • Viewing direction and position
      • Focal length: width-angle perspective to parallel
      • Zoom factor
   Illumination
      • Number of light sources
      • Locations and intensities of lights
      • Optionally shadow
      • Intensities of ambient light and background
   Surface Reflectance
      • % reflected diffusely
      • % reflected specularly
      • % transmitted
İki noktalı ışık kaynakları gölgeler üretir

Bu şekil, iki nokta ışık kaynağından gelen gölgelerin olduğu bir tablo sahnesini göstermektedir.

Tüm gerçekçi efektleri uygulayan gölgeleme algoritmaları, hesaplama açısından pahalıdır, ancak nispeten basittir. Örneğin, aşağıdaki şekil, tek bir ışık kaynağı için gönderilebilecek ek ışınları göstermektedir.

Efektler için ışınları takip edin

Oluşturulacak görüntüdeki tek bir piksel için, algoritma odak noktasından başlayarak bir ışın gönderir ve yarı saydam bir dikdörtgen ile parlak bir daireyi kestiğini belirler. Daha sonra, yansıtılmış yansımada neyin görülebildiğini belirlemek için, ışın-yüzey kesişim noktasında yüzey normalinin simetrik olarak zıt yönünde o noktadan başlayarak ek bir ışın dökülmelidir. Bu ışın, opak olan üçgeni kesiyor. Son olarak, her ışın yüzeyi kesişim noktası, gölgede olup olmadığını belirlemek için test edilir. "Gölge hissedici" ışını, başka herhangi bir yüzeyin bu yolu bloke edip etmediğini belirlemek için ışın yüzeyi kesişim noktasından ışık kaynağına dökülür.

Turner Whitted, ikincil ve ek ışınları “Yinelemeli Işın İzleme” olarak adlandırır. [Aynalardan oluşan bir odayı işlemek maliyetli olacaktır, bu nedenle yinelemelerin sayısını sınırlamak akıllıca olacaktır.] Görünür yüzey noktasından katının kırılma indisi tarafından belirlenen bir açıda ikincil bir ışın üreterek saydamlar için Whitted modelli kırılma. İkincil ışın daha sonra aynasal ışın olarak işlenir. Kırılma formülü ve resimli örnekler için Whitted'in makalesine bakın.

Muhafazalar ve verimlilik

Işın dökümü, sorunları çözmek için kaba kuvvet yöntemi olarak nitelendirilir. Minimal algoritma, özellikle birçok uygulaması ve kullanım kolaylığı göz önüne alındığında basittir, ancak uygulamalar tipik olarak birçok ışın yayar. Bir animasyon filminin tek bir karesini oluşturmak için milyonlarca ışın kullanılabilir. Bilgisayar işleme süresi, ekranın çözünürlüğü ve bileşimdeki ilkel katıların/yüzeylerin sayısı ile artar.

Muhafaza ağacı

Bileşim ağacındaki katıların etrafında minimum sınırlayıcı kutular kullanılarak, ışın-katı kesişimi için kapsamlı arama, verimli bir ikili aramaya benzer. Kaba kuvvet algoritması kapsamlı bir arama yapar, çünkü ışın katıyı açıkça gözden kaçırsa bile, ışını ilkellerin yerel koordinat sistemlerine dönüştürerek, ışın-yüzey kesişimlerini test ederek ve sınıflandırmaları birleştirerek her zaman ağaçtaki tüm düğümleri ziyaret eder. Daha hızlı bir algoritma, “açık bir ıskalamayı” tespit etmek için, katı kompozisyonun kapladığı alanın hiyerarşik bir temsili olarak ikili kompozisyon ağacını kullanır. Ancak tüm konum, şekil ve boyut bilgileri, ilkel katıların bulunduğu ağacın yapraklarında saklanır. Ağaçtaki üst ve ara düğümler yalnızca birleştirme işleçlerini belirtir.

Tüm katıların doldurduğu alanı muhafazalarla karakterize etmek, ağaçtaki tüm düğümlere konum ve boyut bilgilerinin soyut bir özetini verir. Ardından, hızlı “ışın muhafazayla kesişir” testleri hiyerarşide aramaya rehberlik eder. Ağaçtaki bir ara düğümde test başarısız olduğunda, ışının bileşik dışında olarak sınıflandırılması garanti edilir, bu nedenle daha fazla araştırmak için alt ağaçlarını tekrarlamak gereksizdir.

Muhafazaları kullanmak için maliyet tasarruflarını doğru bir şekilde değerlendirmek zordur çünkü bu, ilkellerin uzamsal dağılımına (karmaşıklık dağılımı) ve kompozisyon ağacının organizasyonuna bağlıdır. Optimal koşullar şunlardır:

  • Uzayda üst üste binen ilkel mahfaza yok
  • Kompozisyon ağacı dengelenir ve düzenlenir, böylece uzayda yakın olan alt katılar da ağaçta yakın olur

Buna karşılık, en kötü durum:

  • Tüm ilkel muhafazalar karşılıklı olarak örtüşür

Aşağıdakiler, Roth'un ışın dökümü üzerine makalesinde yapılan çeşitli performans iyileştirmeleridir, ancak daha sonra başkaları tarafından yapılan önemli iyileştirmeler olmuştur.

  • Erken Çıkışlar . Ağaçtaki bir bileşik düğümdeki operatör – veya & ise ve ışın, bileşiğin sol alt katının dışında olarak sınıflandırırsa, ışının sağ alt katıya göre sınıflandırmasından bağımsız olarak, ışın bileşik dışında olarak sınıflandıracaktır. sağlam. Bu nedenle, ışını doğru alt-katıya göre sınıflandırmak gereksizdir ve verimlilik için bundan kaçınılmalıdır.
  • Dönüşümler . Başlangıçta ekrandan sahneye dönüşümü ilkel sahneden yerele dönüşümüyle birleştirerek ve elde edilen ekrandan yerele dönüşümleri ilkelin veri yapılarında depolayarak, her bir ışın yüzeyi kesişimi için bir ışın dönüşümü ortadan kaldırılır.
  • özyineleme . Derin bir kompozisyon ağacı verildiğinde, bellek ayırma ve boşaltma ile birlikte özyineleme pahalı olabilir. Özyineleme, yığınlar olarak statik diziler kullanılarak simüle edilebilir.
  • Dinamik Sınırlama . Yalnızca katının görünür kenarları görüntülenecekse, ışın döküm algoritması aramayı kesmek için ışını dinamik olarak bağlayabilir. Yani, bir ışının bir alt-katı ile kesiştiğini bulduktan sonra, algoritma ekrana en yakın kesişim noktasını kullanabilir ve "ışın kesişimleri kutusu" testi için derinlik sınırını sıkılaştırabilir. Bu, yalnızca ağacın + kısmı için en baştan başlayarak çalışır. – ve & ile, ışının yakındaki “içeri” kısımları daha sonra “dışarı” olabilir.
  • Tutarlılık . Tutarlılık ilkesi, iki komşu pikselde görünen yüzeylerin farklı olmaktansa aynı olma olasılığının daha yüksek olmasıdır. Bilgisayar grafikleri ve görüntü sistemleri geliştiricileri, verimlilik ve performans için bu ampirik gerçeği uyguladılar. Çizgi çizimler için, kenarları içeren görüntü alanı normalde toplam görüntü alanından çok daha azdır, bu nedenle ışın dökümü açık bölgelerde değil kenarlarda yoğunlaşmalıdır. Bu, ekranın seyrek olarak ışınlarla örneklenmesi ve ardından komşu ışınlar farklı görünür yüzeyleri tanımladığında ikili aramalar yoluyla kenarların bulunmasıyla etkili bir şekilde uygulanabilir.

kenar yumuşatma

Örtüşmenin neden olduğu pürüzlü kenarlar, nokta örnekleme tekniklerinin istenmeyen bir etkisidir ve raster görüntüleme algoritmalarında klasik bir problemdir. Doğrusal veya düzgün kavisli kenarlar pürüzlü görünür ve özellikle animasyonlarda sakıncalıdır, çünkü görüntünün hareketi kenarları bulanık veya küçük hareketli yürüyen merdivenler gibi gösterir. Ayrıca, sahnedeki ışınlar arasındaki boşluktan daha küçük ayrıntılar kaybolabilir. Bir çizgi çizimindeki pürüzlü kenarlar, kenar izleme ile düzeltilebilir. Böyle bir algoritmanın amacı, resmi bir piksel doğruluğunda çizmek için gereken çizgi sayısını en aza indirmektir. Pürüzsüz kenarlar sonucu. Yukarıdaki hat çizimleri bu şekilde çizilmiştir.

Gölgeli bir resimdeki pürüzlü kenarları alt piksel doğruluğu ile yumuşatmak için, kenarlar hakkında bilgi için ek ışınlar dökülmelidir. ( Genel bir yaklaşım için Süper Örnekleme'ye bakın .) Kenarlar, yüzeylerin kesişimi veya eğri bir yüzeyin profili tarafından oluşturulur. İkili arama yoluyla yukarıda açıklandığı gibi "Tutarlılık" uygulanması, pikseldeki (X,Y) görünür yüzey pikseldeki (X+1,Y) görünür yüzeyden farklıysa, bunların ortasında (X+) noktasında bir ışın oluşturulabilir. ½,Y) ve orada tanımlanan görünür yüzey. Numune noktaları arasındaki mesafe daha da alt bölümlere ayrılabilir, ancak aramanın derin olması gerekmez. Pürüzlü kenarları yumuşatmak için birincil arama derinliği, kenar boyunca yoğunluk gradyanının bir fonksiyonudur. (1) görüntünün kenarları içeren alanı genellikle toplam alanın küçük bir yüzdesi olduğundan ve (2) ikili aramalarda ortaya çıkan ekstra ışınlar derinlemesine sınırlandırılabildiğinden - kenarları oluşturan görünür ilkellerinki - bunun maliyeti pürüzlü kenarları yumuşatmak ekonomiktir.

Işın dökümünün tarihi

Işın dökümünün geçmişi için, ışın izleme (grafik) konusuna bakın, çünkü ikisi de temelde aynı şeydir. Scott Roth, "ışın izleme" terimini "ışın izleme"yi duymadan önce icat etti. Scott Roth'un GM Araştırma Laboratuarlarında ışın dökümü geliştirmesi, Turner Whitted'in Bell Laboratuarlarında ışın izleme çalışmasıyla eş zamanlı olarak gerçekleşti.

Erken bilgisayar oyunlarında Ray dökümü

Zemini birden fazla yükseklik seviyesinde işlemek için gelişmiş tekniklerden yararlanan ışın döküm işlemeyi kullanan oyun.
Işın döküm oluşturucular, gerçek 3B oluşturucular gibi (solda görüldüğü gibi) kamerayı yukarı ve aşağı döndüremezler, bu nedenle bazen bir döndürme yanılsaması yaratmak için kesme (sağda) gibi hileler kullanılır.

İlk birinci şahıs oyunlarında, ekranın yatay genişliği üzerinde basit bir tek boyutlu tarama kullanarak 2B oyun alanından 3B bir dünyayı verimli bir şekilde oluşturmak için raycasting kullanıldı. Erken birinci şahıs nişancılar, 2 boyutlu bir dünyadan 3 boyutlu bir efekt yaratmak için ışın dökümünü bir teknik olarak kullandılar. Dünya 3D olarak görünürken, oyuncu yukarı veya aşağı bakamaz veya sadece sınırlı açılarda kesme distorsiyonu ile, çünkü bu 2D oyun alanının daha hızlı oluşturulmasına izin verir.

Wolfenstein 3D

Dünyaca ünlü video oyunu Wolfenstein 3D , düz renkli zeminler ve tavanlarla buluşan, tek tip yükseklikte duvarlardan oluşan kare tabanlı bir ızgaradan inşa edilmiştir. Dünyayı çizmek için, ekran piksellerinin her sütunu için tek bir ışın izlendi ve dikey bir duvar dokusu dilimi seçildi ve ışının duvara çarptığı yere ve bunu yapmadan önce ne kadar yol kat ettiğine göre ölçeklendirildi.

Izgara tabanlı seviyelerin amacı iki yönlüydü - potansiyel isabetler daha öngörülebilir hale geldiğinden ve bellek yükü azaltıldığından ışın duvarı çarpışmaları daha hızlı bulunabilir. Ancak, geniş açık alanların kodlanması fazladan yer kaplar.

ShadowCaster

Raven Software oyun ShadowCaster bir kullanır geliştirilmiş Wolfenstein tabanlı motor eklendi zemin ve tavan dokulandırırken ve değişken duvar yükseklikleri ile.

Komançi serisi

Voksel Uzay tarafından geliştirilen motor NovaLogic için Comanche oyunların ekran piksel her sütun boyunca bir ışını takip ve noktalar karşı her ışın test heightmap . Ardından, yükseklik haritasının her bir öğesini, görünür olan (yani öne çizilen pikseller tarafından kapatılmamış) belirlenen bir piksel sütununa dönüştürdü ve bunları doku haritasından karşılık gelen renkle çizdi.

Raycasting'in ötesinde

id Software'in DOOM'u gibi daha sonraki DOS oyunları , hız için raycasting 2.5D kısıtlamalarının çoğunu korudu, ancak alternatif oluşturma tekniklerine ( BSP gibi ) geçerek, onları artık raycasting motorları olmaktan çıkardı.

Hesaplamalı geometri ayarı

Olarak hesaplama geometri , ışın döküm sorun olarak da bilinir ışını çekim sorunu ve aşağıdaki sorgu sorun olarak ifade edilebilir: nesnelerin verilen bir dizi d bir içine boyutlu alan, ön işlemek veri yapısı , her bir sorgu ray böylece, ışının çarptığı ilk nesne çabucak bulunabilir. Sorun, çeşitli ayarlar için araştırılmıştır: uzay boyutu, nesne türleri, sorgu ışınları üzerindeki kısıtlamalar, vb. Bir teknik, seyrek bir voksel oktree kullanmaktır .

Ayrıca bakınız

Referanslar

Dış bağlantılar