Säteenseuranta ( eng. Ray tracing ; ray tracing ) on yksi geometrisen optiikan menetelmistä - optisten järjestelmien tutkimusta seuraamalla yksittäisten säteiden vuorovaikutusta pintojen kanssa. Suppeassa merkityksessä se on tekniikka kolmiulotteisten mallien kuvan muodostamiseksi tietokoneohjelmissa, jossa seurataan säteen etenemisen käänteistä liikerataa (näytöltä lähteeseen).
Säteenseuranta PC-peleissä on ratkaisu realistisen valaistuksen, heijastusten ja varjojen luomiseen, joka tarjoaa paremman tason kuin perinteiset renderöintimenetelmät . Nvidian Turing oli ensimmäinen arkkitehtuuri (kesä 2018), joka mahdollisti reaaliaikaisen säteenseurannan GPU :ssa . [1] Muita säteenseurannan sovelluksia ovat auralisointi ja suurtaajuusteknologiat.
Ennen kuin säteenseuranta kehitettiin, 3D-tietokonegrafiikka muodostui pohjimmiltaan sarjasta "ohjelmistotemppuja", jotka jäljittelevät valaistujen kohteiden varjostusta. Säteen jäljitys oli ensimmäinen algoritmi tällä alueella, jolla oli fyysistä järkeä.
Ensimmäinen säteen jäljitetty kuva näytettiin oskilloskoopin kaltaisella näytöllä Marylandin yliopistossa vuonna 1963. [2] Arthur Appelia, Robert Goldsteinia ja Roger Nagelia, jotka julkaisivat algoritmin 1960-luvun lopulla, mainitaan usein säteenseurantaalgoritmin kehittäjiksi . [3] [4] [5] Muita säteenseurantaan tuolloin osallistuneita tutkijoita olivat Herb Steinberg, Marty Cohen ja Eugene Troubetzkoy. [6] Säteiden jäljitys perustuu geometriseen optiikkaan, jossa valo viittaa säteiden ryhmään. Säteenseurannassa käytettyjä tekniikoita on käytetty paljon aikaisemmin, myös optisten järjestelmien valmistajien toimesta. Nykyään monet renderöijat (tietokoneohjelmat kuvien luomiseen 3D-kohtauksista) käyttävät säteenseurantaa, mahdollisesti yhdessä muiden prosessien kanssa.
Yksinkertaiset säteenseurannan muodot laskevat vain suoran valaistuksen eli suoraan valonlähteistä tulevan valon. Säteenseuranta on kuitenkin laajentunut huomattavasti moninkertaiseksi sen jälkeen, kun sitä käytettiin ensimmäisen kerran tietokonegrafiikassa . Edistyneemmät muodot ottavat huomioon myös muista esineistä heijastuneen epäsuoran valon; sitten puhu globaalista valaistusmenetelmästä.
Termi Raycasting kuvaa pääasiassa yksinkertaistettua säteen jäljityksen muotoa, mutta joskus sitä käytetään myös keskenään.
Takaisinjäljitysmenetelmän vakava haitta on suorituskyky . Rasterointi- ja viivaskannausmenetelmä käyttää tietojen koherenssia laskennan jakamiseen pikseleiden kesken. Säteenseurantamenetelmä aloittaa joka kerta pikselin värin määrittämisprosessin uudelleen, kun otetaan huomioon jokainen havaintosäde erikseen. Tällä erottelulla on kuitenkin joitain muita etuja, kuten kyky jäljittää enemmän säteitä kuin on tarkoitettu ääriviivojen epätasaisuuksien eliminoimiseksi tietyillä mallin alueilla. Se ohjaa myös säteiden heijastusta ja taittumisen vaikutuksia ja yleensä - kuvan fotorealismin astetta.
Säteilylämmönsiirron ongelmien ratkaisemiseksi tehokkaimmaksi tunnustetaan vyöhykelaskentamenetelmä, joka perustuu kunkin pinta- ja tilavyöhykeparin säteilyn kulmakertoimien laskemiseen. Kahden vyöhykkeen säteilykulmakerroin on yhtä suuri kuin osa säteilyenergiasta, joka tuli ensimmäiseltä vyöhykkeeltä ja jonka toinen vyöhyke absorboi. Monissa lämmönsiirron teorialle omistetuissa töissä tarkastellaan teknisten järjestelmien yksinkertaistettuja malleja: metallurgisia uuneja ja muita korkean lämpötilan yksiköitä, joissa säteily kulkee esteettä vyöhykkeeltä toiselle. Todellisuudessa useimmilla järjestelmillä on monimutkainen geometria, jossa säteily on suojattu, estetty järjestelmän esteillä: työkappaleilla, itse uunin seinämillä, eri kanavien seinämillä. Esteiden esiintyminen säteilyn tiellä johtaa siihen, että standardikaavoilla laskettujen kaltevuuskertoimien avulla laaditut lämpötasapainoyhtälöt antavat erittäin vääristyneen tuloksen, koska ne eivät ota huomioon säteilysuojausta.
Järjestelmissä, joissa on yksinkertainen geometria ilman seuloja, kaltevuuskertoimet lasketaan kaavalla 1. Jos absorboivaa ja sirottavaa väliainetta ei ole, kaltevuuskerroin pinnasta pintaan on:
(yksi)
Vyöhykkeen lämmönsiirron laskemisen standardikaava ei kuitenkaan ota huomioon muiden pintojen läsnäoloa järjestelmässä. Kaltevuuskertoimien laskenta ilman esteitä huomioimatta, kun suurin osa säteilystä on suojattua, voi johtaa jopa 100 % virheisiin lämpövirtojen ja vyöhykkeiden lämpötilojen määrittelyssä.
Esteiden läsnäolon huomioon ottamiseksi säteilyn tiellä kunkin alkeisalueen ja alkeistilavuuden parin osalta niiden näkyvyys tarkistetaan. Niiden keskusten väliin vedetään säde, jonka leikkaus kaikkien muiden läpinäkymättömien pintojen kanssa tarkistetaan. Numeerista integrointia varten ja esteiden esiintymisen huomioon ottamiseksi käytetään kaavan 1 erillistä versiota kerrottuna näkyvyysfunktiolla:
(2)
Säteilysuojauksen määritysprosessi vaatii kuitenkin useita suuruusluokkaa enemmän laskentaa kuin kaltevuuden, lämpövirtojen ja lämpötilojen laskenta järjestelmissä, joissa on yksinkertainen geometria ilman suojausta.
Suurissa järjestelmissä, joissa on monimutkainen geometria, pinta- ja tilavuuselementtien määrä voi nousta tuhansiin tai kymmeniin tuhansiin, ja emittoitujen säteiden määrä on miljoonia tai miljardeja. Periaatteessa säteiden määrää ei ole rajoitettu. Säteenseurannan suora menetelmä, johon verrataan muita edistyneitä menetelmiä, on se, että jokaisen säteen leikkauspisteet kaikkien ruutujen (alueiden) kanssa, paitsi lähettävä ja vastaanottava pinta, tarkistetaan. Suora menetelmä on erittäin työvoimavaltainen, koska risteystarkastusten kokonaismäärä riippuu pintojen M määrästä O(M^3). Tällaisessa tilanteessa säteenseurantakiihdytysmenetelmät, jotka eivät vaadi säteen leikkauspisteen tarkistamista jokaisen näytön kanssa, ovat ratkaisevassa asemassa.
Niin,
1) Useimmissa järjestelmissä on esteitä, jotka estävät säteilyn kulkua;
2) Kulmakertoimien laskeminen ottamatta huomioon säteilysuojausta johtaa jopa 100 % virheisiin lämpötilojen ja lämpövirtojen määrittämisessä;
3) Säteilysuojauksen laskeminen vaatii useita suuruusluokkaa enemmän aikaa kuin säteilylämmönsiirron laskeminen ilman suojausta.
Rajaavat volyymit ja rajattavien volyymien hierarkia
Rajoitustilavuuksien (Bounding Volume) käyttö on seuraava: jokainen näyttö on suljettu yksinkertaisen muodon rajaavaan tilavuuteen, jonka kanssa säteen leikkaus vie paljon vähemmän aikaa kuin leikkaus alkuperäisen näytön kanssa. Säde leikkaa ruudun vain, jos säde leikkaa rajaavan tilavuuden. Siten säteen leikkauspisteiden määrä näyttöjen kanssa vähenee merkittävästi. Rajoituslaatikkoa ja Rajoituspalloa käytetään yleisesti rajoitustilavuuksina. Suuntasärmiön pinnat valitaan yleensä yhdensuuntaisiksi koordinaattitasojen kanssa; orientoidut suuntaissärmiöt ovat paljon harvinaisempia.
Seuraava merkittävä askel nopeuttaa säteenseurantaa on rajaavien tilavuuksien hierarkian rakentaminen: jokaiselle rajoitustilavuuksien ryhmälle rakennetaan erilainen "korkeamman tason" rajaava tilavuus. Tuloksena olevaa tietorakennetta kutsutaan Bounding Volume Hierarchyksi (BVH) ja se tallennetaan binääripuuna.
Kaikki rajaavat tilavuudet on esilajiteltu koordinaattien mukaan siten, että jokainen sisältää vain lähellä olevat objektit.
Rajattavan volyymihierarkian rakentamiseen on kaksi päätapaa: ylhäältä alas ja alhaalta ylös. Ylhäältä alas rakennettaessa päärajoitustilavuus jaetaan kahteen osaan, jotka sisältävät suunnilleen saman määrän alemman tason tilavuuksia, tai kahteen samankokoiseen osaan, jonka jälkeen menettelyä sovelletaan jokaiseen tuloksena olevaan tilavuuteen. Pysäytyskriteerinä voi olla puun korkeus tai sisällä olevien tilavuuksien lukumäärä, jolloin jakaminen ei ole tarkoituksenmukaista. Alhaalta ylöspäin rakennettaessa lähellä olevat rajaavat tilavuudet yhdistetään, kunnes muodostuu yksi päärajoitustilavuus.
Avaruuden binaarinen osiointi
Binääritilan osiointimenetelmässä käytetään myös rajoituksia, jotka sisältävät kaikki geometrian objektit, ja hierarkkista rakennetta puun muodossa, jota kutsutaan BSP-puuksi (BSP - Binary Space Partitioning - binary space partitioning).
Menetelmän ominaisuudet:
1) BSP-puu rakennetaan aina ylhäältä alas;
2) Se ei ole objektiryhmä (rajaava tilavuus), joka on jaettu kahteen osaan, vaan tila;
3) BSP-puussa rajaava tilavuus voi kuulua useisiin korkeamman tason volyymeihin samanaikaisesti. Rajaavassa volyymihierarkiassa jokainen taltio kuuluu vain yhteen korkeamman tason taltioon.
Säteen jäljityksen kiihtyvyys saavutetaan menetelmällä kävellä puun läpi ja tarkastaa valikoivasti säteen ja laatikoiden leikkaus. Tällaisia menetelmiä on useita, mutta yleisin menetelmä sekä BSP-puulle että rajaavalle volyymihierarkialle on seuraava algoritmi:
1) Säteen ja päälaatikon leikkauspiste (rajoitustilavuus) tarkistetaan. Jos risteystä ei ole, säde ei leikkaa minkään näytön kanssa.
2) Jos säde leikkaa laatikon, leikkaus ensimmäisen lapsilaatikon kanssa valitaan. Jos risteystä ei ole, säteen on leikattava toisen lapsilaatikon kanssa. Jos ensimmäisen lapsilaatikon kanssa on risteys, sille määritetään luettelo lapsilaatikoista ja risteys niiden kanssa tarkistetaan.
3) Vaihe 2 toistetaan, kunnes löydetään leikkauspiste jossain näytössä. Jos tällaisia pisteitä on useita, määritetään lähimpänä säteen alkua oleva leikkauspiste.
Yhtenäinen ja hierarkkinen ruudukko
Toinen spatiaalisen osioinnin menetelmä on säteen jäljitysverkko. Tässä menetelmässä koko laskenta-alue suljetaan yhteen suuntaissärmiöön, joka on jaettu koordinaattiakseleita pitkin tasaväleiksi muodostaen yhtenäisen ruudukon. Jokaiselle ruudukon solulle määritellään luettelo sen sisältämistä rajaavista tilavuuksista. Jokainen rajaava tilavuus voi kuulua useisiin viereisiin ruudukon soluihin. Jotkut ruudukon solut voivat olla tyhjiä.
Ruudukkoa käyttämällä et voi tarkistaa säteen leikkauskohtaa kaikkien rajaavien tilavuuksien kanssa. Säteen jäljittämiseen ruudukon läpi on erilaisia menetelmiä, jotka eroavat toisistaan sen suhteen, miten säteen varrelta löydetään seuraava solu, laskelmien tyyppi (kokonaisluku tai liukuluku).
Säteenseurannassa määritetään peräkkäin niiden solujen lukumäärä, joiden läpi säde kulkee:
1) Jos nykyisessä solussa ei ole objekteja, määritetään seuraavan solun numero.
2) Jos nykyisessä solussa on objekteja, jokaisen niistä tarkistetaan leikkaus säteen kanssa
3) Jos säde leikkaa yhden tai useamman kohteen nykyisessä solussa, määritetään säteen alkua lähinnä oleva leikkauspiste ja vastaava kohde, ja tämän säteen jäljitys päättyy.
4) Jos palkki ei leikkaa minkään kohteen tai ruudukon solu on tyhjä, prosessi toistetaan kohtien 1-3 mukaisesti.
Jos näytöt ovat jakautuneet epätasaisesti laskenta-alueella, silloin kun käytetään yhtenäistä ruudukkoa joissakin sen soluissa, näyttöjä voi olla liian monta, joista jokaisen leikkaussäteen kanssa tarkistetaan tai suurin osa soluista on tyhjiä. , ja säteen jäljitys pitkän rivin tyhjien solujen läpi on turhaa ajanhukkaa. Näissä tapauksissa käytetään hierarkkisia verkkoja. Hierarkkisen ruudukon rakentamiseksi sinun on rakennettava suuri yhtenäinen ruudukko, valittava sitten solut, jotka sisältävät suurimman määrän näyttöjä, ja rakennettava näistä soluista yhtenäinen ruudukko pienemmällä solukoolla.
Epätasaisen tilavuusverkon käyttö
Eräs toinen tapa osioida on epätasainen, tavallisesti kuusikulmainen tai tetraedrimainen tilavuusverkko, joka osittain toistaa approksimoitavan kohteen muotoa, esimerkiksi uunin tilaa aihioilla. Viime aikoina kiinnostus tällaisen ruudukon käyttöön on lisääntynyt voimakkaasti, mutta sitä käyttäviä säteenseurantamenetelmiä on kehitetty vähän verrattuna muita tietorakenteita käyttäviin menetelmiin.
Tällaisen ruudukon solut eivät sisällä muita esineitä, ja jokainen solu on tyhjä (säteilylle läpinäkyvä), täytetty kaasulla tai osa kiinteää kappaletta. Kiinteiden kappaleiden rajat ovat solujen pinnat. Jokaisessa säteenjäljityksen vaiheessa määritetään, minkä nykyisen solun pinnan kautta säde poistuu. Kasvojen numero määrittää seuraavan solun numeron, jonka läpi säde kulkee. Jos pinta on kiinteän kappaleen (uunin seinän tai aihioiden) rajana, säteen jäljitys pysähtyy.
Epätasaisen volyymiverkon käytön edut tietorakenteena nopeuttamaan säteenseurantaa ovat: hyvä geometrian approksimaatio ja yksinkertaisten leikkausalgoritmien käyttö: käytetään vain leikkauskohtia solujen pintojen - nelikulmioiden ja kolmioiden - kanssa. Menetelmän haittoja ovat: toisin kuin yhtenäisessä ruudukossa, jos suurin osa näytöistä sijaitsee pienessä geometriassa, niin suurin osa säteen leikkaamista soluista on tyhjiä ja näiden leikkauskohtien käsittely on tehotonta.
Näkökulmat erilaisiin säteenjäljitysmenetelmiin säteilylämmön siirtoon
Jokaisella kuvatuista säteenseurantamenetelmistä on omat etunsa ja haittansa. Joistakin menetelmistä, kuten BSP-puusta, on tullut yleisimmin käytetty tietokonegrafiikassa, joten tämä menetelmä on kehittynein. Elementtiverkon käyttöä ei ole vielä riittävästi tutkittu, eikä tämän menetelmän mahdollisuuksia todennäköisesti hyödynnetä täysin.
Uskotaan, että on mahdotonta valita yhtä parhaista edellä kuvatuista menetelmistä millekään geometrialle. Kaikki nämä menetelmät eivät kuitenkaan sovellu säteen jäljittämiseen absorboivissa ja sirovissa väliaineissa. Tosiasia on, että avaruuden binääriosion menetelmät, rajaavien tilavuuksien hierarkia, yhtenäiset ja hierarkkiset silmät keskittyvät laskemaan leikkauspisteitä vain läpinäkymättömillä pinnoilla geometriassa. Kun jäljitetään säteitä absorboivassa väliaineessa, on tarpeen määrittää paitsi pinta, johon säde törmäsi, myös kaikki verkkomallin läpinäkyvät pinnat, joiden läpi säde kulki - jotta voidaan laskea läpi kulkevan säteen pituus jokainen mallin tilavuusvyöhyke ja määritä absorboidun energian osuus kullakin vyöhykkeellä. Tässä tehtävässä lueteltuja säteenseurantakiihdytysmenetelmiä ei voida soveltaa ilman merkittäviä parannuksia. Sitä vastoin menetelmä, jossa käytetään epäyhtenäistä volyymiverkkoa, tekee helpoksi löytää koko lista pinnoista, joiden läpi säde on kulkenut, ja siten määrittää kullakin tilavuusvyöhykkeellä absorboituneen energian osuus minimaalisella lisätyöllä. Tässä suhteessa epäyhtenäisen volyymiverkon käyttö tietorakenteena säteen jäljityksen nopeuttamiseksi säteilylämmönsiirtoongelmissa on lupaavin.
Sanakirjat ja tietosanakirjat | |
---|---|
Bibliografisissa luetteloissa |