11. Tilavuusrenderöinti Tilavuusrenderöinti tarkoittaa vokseliperusteisen datan käsittelyä tai visualisointia. Luvussa 2 esitettiin vokselien merkintään perustuvia tiedonesitysmenetelmiä. Suuret homogeeniset kohteet saattavat vaatia jopa satoja tuhansia vokseleita, jolloin hierarkkiset rakenteet, esim. kahdeksanpuut, ovat tarpeen. Toisaalta esim. lääketieteellisissä sovelluksissa tietorakenne voi olla yksinkertaisesti suuri kolmiulotteinen vokselitaulukko, joka saadaan kuvanlukijalaitteesta. Tässä luvussa silmäillään suppeasti tällaisten suurien ei rakenteisten vokselijoukkojen visualisointia. Kehitys on tuottanut kolmen tilamuuttujan skalaarifunktioiden visualisoinnin. Aiemmin niitä kuvattiin esim. korkeuskäyrillä tai poikkileikkauksilla. Tilavuuskäsittelyn tultua mahdolliseksi ohjelmistojen ja laitteistojen kehityksen myötä tällaista dataa voidaan käsitellä tietokonegrafiikassa kokonaisina kohteina kaikki ulottuvuudet huomioiden. Vokselitilavuus tuotetaan joko matemaattisella mallilla, kuten laskennallinen nestedynamiikka, tai todellisella datalla, kuten lääketieteellisessä kuvantamisessa. Visualisointiohjelmat kohtelevat yleensä kumpaakin tyyppiä samalla tavalla. Pääasiallinen ero eri datalähteiden välillä on tilavuusalkion muoto. Lääketieteellisessä kuvantamisessa vokselit ovat suorakulmioita tai kuutioita. Toisissa sovelluksissa ne voivat olla kiilamaisia, sylinterin jaettuja viipaleita. Näistä on sovellusesimerkki kuvassa 11.1. 546 547 Lääketieteellinen kuvantaminen on nyttemmin yksi keskeisimmistä tilavuusrenderöinnin sovellusaloista. Tietokonetomografiassa data kerätään samansuuntaisten tasojen joukkona, josta muodostetaan kolmiulotteinen kuva. Vaikka kyse on määrätyistä sovelluksista, mitä tässä tarkastellaan, menetelmät ovat yleisiä. Kuva 11.1. Yläkuvassa on käytetty (myöhemmin tarkasteltavaa) marssivien kuutioiden menetelmää polttokammion virtausten simulointiin. Virtaus etenee vasemmalta oikealle ja myös päinvastoin. Alakuvassa on käytetty tekstuurikuvausta. Väri edustaa lämpötilaa, ja sitä on käytetty yläkuvan sävytykseen. Yleensä lääkäri voi katsoa tietokonetomografiakuvia myös tasoittain, viipaleina. Koko tasopinon visualisointi tehdään tilavuusdatana. Kuvassa 11.2. on yksinkertaistettu järjestelmä. Nähdään, miten data näytteistetään useista kaksiulotteisista, äärettömän ohuista tasoista. Vokseliarvot johdetaan tästä datasta. Tason resoluutio on tyypillisesti 512 512, ja tämä on tavallisesti paljon suurempi kuin tasojenvälinen resoluutio. Kuvantaminen tehdään datapisteiden etäisyydellä 5 mm. Data tulkitaan vokselijoukkona, jossa vokselit vastaavat absorboitunutta röntgensäteilyä. 548 549
Muita lääketieteellisiä kuvantamismenetelmiä ovat MRI (magneettiresonanssikuvaus) ja PET (positroniemissiontomografia). Edellisen resoluutio on usein 256 256 12 bittiä. Koko kehon tietokonetomografiakuva käsittää 512 512 12 bittiä 1871 tasossa. Kuva 11.2. Tietokonetomografiajärjestelmä ja tilavuusrenderöintiä. Jouni Mykkänen tutkimusryhmästämme käytti PET aivokuvia. Nämä on mitattu 35 tasossa resoluutiolla 128 128 vokselikoon ollessa 2.3 mm 2.3 mm 4.25 mm. Tarkkuus on siis huomattavasti pienempi kuin edellisillä, mutta menetelmässä on etuja verrattuna muihin. PETkuvat ovat näet fysiologisessa mielessä funktionaalisia, ei niinkään anatomisia, ts. ne kuvaavat kuvattavasssa elimessä (esim. aivot) ajan mittaan tapahtuvia muutoksia. Tämä muutos tarkoittaa tarkkaan ottaen verenkiertoon syötetyn merkkiaineen muutoksia. 550 551 11.1. Tilavuusrenderöinti ja tilavuusdatan visualisointi Tilavuusrenderöinnin perusajatus on, että katsoja pystyy havainnoimaan datatilavuutta renderöitynä projektiona katselutasolla. Lääketieteellisessä kuvantamisessa halutaan katsoa pintaa tai tilavuutta tai tämän osaa. Tarkastellaan seuraavaksi laajennettua esimerkkiä tietokonetomografiakuvan tasojen visualisoimiseksi kolmiulotteisena datatilavuutena. Kuten mainittu, tasot käsittävät lähes äärettömän ohuita kaksiulotteisia taulukoita, joissa tasojen etäisyydet ovat käytännössä suurempia kuin pikselin koko. Jotta tällainen tasojen pino saadaan muunnettua kolmiulotteiseksi kuutiovokselien taulukoksi, pitää suorittaa interpolointi. Kolme vaihtoehtoa, jotka vaikuttavat kaksiulotteisten pintojen kuvaamiseen tilavuuskuvaksi, ovat: (1) Data on viipaloitava poikkileikkaustasoihin. Tämä on helppoa, mikäli taso on yhdensuuntainen jonkin koordinaattitasoista kanssa. (2) Pitää poimia kuvassa tunnetusti mukana oleva kohde datasta ja käsitellä sopivalla tavalla. Esim. kehon sisäelin voidaan segmentoida datasta ja segmentoitu muoto voidaan muuntaa soveliaaksi tietokonegrafiikkaesitykseksi. (3) Vokselien läpinäkyvyys ja värit on määrättävä kohteessa, kun katselukulma voi olla mikä tahansa. Lääketieteellisiä kuvia kootaan laajoiksi datajoukkokokoelmiksi, atlaksiksi, joissa on yhdistetty em. kolmea tapaa. Kuvassa 11.3. on esimerkki, jossa kaksi ensimmäistä esittävät kaksi irrotettua kohdetta asetettuina läpinäkyvään ympäristöön kallossa. Kahdessa jälkimäisessä on leikattu pois ihon renderöityä versiota sisäelinten paljastamiseksi. 552 553
Kuvassa 11.4. on tilavuusrenderöinnin perusidea säteenheittämisalgoritmina (eri menetelmä kuin säteenjäljitys), joka esittää datajoukon kuutiona. Tämä on kierretty haluttuun katselusuuntaan ja leikattu sädekimpulla, säde kullekin pikselille. Lähestymistapa on hyvä käsitteellinen alkupiste, ja se on toteutettavissa useilla tavoilla. Katsotaan seuraavaksi algoritmin yleisiä vaihtoehtoja: Kuva 11.3. (a) ja (b) kuvaavat irrotettuja kohteita kalloon asetetussa läpinäkyvässä ympäristössä. (c) ja (d) ovat esimerkkejä, kun iho on leikattu pois sisäelimien esittämiseksi. Elimet on väritetty niiden muodon korostamiseksi. Mitä datan ominaisuuksia halutaan esittää kuvatasossa? Halutaan esim. nähdä ulkonainen rajapinta sävytettynä kohteena. Lääketieteellisessä kuvantamisessa tämä voisi olla ihopinta, joka pitäisi löytää ja sävyttää. Säteenheittämistapauksessa tämä käsittää säteen pysäyttämisen, kun säde osuu ensimmäiseen nollasta eroavaan vokseliin, ja lokaalin sävytysmallin soveltamista. 554 555 Kuva 11.4. (a) Tilavuusrenderöintiä heittämällä yhdensuuntaisia säteitä kustakin pikselistä. (b) Katselutason suuntaisia tasoja käyttäen muodostetaan datajoukon katselutilavuus. Mikä on todellisuuden ja datan välinen suhde? Tilavuusdatajoukko sisältää yleisesti pisteiden kolmiulotteisen taulukon, joka edustaa näytteistystä todellisuudesta. Tämä saattaa olla varsin suuri, kuten 512 3. Yksittäinen näyte liitetään yksittäiseen vokseliin. Mitä se oikeastaan esittää? Oletetaan vokseliresoluution olevan riittävä hieno, jotta mikä tahansa vokseli sisältää ainoastaan yhtä ainetta tai ei mitään. Vaihtoehtoisesti voitaisiin käsitellä vokselin sisältämää aineiden sekoitusta. Esim. lääketieteellisessä kuvantamisessa vokseli voisi vastata aluetta, jossa olisi sekä luuta että lihaa. Mitkä ovat vokselikoon seuraukset? Eri tavoin kuin tavanomaisessa renderöinnissä on todennäköistä, että kuvatason vokseliprojektio käsittää useita pikseleitä. Seuraavassa katsotaan em. kysymyksiä hivenen tarkemmin. 556 557
11.2. Puoliläpinäkyvä geeli vaihtoehto Yleisimmässä katseluvaihtoehdossa annetaan katsojalle mahdollisuus nähdä koko data. Mitään vokselia ei pidetä täysin läpinäkymättömänä, joten kaikki data nähdään. Fysikaalinen analogia on kohde, joka on tehty erivärisistä läpinäkyvistä geeleistä. Muut vaihtoehdot voidaan käsittää tämän menetelmän täsmennyksinä. Vokselille määrätään väri C ja läpinäkyvyys. Esim. tietokonetomografiassa luulle voitaisiin antaa valkoinen ja läpinäkyvyys voitaisiin tehdä suhteessa kudoksen tiheyteen niin, että luu olisi lähes täysin läpinäkymätön. Visualisointi käsittää kolme vaihetta: (1) Luokitellaan alkuperäisen datan jokainen vokseli ja määrätään halutut värit ja peittävyysarvot. (2) Muunnetaan (luokiteltu) tilavuusdata katselusuuntaan. (3) Heitetään jokaiselle pikselille säde ja etsitään pikselille väri sädettä pitkin yhdistämällä. Käydään nämä vaiheet erikseen läpi. Sitten heitetään säde jokaisesta pikselistä datatilavuuteen, jota on kierretty haluttuun katselusuuntaan ja suoritetaan yhdistämisoperaatio. Prosessissa tilavuus tehdään tavallaan vaihtelevanvärisestä ja vaihtelevasti peittävästä, puoliläpinäkyvästä geelistä. 558 559 Vokseliluokitus Pohditaan yleisluonteista tapausta, jossa vokseli käsittää yhtä useampaa kudostyyppiä. Vokselit luokitellaan neljään tyyppiin röntgensäteen absorboitumisen mukaan: ilma, rasvakudos, pehmytkudos ja luu. Menetelmä on todennäköisyysluokitus, ja se olettaa vokselissa olevan enintään kahta kudostyyppiä. Täten vokselit voivat sisältää seitsemää tyyppiä: ilmaa, ilmaa ja rasvaa, rasvaa, rasvaa ja pehmytkudosta, pehmytkudosta, pehmytkudosta ja luuta sekä luuta. Sekamuodoissa on mahdollista esiintyä vain kahden naapurikudostyypin muotoja. Esim. ilma ei voi esiintyä luun kanssa. Luokituskaava käyttää paloittain lineaarista todennäköisyysfunktiota kuvan 11.5. mukaan. Käsitellään tällaisen funktion määräämää erityistä ainetta. On erityinen CT luku (computer tomography), joka todennäköisimmin edustaa tätä ainetta (kuva 11.5. (a) piste A). Pisteet B 1 ja B 2 edustavat CT luvun maksimipoikkeamaa, joka luetaan vielä kuitenkin kyseiseksi aineeksi. Muu CT luku, pienempi kuin B 1 tai suurempi kuin B 2, mutta rajojen C 1 ja C 2 välistä, luokitellaan naapuriaineiden sekamuodoksi. Kuvassa 11.5. (b) on koko kaavio. Vokseleille määrätään värit (arvot (R,G,B, )) jonkin kaavan mukaan, ja kahden aineen sekoituksen esiintyessä vokselissa niiden värit sekoitetaan samassa suhteessa. 560 561
Muuntaminen katselusuuntaan Muuntaminen katselusuuntaan on teoreettisesti yksinkertainen tehtävä, mutta tuottaa käytännön vaikeuksia. Kuva 11.6. havainnollistaa tilannetta. Datatilavuutta voidaan kiertää yleisesti mihin suuntaan tahansa, ja pikselisäteiden osuessa kierrettyyn tilavuuteen tarvitaan uudelleennäytteistys ja myös laskostus tulee estää. Yksi tilavuusrenderöinnin päävaihtoehdoista on tapa, jolla tämä tehtävä hoidetaan. Kuva 11.5. Aineen luokitus tietokonetomografiassa: (a) Yhden aineen puolisuunnikasluokitusfunktio. (b) Luokitusfunktiot. Tietokonetomografiassa on järkevää kiertää ainoastaan z akselin suuntaan ( selkärankakierto ) tai x akselin suuntaan ( kuperkeikkakierto ). Täten tilavuuskierto voidaan tehdä kiertämällä kaksiulotteisia tasoja kohtisuorassa näitä akseleita vastaan. 562 563 Pikselien yhdistäminen sädettä pitkin Yksinkertaisin yhdistämisoperaatio (kuva 11.7.) on rekursiivisesti käyttää kaavaa: Tässä ovat: C = C α) + Cα out in (1 Kuva 11.6. Säteenheittäminen merkitsee datan uudelleennäytteistämistä. Säde ei yleisesti leikkaa vokselin keskipistettä. C out vokselista lähtevä koottu väri C in vokselisiin tuleva koottu väri nykyisen vokselin himmeys (läpinäkymättömyys) C nykyisen vokselin väri Värien C out ja C in suunta on takaa eteenpäin suhteessa katselutasoon. Aloitetaan näin katselutasosta kaukaisimpana olevasta vokselista. Tässä mallissa ei ole merkitystä, mistä valo tulee. 564 565
11.3. Puoliläpinäkyvä geeli sekä pinnat Olettaen datatilavuudessa olevan läpinäkymättömiä pintoja täydennetään edeltävää menetelmää sävytyksellä ja esitetään pinnat kuvan osana. Kun vokseli voi sisältää pinnan osan, voidaan laskea normaali ja edelleen sävytyskomponentti normaalin ja valolähteen suunnan funktiona. Sävytyskomponentti voi sitten korvata yhdistämisoperaation C:n. Kuva 11.7. Säteen yhdistäminen. Pintojen muodot havaitaan tavalliseen tapaan valaistusmallin lisätessä yksityiskohdat pintaan. Esiintyy erilaisia vaihtoehtoja. Esim. saatetaan esittää vain ne vokselit, jotka sisältävät luuta yhdessä pinnanmuodon yksityiskohdan kanssa, joka näkyy hämärästi pehmytkudoksen läpi. Luu voidaan sitten tehdä täysin läpinäkymättömäksi tai osittain, jolloin yksityiskohta luun takana on vielä näkyvä. 566 567 Pinta tunnistetaan laskemalla normaali tilavuusgradientin avulla. Normaalin komponentit ovat: N N N x y z = R( x + 1, y, z) R( x 1, y, z) = R( x, y + 1, z) R( x, y 1, z) = R( x, y, z + 1) R( x, y, z 1) Tässä R lasketaan vokseleittain laskemalla yhteen vokselin aineiden prosenttiosuuden ja tiheyden tulot. Jos aine on homogeenista, nämä erot antavat nollan ja päätellään, että kyseinen vokseli ei sisällä pintasegmenttiä. Tämä on esitetty kaaviona kuvassa 11.8. Kuva 11.8. Pinnan tunnistaminen ja sävytys. 568 569
Pinnan olemassaolo määritetään pinnan normaalin suuruuden mukaan. Mitä suurempi se on, sitä todennäköisemmin pinta on olemassa. Pinnan normaalin suuruutta N käytetään painottamaan sävytetyn komponentin osuutta. Pinnan olemassaolosta ei tehdä binääristä eli kyllä ei päätöstä. Sen sijaan pinnan normalisoitu versio lasketaan ja hyödynnetään sävytysyhtälössä esim. Phongin mallin mukaan. Pitää muistaa, että tämä tehdään vain visualisointia varten eikä sillä ole mitään suhdetta fysikaalisen todellisuuteen. Menettelyssä oletettiin jokaisella vokselilla olevan häiritsemätön näköyhteys valolähteeseen, vaikka vokseli sattuisi sijaitsemaan keskellä tilavuutta. Operaation lokaalisuus merkitsee sen herkkyyttä kohinalle. Tätä voidaan parantaa vähentämällä lokaalisuutta. Edellä gradientti laskettiin kuudella naapurivokselilla. Tätä voidaan laajentaa (6+12=) 18 tai jopa (3 3 3 1=) 26 vokseliin. Pinnat sävytetään laskemalla pinnan vokselin normaalin vuorovaikutus valolähteen kanssa. Silloin pinnan muodon yksityiskohta tulee näkyväksi. Joko sävytetty pinta voidaan sisällyttää puoliläpinäkyvän geelin malliin tai voidaan tehdä pinta läpinäkymättömäksi ja poistaa kaikki vokselit, jotka eivät kuulu pintaan. Tällöin pinta, johon säde ensin osuu, näkyy katsojalle. Nämä tilanteet oli esitetty kuvassa 11.8. Olennaista on muistaa pinnan tunnistamisen olevan lokaalista, ja se lasketaan yksittäisille vokseleille. 570 571 Tasa arvopintojen eksplisiittinen poimiminen Jos tilavuusdatan tiedetään sisältävän jatkuvia tasa arvopintoja (isosurfaces), nämä pinnat voidaan poimia eksplisiittisesti ja muuntaa monikulmioverkkorakenteeksi sekä renderöidä tavalliseen tapaan. (Funktiolle f(x,y,z) tasaarvopinta on pinta, joka saadaan implisiittisellä yhtälöllä f(x,y,z)=c ja tässä c on vakio.) Menetelmä löytää yhden tai useamman monikulmion kullekin vokselille ja tuottaa monikulmioiden jatkuvan joukon pinnan käsittävästä vokselijoukosta. Siirtyminen monikulmioihin on mielekästä, koska silloin on käytettävissä monipuolinen välineistö niiden käsittelemiseksi. Menetelmää kutsutaan marssivien kuutioiden algoritmiksi (Lorenson ja Cline 1987). Pinta muodostetaan sovittamalla monikulmio tai monikulmiot kullekin pintaan kuuluvaksi arvioidulle vokselille. Vokseli käsittää kahdeksan kärkeä. Kun oletetaan alussa, että vokseli voi sijaita kahta puolin pintaa, monikulmio voidaan määrätä vokselille tavalla, joka riippuu kärkien arvojen järjestämisestä. Tämä tarkoittaa kärkien jakaumaa, jonka mukaan ne ovat sisä tai ulkopuolella kahdeksan kärjen muodostaman kuution yläpuolella olevaan tasoon nähden. Määrätyin oletuksin voidaan laskea 2 8 =256 erilaista mahdollisuutta. Symmetrian takia määrää voidaan vähentää ainoastaan 15 vaihtoehtoon, jotka on esitetty kuvassa 11.9. 572 573
Jokaisen monikulmion lopullinen paikka ja suunta määrätään kullekin vokselityypille kärkien avulla. Muodostetaan pinta, joka sisältää tavallisen monikulmioverkon. Menetelmä saattaa joskus hairahtua virheeseen olettaen, että naapurivokseleissa esiintyy jokin pinta. Tällöin se saattaa tuottaa pinnan palojen väliin, jossa ei sellaista pitäisi olla. Kyseessä on siis binääripäätös, joka voi olla virheellinen. Menetelmän toinen ongelma voi olla primitiivien suuri määrä, jopa miljoonia, jolloin lukuisat niistä projisoituvat samoille pikseleille. Kuva 11.9. Marssivien kuutioiden algoritmin 15 mahdollisuutta. Kuutiossa oleva piste vastaa kärkeä, joka on pinnan sisäpuolella. Esimerkkejä on vielä kuvissa 11.10. ja 11.11. 574 575 Kuva 11.10 Tietokonetomografiakuvalle sovellettu marssivien kuutioiden algoritmia. Kuva 11.11. Edellisen kuvan dataa käyttäen renderöity asettamalla luuvokselit ykkösiksi ja muut nolliksi. 576 577