Volumetrinen renderöinti on tekniikka, jolla saadaan tasainen kuva ( projektio ) kolmiulotteisesta erillisestä tietojoukosta.
Syöttötietojoukolla tarkoitetaan usein tietokonetomografialla tai magneettikuvauksella saatuja litteäkerroskuvia . Tyypillisesti kerrokset ovat yhtä paksuja (esimerkiksi yksi kerros millimetriä kohden valokuvataan) ja yhtä monta pikselit kerrosta kohden. Siten syöttödata on säännöllinen vokselien ruudukko , jossa jokainen vokseli vastaa keskiarvoa (lämpötila, materiaalitiheys) kolmiulotteisen kohteen tietyssä pisteessä.
Tilavuusmalli voidaan saada joko rakentamalla monikulmioverkko syöttötietojen perusteella tai suoralla tilavuusrenderöinnillä. Marching cubes -algoritmi on standardi vokseleiden muuntamiseksi monikulmiomalliksi. Suora tilavuusrenderöinti on monimutkainen laskennallinen tehtävä, joka voidaan suorittaa useilla tavoilla.
Forward volume renderer [1] [2] kartoittaa jokaisen vokseliarvon väriin ja läpinäkyvyyteen. Tämä tehdään siirtofunktiolla, joka voidaan antaa paloittain lineaarisella funktiolla tai arvotaulukolla. Tämän jälkeen tuloksena oleva RGBA-arvo tulostetaan kehyspuskuriin. Koko tilavuuden piirtämisen jälkeen saadaan kiinteä kuva.
Volumetric raycasting on renderöintiyhtälön soveltamista käytännössä ja tuottaa erittäin korkealaatuisia kuvia.
Nopeampi menetelmä, joka tuottaa huonolaatuisempia kuvia. Lee Westover kutsuu tätä menetelmää "lumipallojen heittämiseksi" (eng. splatting ). Voxelit "heitetään" katselupinnalle etäisyyden järjestyksessä siitä kauimpana lähimpään. Tuloksena olevat "lumipallojäljet" (splats) esitetään levyinä, joiden väri ja läpinäkyvyys vaihtelevat halkaisijan mukaan normaalin (Gaussin) jakauman mukaisesti . Eri toteutukset voivat käyttää eri elementtejä tai erilaisia allokaatioita.
Koska tilavuusrenderöinti on helposti rinnastettavissa, sen toteuttamiseen erikoistuneet laitteistot olivat lukuisten tieteellisten tutkimusten kohteena, kunnes tavalliset näytönohjaimet alkoivat selviytyä tästä tehtävästä hyväksyttävässä ajassa. Suosituin tekniikka oli VolumePro [3] , joka oli muistiintensiivinen ja käytti taustalla olevana algoritmina optimoimatonta sädelähetystä.
Usein tilavuusrenderöintijärjestelmä vastaanottaa lisätietoa syötteenä, joka tunnistaa alueet, jotka eivät sisällä renderöitävää materiaalia. Näitä tietoja voidaan käyttää välttämään ajanhukkaa läpinäkyvien alueiden tekemiseen [4] .
Tätä tekniikkaa käytetään renderöitäessä läheltä kaukaiselle näyttötasolle. Itse asiassa se on pintasäteilytys .
Hierarkkisten rakenteiden , kuten octree - ja BSP - puun , käyttö voi olla hyödyllistä sekä syötteen pakkaamisessa että volyymisäteilyn optimoinnissa .
Varaamalla epäkiinnostavia osia tilasta ennen renderöintiä voit vähentää merkittävästi laskelmien määrää sädelähetettäessä tai sekoitettaessa tekstuureja. Käytetystä algoritmista riippuen laskennallinen monimutkaisuus laskee arvosta O(n) arvoon O(log n) n peräkkäisen vokselin kohdalla. Tilasegmentoinnin käyttö nopeuttaa merkittävästi raycastia käyttäviä renderöintialgoritmeja.
Alueet, jotka eivät ole yhtä kiinnostavia näytettäväksi, voidaan myös renderöidä pienemmällä resoluutiolla, jolloin tarpeettomia syöttötietoja ei tarvitse käsitellä. Jos haluat nähdä nämä alueet lähempänä, voit tarkentaa niitä edelleen lukemalla tarvittavat tiedot levyltä ja suorittamalla lisärenderöintiä tai käyttämällä interpolointia .
Teknisten tietojen visualisointi | |
---|---|
Alueet |
|
Kuvatyypit _ |
|
Persoonallisuudet |
|
Liittyvät alueet |
|