Säteen valu - Ray casting

Image
Säteilyvalaisin idealisoidusta yleisvarresta varjon kanssa

Sädevalu on metodologinen perusta kolmiulotteiselle CAD/CAM-kiinteälle mallinnukselle ja kuvantoistolle. Se on pohjimmiltaan sama kuin säteenseuranta varten tietokonegrafiikan jossa virtuaalinen valonsäteet "heittää" tai "jäljittää" niiden polkua keskipiste kameran läpi jokaisen pikselin kameran kenno määrittää, mikä on näkyvissä pitkin säde on 3-D kohtaus. Termin "Ray Casting" otti käyttöön Scott Roth General Motors Research Labsissa vuosina 1978-1980. Hänen paperissaan "Ray Casting for Modeling Solids" kuvataan mallinnettuja kiinteitä esineitä yhdistämällä primitiiviset kiinteät aineet, kuten lohkot ja sylinterit, käyttämällä joukko-operaattoreiden liittoa (+), leikkauspistettä (&) ja eroa (-). Yleinen idea näiden binaaristen operaattoreiden käyttämisestä kiinteään mallinnukseen johtuu suurelta osin Voelckerin ja Requichan geometrisesta mallinnusryhmästä Rochesterin yliopistossa. Katso Kiinteä mallinnus, jos haluat laajan katsauksen kiinteisiin mallinnusmenetelmiin. Tässä oikealla olevassa kuvassa on U-liitos, joka on mallinnettu sylintereistä ja lohkoista binaaripuussa Rothin sädevalujärjestelmää käyttäen, noin vuonna 1979.

Ennen säteilyä (ja säteenseurantaa) tietokonegrafiikka-algoritmit heijastivat pintoja tai reunoja (esim. Viivoja) kolmiulotteisesta maailmasta kuvatasolle, jossa näkyvyyslogiikkaa oli sovellettava. Maailman kuva-tason projektio on kolmiulotteinen homogeeninen koordinaatistomuunnos (alias: 3D-projektio , affiinimuunnos tai projektiivinen muunnos ( homografia )). Kuvan muodostaminen tällä tavalla on vaikeaa, kun piilotettu pinta/reuna poistetaan. Lisäksi kaarevien pintojen siluetit on ratkaistava nimenomaisesti, koska se on säteenvalun epäsuora sivutuote, joten sitä ei tarvitse erikseen ratkaista aina, kun näkymä muuttuu.

Sädevalo yksinkertaisti huomattavasti kolmiulotteisten kohteiden ja kohtausten kuvien esittämistä, koska viiva muuttuu viivaksi. Joten sen sijaan, että heijastettaisiin kaarevia reunoja ja pintoja kolmiulotteisessa näkymässä 2-D-kuvatasolle, muunnetut viivat (säteet) leikkaavat kohtauksen kohteita. Homogeenista koordinaattimuunnosta edustaa 4x4 -matriisi. Matemaattinen tekniikka on yhteinen tietokonegrafiikalle ja geometriselle mallinnukselle. Muunnos sisältää kierrokset kolmen akselin ympäri, riippumaton skaalaus akseleita pitkin, käännökset kolmiulotteisesti ja jopa vinoutuminen. Muunnokset voidaan helposti yhdistää toisiinsa matriisien aritmeettisen avulla. Käytettäessä 4x4 -matriisia pistettä edustaa [X, Y, Z, 1] ja suuntavektoria [D x , D y , D z , 0]. (Neljäs termi on käännös, eikä se koske suuntavektoreita.)

Matematiikan yksinkertaistamisen vuoksi säteenvaloalgoritmi on erittäin tietokoneintensiivinen. Pixarilla on suuret renderöintilaitokset, rakennukset, joissa on 1000 prosessoria, animaatioiden tekemiseen käyttämällä säteenseurantaa [eli "säteilyvalua"] ydintekniikkana.

Konsepti

Ray valu on yksinkertaisin monen tietokonegrafiikan tekee algoritmeja, jotka käyttävät geometrinen algoritmi ray jäljittämiseen . Säteenseurantapohjaiset renderöintialgoritmit toimivat kuvien järjestyksessä, jotta ne tekevät kolmiulotteisista kohtauksista kaksiulotteisia kuvia. Geometriset säteet jäljitetään tarkkailijan silmästä näytteen ottamiseksi valosta ( säteilystä ), joka kulkee kohti tarkkailijaa säteen suunnasta. Säteilyn nopeus ja yksinkertaisuus johtuu valon värin laskemisesta ilman rekursiivista jäljittämistä lisäsäteille, jotka ottavat näytteen säteilyn osumakohdasta. Tämä eliminoi mahdollisuuden antaa tarkkoja heijastuksia , taittumia tai varjojen luonnollista putoamista ; kaikki nämä elementit voidaan kuitenkin väärentää jossain määrin käyttämällä tekstuurikarttoja tai muita menetelmiä. Laskennan nopea nopeus teki säteilystä kätevän renderöintimenetelmän varhaisissa reaaliaikaisissa 3D-videopeleissä .

Sädevalun idea on jäljittää säteet silmästä, yksi pikseliä kohti, ja löytää lähin esine, joka estää säteen polun-ajattele kuvaa näytön oveksi, jolloin jokainen ruutu ruudulla on pikseli. Tämä on sitten kohde, jonka silmä näkee pikselin läpi. Käyttämällä materiaalin ominaisuuksia ja valojen vaikutusta kohtauksessa tämä algoritmi voi määrittää kohteen varjostuksen. Yksinkertaistetaan olettamus, että jos pinta on valoa kohden, valo saavuttaa kyseisen pinnan eikä ole tukossa tai varjossa. Pinnan varjostus lasketaan käyttämällä perinteisiä 3D -tietokonegrafiikan varjostusmalleja. Yksi tärkeä etu säteenvalussa, jota tarjotaan vanhempiin skannauslinja-algoritmeihin verrattuna, oli sen kyky käsitellä helposti ei-tasomaisia ​​pintoja ja kiinteitä aineita, kuten kartioita ja palloja . Jos säde voi leikata matemaattisen pinnan, se voidaan renderöidä sädevalulla. Kehittyneitä objekteja voidaan luoda käyttämällä vankkaja mallinnustekniikoita ja helposti renderöidä.

Paperin "Ray Casting for Modeling Solids" tiivistelmästä: Mallinnettujen yhdistettyjen kiintoaineiden visualisoimiseksi ja analysoimiseksi virtuaaliset valonsäteet heitetään koettimiksi. Yksinkertaisuutensa ansiosta säteen valu on luotettavaa ja laajennettavissa. Vaikein matemaattinen ongelma on viivan ja pinnan leikkauspisteiden löytäminen. Niinpä pinnat tasoina, nelikulmioina, torina ja luultavasti jopa parametriset pintalaastarit voivat sitoa primitiiviset kiintoaineet. Sädevalun riittävyys ja tehokkuus ovat tässä käsiteltyjä kysymyksiä. Nopea kuvanmuodostusmahdollisuus vuorovaikutteiseen mallinnukseen on suurin haaste.

Kameramallit

Valosäteet ja kameran geometria muodostavat perustan kaikille geometrisille päättelyille. Tässä kuvassa on pinhole -kameramalli perspektiivivaikutelmaa varten kuvankäsittelyssä ja rinnakkaiskameramalli massa -analyysiä varten. Yksinkertainen pinhole -kameramalli koostuu keskipisteestä (tai silmäpisteestä) ja neliömäisestä pikseliryhmästä (tai näytöstä). Suorat valonsäteet kulkevat pikseliryhmän läpi yhdistämään keskipiste kohtaukseen, yksi säde pikseliä kohti. Kuvien varjostamiseksi säteiden voimakkuus mitataan ja tallennetaan pikseleinä. Pikselin arvosta vastaava heijastava pinta leikkaa pikselin säteen.

Kun polttoväli, polttovälin ja näytön välinen etäisyys on ääretön, näkymää kutsutaan "yhdensuuntaiseksi", koska kaikki valonsäteet ovat yhdensuuntaisia ​​toisiinsa nähden kohtisuorassa. Vaikka perspektiivikuva on luonnollinen kuvien tekemiseen, jotkin sovellukset tarvitsevat säteitä, jotka voidaan jakaa tasaisesti avaruuteen.

Mallinnuksen helpottamiseksi kameran tyypillisessä vakiokoordinaattijärjestelmässä on näyttö XY -tasossa, kohtaus +Z -puolitilassa ja polttoväli -Z -akselilla.

Image
Kameran paikallinen koordinaattijärjestelmä, jossa "näyttö" Z = 0 -tasossa

Säde on yksinkertaisesti suora viiva kameramallin kolmiulotteisessa tilassa. Se määritellään parhaiten suuntavektoriksi parametroidussa muodossa pisteeksi (X 0 , Y 0 , Z 0 ) ja suuntavektoriksi (D x , D y , D z ). Tässä muodossa rivin pisteet järjestetään ja niihin päästään yhden parametrin t kautta. Jokaiselle t: n arvolle määritetään vastaava piste (X, Y, Z) suoralla:

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

Jos vektori normalisoidaan, parametri t on etäisyys viivaa pitkin. Vektori voidaan normalisoida helposti seuraavalla laskennalla:

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

Kun otetaan huomioon esineiden geometriset määritelmät, joista jokaista rajoittaa yksi tai useampi pinta, tulos, joka lasketaan yhden säteen leikkauksesta kaikkien näytön rajoitetun pinnan kanssa, määritellään kahdella taulukolla,

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

jossa n on säteen ja pinnan leikkauspisteiden lukumäärä. Järjestetty luettelo sädeparametreista t [i] merkitsee sisääntulopisteitä. Säde tulee kiinteään kohtaan pisteessä t [1], poistuu t [2], tulee kiinteään kohtaan t [3] jne. Piste t [1] on lähinnä kameraa ja t [n] on kauimpana. Sädeparametrien yhteydessä pinnan osoittimet sisältävät ainutlaatuisen osoitteen leikatun pinnan tiedoille. Pinnalla voi olla erilaisia ​​ominaisuuksia, kuten väri, spekulaarisuus, läpinäkyvyys taittumisen kanssa tai ilman, läpikuultavuus jne. Pintaan liittyvällä kiintoaineella voi olla omat fysikaaliset ominaisuudet, kuten tiheys. Tästä voi olla hyötyä esimerkiksi silloin, kun kohde koostuu erilaisista materiaaleista ja kokonaispaino ja hitausmomentit ovat kiinnostavia.

Tietojen soveltaminen

Kolme säteilyä käyttävää algoritmia ovat viivapiirustusten tekeminen, varjostettujen kuvien tekeminen sekä tilavuuksien ja muiden fyysisten ominaisuuksien laskeminen. Kukin algoritmi antaa kameramallin mukaan yhden säteen pikseliä kohti. Äänenvoimakkuuden laskennassa käytettävän pikselinäytön resoluutio riippuu ratkaisun halutusta tarkkuudesta. Viivapiirustuksissa ja kuvan varjostuksissa resoluutio määrittää kuvan laadun.

Image
Esimerkkejä viivapiirustuksista, jotka on tehty heijastamalla säteitä. Kaksi on tavanomaisia ​​pohjapiirroksia. Yksi näyttää piilotetut reunat katkoviivoina.

RIVIPIIRROSTUKSET . Jos haluat piirtää kiintoaineen näkyvät reunat, luo yksi säde pikseliä kohti, joka liikkuu ylhäältä alas, vasemmalta oikealle näytössä. Arvioi jokainen säde, jotta voit tunnistaa näkyvän pinnan S [1], joka on ensimmäinen pinnan osoitin lajiteltujen säteiden ja pintojen leikkausluettelosta. Jos pikselipaikan (X, Y) näkyvä pinta on erilainen kuin pikselin (X-1, Y), näytä sitten yhden pikselin pituinen pystysuora viiva keskellä (X-½, Y). Vastaavasti jos näkyvissä oleva piste kohdassa (X, Y) on erilainen kuin pikselin (X, Y-1) näkyvä pinta, näytä sitten yhden pikselin pituinen vaakasuora viiva, jonka keskipiste on (X, Y-½). Tuloksena oleva piirustus koostuu vain vaaka- ja pystysuorista reunoista, jotka näyttävät rosoisilta kurssin resoluutiossa.

Rothin sädevalujärjestelmä synnytti kuvia kiinteistä esineistä oikealla. Laatikon koteloita, dynaamista rajausta ja johdonmukaisuutta käytettiin optimoinnissa. Jokaisesta kuvasta näytteestä otettiin näytteitä, joiden tiheys oli noin 100 x 100 (esim. 10000) ja uudet reunat löydettiin binäärihakujen avulla. Sitten kaikkien reunojen jälkeen heitettiin lisäsäteitä yhden pikselin välein reunojen molemmille puolille. Jokainen kuva piirrettiin Tektronix -putkella resoluutiolla 780x780.

Varjostetut kuvat . Jos haluat tehdä varjostetun kuvan, heitä näyttöön jälleen yksi säde pikseliä kohti. Käytä tällä kertaa kuitenkin näkyvää pintaosoitinta S [1] jokaisessa pikselissä päästäksesi pinnan kuvaukseen. Laske tästä pinnan normaali näkyvässä kohdassa t [1]. Pikselin arvo, näytettävä valon voimakkuus, on verrannollinen pinnan normaalin ja valolähteen ja pinnan välisen vektorin muodostaman kulman kosiniin. Kaikkien pikselien käsittely tällä tavalla tuottaa rasterityyppisen kuvan kohtauksesta.

TIETOJEN TILAVUUS JA HIETON HETKET . Kaarevien pintojen rajoittaman kiintoaineen tilavuus (ja vastaavat ominaisuudet) voidaan helposti laskea "likimääräisten summien" integrointimenetelmällä arvioimalla kiinteä aine suorakulmaisten rinnakkaisputkien joukolla. Tämä saavutetaan ottamalla ”syvällinen” kuva kiinteästä aineesta rinnakkaisnäkymässä. Säteiden heittäminen näytön läpi kiinteisiin osioihin kiinteä osa tilavuuselementteihin. Rinnakkaisputkien kaksi ulottuvuutta ovat vakioita, jotka määritetään säteiden 2-D-etäisyydellä näytöllä. Kolmas ulottuvuus on muuttuva, sen määrittelee laskettu enter-exit-piste. Erityisesti, jos näytön säteiden välinen etäisyys vaaka- ja pystysuunnassa on S, kunkin säteen "havaitsema" äänenvoimakkuus on

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

jossa L on määritetty suuntavektorin pituudeksi. (Jos se on jo normalisoitu, tämä on 1.)

   L = √(Dx2 + Dy2 + Dz2)

Jokainen ( t [ i ] - t [ i -1])/L on kiinteän aineen sisällä olevan sädeosan pituus.

Tämä kuva esittää säteenvalua käyttävän mallinnetun kiinteän aineen rinnakkaisputket. Tämä on rinnakkaisprojektiomallin käyttö.

Image
Kiinteä mallinnus suuntaissärmiöillä

In-Out ray -luokitus

Image
Ray binaarisessa kiinteässä rakenteessa

Tämä kuva esittää esimerkin binaarioperaattoreista koostumuspuussa käyttämällä + ja -, joissa yksittäinen säde arvioidaan.

Sädevalumenettely alkaa kiinteän koostumuksen puun yläosasta, laskeutuu rekursiivisesti pohjaan, luokittelee säteen suhteessa alkeellisiin kiintoaineisiin ja palaa sitten puusta ylös yhdistämällä vasemman ja oikean alipuun luokitukset.

Tämä kuva havainnollistaa vasemman ja oikean luokituksen yhdistämistä kaikille kolmelle binaarikäyttäjälle.

Image
Kolme binääritoimintoa: liitto (+), leikkaus (&) ja ero (-)

Realistiset varjostetut kuvat

Ray -valu on luonnollinen mallinnustyökalu varjostettujen kuvien tekemiseen. Scott Rothin ja Daniel Bassin GM Research Labsissa kehittämä harmaasävyinen säteilyvalujärjestelmä tuotti kuvia Ramtek-värirasterinäytöllä noin vuonna 1979. Kuvien sommittelua varten järjestelmä tarjosi käyttäjälle seuraavat säätimet:

   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
Image
Kahden pisteen valonlähteet tuottavat varjoja

Tämä kuva esittää taulukon kohtauksen, jossa on varjoja kahdesta pistevalonlähteestä.

Varjostusalgoritmit, jotka toteuttavat kaikki realistiset vaikutukset, ovat laskennallisesti kalliita, mutta suhteellisen yksinkertaisia. Esimerkiksi seuraavassa kuvassa esitetään lisäsäteet, jotka voitaisiin heittää yhdelle valonlähteelle.

Seuraa säteitä vaikutusten varalta

Jotta yksittäinen pikseli kuvassa näytettäisiin, algoritmi heijastaa säteen, joka alkaa polttopisteestä ja määrittää, että se leikkaa puoliksi läpinäkyvän suorakulmion ja kiiltävän ympyrän. Tällöin on heitettävä ylimääräinen säde, joka alkaa siitä pisteestä symmetrisesti vastakkaiseen suuntaan säteen ja pinnan leikkauspisteessä olevan pinnan normaalia vasten, jotta voidaan määrittää, mikä näkyy peilikuvauksessa. Tämä säde leikkaa läpikuultamattoman kolmion. Lopuksi jokainen säteen ja pinnan leikkauspiste testataan sen määrittämiseksi, onko se varjossa. "Shadow Feeler" -säde heitetään säteen pinnan leikkauspisteestä valonlähteeseen sen määrittämiseksi, estääkö jokin muu pinta kyseisen reitin.

Turner Whitted kutsuu toissijaisia ​​ja lisäsäteitä "rekursiiviseksi säteenseurannaksi". [Peilihuoneen kalusteiden rakentaminen olisi kallista, joten rekursioiden määrän rajoittaminen on järkevää.] Valkoisen mallinnettu taittuminen piirtoheitinkalvoille muodostamalla toissijainen säde näkyvästä pisteestä kulmassa, joka määritetään kiinteän aineen taitekerroin. Toissijainen säde käsitellään sitten peilisädeksi. Katso taitekerroin ja kuvalliset esimerkit Whittedin paperista.

Kotelot ja tehokkuus

Sädevalu on raa'an voiman menetelmä ongelmien ratkaisemiseksi. Minimialgoritmi on yksinkertainen, erityisesti ottaen huomioon sen monet sovellukset ja helppokäyttöisyys, mutta sovellukset tyypillisesti heittävät monia säteitä. Miljoonia säteitä voidaan heittää animaatioelokuvan yhden kehyksen muodostamiseksi. Tietokoneen käsittelyaika kasvaa näytön resoluution ja koostumuksen primitiivisten kiintoaineiden/pintojen määrän myötä.

Image
Koteloiden puu

Käyttämällä vähimmäisrajoituslaatikoita kiinteiden aineiden ympärillä koostumuspuussa, säteen ja kiinteän leikkauksen täydellinen etsintä muistuttaa tehokasta binäärihakua. Raa'an voiman algoritmi tekee kattavan haun, koska se vierailee aina kaikissa puun solmuissa-muuntaa säteen primitiivien paikallisiksi koordinaattijärjestelmiksi, testaa säteiden ja pintojen leikkauspisteitä ja yhdistää luokitukset-vaikka säde selvästi unohtuu kiinteästä. "Selvän puutteen" havaitsemiseksi nopeampi algoritmi käyttää binäärikoostumuspuuta kiinteän koostumuksen varaaman tilan hierarkkisena esityksenä. Mutta kaikki sijainti-, muoto- ja kokotiedot tallennetaan puun lehtiin, joissa alkeelliset kiintoaineet asuvat. Puun ylä- ja välisolmut määrittävät vain yhdistelmäoperaattorit.

Kaikkien kiintoaineiden täyttämän tilan kuvaaminen koteloiden avulla antaa kaikille puun solmuille abstraktin yhteenvedon sijainti- ja kokotiedoista. Sitten nopeat "säteen leikkaavat kotelot" -testit ohjaavat hakua hierarkiassa. Kun testi epäonnistuu puun välisolmussa, säde luokitellaan taatusti komposiitista pois, joten sen alipuiden toistaminen jatkotutkimuksiin on tarpeetonta.

Kotelojen käytön kustannussäästöjen tarkka arviointi on vaikeaa, koska se riippuu primitiivien alueellisesta jakautumisesta (monimutkaisuusjakauma) ja koostumuspuun organisoinnista. Optimaaliset olosuhteet ovat:

  • Mikään alkeellinen kotelo ei ole päällekkäin avaruudessa
  • Koostumuspuu on tasapainoinen ja järjestetty siten, että avaruuden lähellä olevat kiintoaineosat ovat myös puun lähellä

Sitä vastoin pahin tilanne on:

  • Kaikki alkeelliset kotelot ovat päällekkäin

Seuraavat ovat erilaisia ​​suorituskyvyn parannuksia, jotka on tehty Rothin säteilyä käsittelevässä paperissa, mutta myöhemmin muut ovat tehneet huomattavia parannuksia.

  • Varhainen lähtö . Jos puun komposiittisolmun operaattori on-tai & ja säde luokitellaan pois komposiitin vasemmasta alikiinteästä, säde luokitellaan pois komposiitista riippumatta säteen luokituksesta oikean aliosan suhteen kiinteä. Siksi säteen luokittelu oikean alikiintoaineen suhteen on tarpeetonta ja sitä tulisi välttää tehokkuuden vuoksi.
  • Muutokset . Yhdistämällä aluksi ruudusta näkymään -muunnos primitiivin kohtaus-paikallinen-muunnokseen ja tallentamalla tuloksena olevat seinä-paikallinen -muunnokset primitiivin tietorakenteisiin eliminoidaan yksi säteenmuutos säteen ja pinnan leikkauskohdan välillä.
  • Rekursio . Koska syvä koostumuspuu, rekursio voi olla kallista yhdessä muistin varaamisen ja vapauttamisen kanssa. Rekursiota voidaan simuloida käyttämällä staattisia matriiseja pinona.
  • Dynaaminen rajaus . Jos vain kiintoaineen näkyvät reunat on näytettävä, säteen valualgoritmi voi sitoa säteen dynaamisesti haun keskeyttämiseksi. Toisin sanoen, kun algoritmi voi havaita, että säde leikkaa alemman kiinteän aineen, se voi käyttää ruutua lähimpänä olevaa leikkauspistettä kiristämään "säteiden leikkauslaatikko" -testiä varten asetetun syvyyden. Tämä toimii vain puun + -osalle, alkaen ylhäältä. Kun - ja &, säteen lähellä olevat "sisään" olevat osat voivat myöhemmin tulla "ulos".
  • Johdonmukaisuus . Johdonmukaisuuden periaate on, että kahdessa vierekkäisessä pikselissä näkyvät pinnat ovat todennäköisemmin samoja kuin erilaisia. Tietokonegrafiikan ja visiojärjestelmien kehittäjät ovat soveltaneet tätä empiiristä totuutta tehokkuuteen ja suorituskykyyn. Viivapiirustuksissa reunat sisältävä kuva -alue on normaalisti paljon pienempi kuin koko kuva -alue, joten säteilyn tulee keskittyä reunojen ympärille eikä avoimille alueille. Tämä voidaan toteuttaa tehokkaasti ottamalla näytteitä harvoin säteillä ja paikantamalla reunat binäärihakujen avulla, kun naapurisäteet tunnistavat eri näkyvät pinnat.

Anti-aliasing

Aliasoinnin aiheuttamat rosoiset reunat ovat pisteenäytteenottotekniikoiden ei -toivottuja vaikutuksia, ja ne ovat klassinen ongelma rasterinäyttöalgoritmeissa. Lineaariset tai tasaisesti kaarevat reunat näyttävät rosoisilta ja ovat erityisen vastustamattomia animaatioissa, koska kuvan liikkeet saavat reunat näyttämään sumeilta tai näyttämään pieniltä liikkuvilta liukuportailta. Myös kohtausten yksityiskohdat, jotka ovat pienempiä kuin säteiden välinen etäisyys, voivat kadota. Viivapiirroksen rosoiset reunat voidaan tasoittaa reunojen seurannalla. Tällaisen algoritmin tarkoitus on minimoida kuvan piirtämiseen tarvittavien viivojen määrä yhden pikselin tarkkuudella. Tuloksena sileät reunat. Yllä olevat viivapiirustukset on piirretty tällä tavalla.

Jos haluat tasoittaa rosoiset reunat varjostetussa kuvassa subpikselin tarkkuudella, sinun on heitettävä lisäsäteitä, jotta saat tietoa reunoista. (Katso Supersampling yleisestä lähestymistavasta.) Reunat muodostuvat pintojen leikkauspisteestä tai kaarevan pinnan profiilista. Sovellettaessa "koherenssia" edellä kuvatulla tavalla binäärihaun avulla, jos näkyvä pinta pikselissä (X, Y) on erilainen kuin näkyvä pinta pikselissä (X+1, Y), säde voidaan luoda niiden puolivälissä kohdassa (X+ ½, Y) ja näkyvä pinta tunnistettu. Näytepisteiden välinen etäisyys voitaisiin jakaa edelleen, mutta haun ei tarvitse olla syvä. Ensisijainen hakusyvyys rosoisten reunojen tasoittamiseen on voimakkuusgradientin funktio reunan poikki. Koska (1) kuvan alue, joka sisältää reunoja, on yleensä pieni prosenttiosuus kokonaispinta -alasta ja (2) binäärisillä hauilla heitetyt ylimääräiset säteet voidaan rajoittaa syvyyteen - reunojen muodostavien näkyvien primitiivien - syvyyteen. rosoisten reunojen tasoittaminen on edullista.

Sädevalun historia

Katso säteilyn historiasta säteenseuranta (grafiikka), koska molemmat ovat pohjimmiltaan sama asia. Scott Roth keksi termin "säteen valu" ennen kuin hän oli kuullut "säteenseurannasta". Scott Roth kehitti säteilyä GM Research Labsissa samanaikaisesti Turner Whittedin säteenseurannan kanssa Bell Labsissa.

Ray -heitto varhaisissa tietokonepeleissä

Image
Peli, jossa käytetään säteenvalon renderointia ja kehittyneitä tekniikoita lattian renderöimiseksi useilla korkeustasoilla.
Image
Säteilyn renderöintilaitteet eivät voi kiertää kameraa ylös ja alas kuten todelliset 3D -renderöintilaitteet (kuten vasemmalla näkyy), joten joskus temppuja, kuten leikkaus (oikea), käytetään joskus luomaan illuusio pyörimisestä.

Varhaisissa ensimmäisen persoonan peleissä raikastusta käytettiin 3D-maailman tuottamiseen tehokkaasti 2D-pelikentästä käyttämällä yksinkertaista yksiulotteista skannausta näytön vaakasuuntaisen leveyden yli. Varhaiset ensimmäisen persoonan ampujat käyttivät säteenvaloa tekniikkana 3D-efektin luomiseksi 2D-maailmasta. Vaikka maailma näyttää kolmiulotteiselta, soitin ei voi katsoa ylös tai alas tai vain rajoitetussa kulmassa leikkausvääristymillä, koska tämä mahdollistaa 2D -pelikentän nopeamman renderöinnin.

Wolfenstein 3D

Maailmankuulu videopeli Wolfenstein 3D rakennettiin neliömäisestä ruudukosta, jonka korkeus oli tasainen ja joka kohtasi yksiväriset lattiat ja katot. Jotta voidaan tehdä maailman puolisuora jäljitettiin jokaisen sarakkeen näytön pikseliä ja pystysuora siivu seinän rakenne valittiin ja mitoitetaan missä päin maailmaa säde osuu seinään ja kuinka pitkälle se kulkee tähän etukäteen.

Ruudukkoon perustuvien tasojen tarkoitus oli kaksiosainen-säteen ja seinän törmäykset löytyvät nopeammin, koska mahdolliset osumat tulevat ennustettavammiksi ja muistin yläpuolella olevat tiedot vähenevät. Laajasti avoimien alueiden koodaaminen vie kuitenkin lisätilaa.

ShadowCaster

Raven Software Peli ShadowCaster käyttää parannettua Wolfenstein-pohjainen moottori on lisätty lattioiden ja kattojen teksturoimalla ja vaihteleva seinän korkeuksiin.

Comanche -sarja

Vokseli Space Moottorin kehittämä NovaLogic varten Comanche pelejä jäljittää ray läpi jokaisen pylvään näytön pikseliä ja testattu kullekin säteelle vastaan pisteissä korkeuskartta . Sitten se muutti korkeuskartan jokaisen elementin pikselisarakkeeksi, joka määritettiin näkyväksi (eli ei ole peitetty edessä kuvattujen pikselien avulla), ja piirsi ne vastaavalla värillä tekstuurikartasta.

Rajauksen lisäksi

Myöhemmät DOS -pelit, kuten id Softwaren DOOM, pitivät monet 2,5D: n nopeusrajoituksista, mutta jatkoivat siirtymistä vaihtoehtoisiin renderointitekniikoihin (kuten BSP ), jolloin ne eivät enää uudelleenmoottori.

Laskennallinen geometria -asetus

In laskennallinen geometria , säde valu ongelma on myös tunnetaan ray ammunta ongelma ja voidaan ilmoittaa seuraavan kyselyn ongelma: annetaan joukko esineitä d ulotteinen avaruus, esikäsitellä heidät tietorakenne siten, että kunkin kyselyn säde, säteen osuma alkuperäinen kohde löytyy nopeasti. Ongelmaa on tutkittu eri asetuksissa: avaruusulottuvuus, objektityypit, kyselysäteiden rajoitukset jne. Yksi tekniikka on käyttää harvaa vokseli -okteeria .

Katso myös

Viitteet

Ulkoiset linkit