Кіріспе

3D модельделген нысан немесе дерек жиынтығын 2D проекция ретінде бейнелеу

[[Рендеринг (компьютерлік графика)]]

Ғылыми визуализация және компьютерлік графикада көлемді рендеринг – 3D дискретті үлгіленген дерек жиынтығының, әдетте 3D скалярлық өрістің 2D проекциясын көрсету үшін қолданылатын әдістер жиынтығы. Типтік 3D дерек жиынтығы – КТ, МРТ немесе МикроКТ сканері арқылы алынған 2D кесінділер тобы. Әдетте олар реттелген үлгіде алынады (мысалы, әр миллиметр тереңдікке бір кесінді) және әдетте реттелген үлгідегі белгілі бір сандағы бейне пиксельдерін қамтиды. Бұл – әр көлем элементі немесе воксел қоршаған тікелей аймақтан алынған бір мәнмен бейнеленген реттелген көлемдік тордың мысалы. 3D дерек жиынтығының 2D проекциясын көрсету үшін алдымен көлемге қатысты кеңістіктегі камераны анықтау қажет. Сонымен қатар, әр вокселдің мөлдірлігі мен түсін анықтау керек. Бұл әдетте RGBA (қызыл, жасыл, көк, альфа) беру функциясы арқылы анықталады, ол әр мүмкін вокселдік мән үшін RGBA мәнін анықтайды. Мысалы, көлемді изожа беттерді (бірдей мәндердегі беттер) көлемнен бөліп алып, оларды көпбұрышты торлар ретінде көрсету арқылы немесе көлемді тікелей дерек блогы ретінде көрсету арқылы қарастыруға болады. «Маршпен жүретін кубтар» алгоритмі – көлемдік деректерден изожа бетін алудың көп қолданылатын әдісі. Тікелей көлемді рендеринг – есептеу жағынан күшті тапсырма, оны бірнеше тәсілмен орындауға болады. Көлемді рендерингтің тағы бір әдісі – сәулемен жүру.

Қолданылу аясы

Көлемді рендеринг жұқа кесінді томографиялық бейнелеулерден және 3D модельдердің проекцияларынан, соның ішінде максималды интенсивтілік проекциясынан ерекшеленеді. Бірақ, техникалық тұрғыдан алғанда, барлық көлемді рендерлер 2 өлшемді дисплейде көрсетілгенде проекцияға айналады, сондықтан проекциялар мен көлемді рендерлер арасындағы шекара шамалы тұманды. Дегенмен, көлемді рендеринг модельдерінің ең жақсы мысалдары шынайы және/немесе көрінетін бейнелерді жасау үшін, мысалы, түс және көлеңке берудің үйлесімін пайдаланады.

Тiкелей көлемдiң рендерингi

Тікелей көлемді рендерлеуге әрбір үлгілік мәнді мөлдірлікке және түске бейімдеу қажет. Бұл "көшіру функциясы" арқылы жасалады, ол қарапайым градиент, кесімдік сызықтық функция немесе кез келген кесте болуы мүмкін. RGBA түс моделіне (қызыл, жасыл, көк, альфа) түрлендірілгеннен кейін, құрастырылған RGBA нәтижесі кадр буферінің сәйкес пикселіне проекцияланады. Бұл рендерлеу техникасына байланысты. Осы техникалардың комбинациясы мүмкін. Мысалы, қималық деформацияны іске асыру экрандық буфердегі сәйкестендірілген қималарды салу үшін текстуралық аппаратты қолдануы мүмкін.

Көлемді сәулемен құю

Көлемдік сәуле құю техникасын тікелей рендеринг теңдеуінен шығаруға болады. Ол өте жоғары сапалы нәтижелерді қамтамасыз етеді, әдетте ең жақсы бейне сапасы ретінде қарастырылады. Көлемдік сәуле құю – бейнеге негізделген көлемді көрсету техникасы болып саналады, себебі есептеулер кіріс көлемдік деректерден емес, шығыс бейнеден басталады, бұл объектіге негізделген техникалардағыдай емес. Бұл техникада әрбір қажетті бейне пикселі үшін сәуле жасалады. Камераның қарапайым моделін пайдаланып, сәуле камераның проекция ортасынан (әдетте көз нүктесінен) басталып, камера мен көрсетілетін көлем арасында орналасқан жорамал бейне жазықтығындағы бейне пикселі арқылы өтеді. Уақытты үнемдеу үшін сәуле көлемнің шекараларымен қиылысады. Содан кейін сәуле көлемнің бойымен үлгі алынады, бұл үлгілердің аралығы тұрақты немесе бейімделмелі болуы мүмкін. Деректер әрбір үлгілік нүктеде интерполяцияланады, RGBA үлгісін құру үшін трансфер функциясы қолданылады, үлгі сәуледе жинақталған RGBA-ға қосылады, және сәуле көлемнен шыққанға дейін процесс қайталанады. RGBA түсі RGB түсіне түрлендіріліп, сәйкес келетін бейне пикселіне орналастырылады. Экрандағы әрбір пиксел үшін осы процесс қайталанып, толыққанды бейне құрылады.

Сплэттеу

Бұл жылдамдық үшін сападан құрбан болатын техника. Мұнда, Ли Вестовер айтқандай, әр көлемдік элемент қар добы сияқты, көру жазықтығына арттан алға қарай шашыратылады. Бұл шашыраулар дисктер түрінде көрсетіледі, олардың қасиеттері (түсі және мөлдірлігі) нормальды (Гаусс) үлгіде диаметрлік түрде өзгереді. Қолданылуына қарай, жалпақ дисктер және басқа да қасиеттері бөлек үлестірілген дисктер де қолданылады.

Қалқаның созылуы

Көлденең қималау арқылы көлемдік көрсету әдісі Камерон мен Ундрилл тарапынан әзірленді, ал Филипп Лакрут пен Марк Левой оны кеңінен танымал етті. Бұл техникада көру трансформациясы өзгертіледі, сонда көлемнің ең жақын беті пікселдерге белгілі бір масштабпен (воксельдерге шаққанда) экраннан тыс бейне деректері буферімен ось бойымен сәйкестендіріледі. Содан кейін көлем осы буферге жадыны тиімді пайдалану және тұрақты масштабтау мен араластыру коэффициенттерін қолдана отырып көрсетіледі. Көлемнің барлық тілімдері көрсетілгеннен кейін, буфер қажетті бағытта бұрылып, көрсетілетін кескінде масштабталады. Бұл әдіс бағдарламалық қамтамасыз етуде салыстырмалы түрде жылдам, бірақ сәулелік проекцияға қарағанда үлгілеудің дәлдігі төмендеуі және кескін сапасы нашарлауы мүмкін. Көлемнің бірнеше көшірмесін сақтау үшін қосымша жад қажет, бұл көлемді оське жақын орналастыруға мүмкіндік береді. Бұл қосымша шығындарды деректерді жинастыру арқылы азайтуға болады.

Текстуралық көлемді көрсету

Көптеген 3D графикалық жүйелер геометриялық нысандарға суреттерді немесе текстураларды қолдану үшін текстуралық бейнелеуді пайдаланады. Тұтынушылық компьютерлік графикалық карталар текстуралауда жылдам және нақты уақыт әрекеттесу мүмкіндіктерімен 3D көлемнің тілімдерін тиімді көрсетуге қабілетті. Жұмыс станциясының графикалық процессорлары одан да жылдам және медициналық бейнелеу, мұнай және газ салалары және басқа да нарықтарда (2007 ж.) қолданылатын өндірістік көлемді визуализациялаудың негізін құрайды. Алдыңғы жылдары Silicon Graphics InfiniteReality, HP Visualize FX графикалық үдеткіші және басқалар сияқты графикалық жүйелерде арнайы 3D текстуралық бейнелеу жүйелері қолданылған. Бұл техниканы алғаш рет Билл Хиббард пен Дейв Сантек сипаттаған. Бұл тілімдер көлеммен сәйкестіріліп, көрерменге белгілі бұрышпен көрсетілуі мүмкін, немесе көру жазықтығымен сәйкестіріліп, көлем арқылы сәйкес келмейтін тілімдерден үлгі алынуы мүмкін. Екінші техника үшін 3D текстураларды қолдайтын графикалық жабдық қажет. Көлемге сәйкестірілген текстуралау лайықты сападағы суреттерді тудырады, бірақ көлемді айналдырғанда көрінетін өтелу жиі болады.

Жабдықпен жеделдетілген көлемді көрсету

Тікелей көлемді рендерингінің өте параллель табиғатынан туындап, GPU көлемді рендерингі жеткілікті жылдамдыққа ие болғанға дейін, арнайы мақсаттағы көлемді рендеринг аппараттық құралдары зерттеудің маңызды саласы болды. Ең көп сілтеме жасалған технология – Ханспетер Пфистер және Mitsubishi Electric Research Laboratories ғалымдары әзірлеген VolumePro нақты уақыт сәуле шығару жүйесі, ол сәуле шығару алгоритмін қолдану үшін жоғары жад ені және тікелей есептеулерді пайдаланды. Технология TeraRecon, Inc. компаниясына берілді, және ASIC-тің екі буыны өндіріліп сатылды. VP1000 2002 жылы, ал VP2000 2007 жылы шығарылды. Дәстүрлі көлемді рендеринг алгоритмдерін, мысалы, сәуле шығаруды жеделдету үшін жақында қолданылатын әдіс – қазіргі заманғы графикалық карталарды пайдалану. Бағдарламаланатын пиксельдік шейдерлерден бастап, адамдар бірнеше пиксельдегі параллель операциялардың күшін танып, графикалық процессорларда (GPGPU) жалпы мақсаттағы есептеулерді орындауға кірісті. Пиксельдік шейдерлер бейне жадынан кездейсоқ түрде оқи және жаза алады, сондай-ақ қарапайым математикалық және логикалық есептеулерді жүзеге асыра алады. Бұл SIMD процессорлары көпбұрыштарды көрсету және сигналды өңдеу сияқты жалпы есептеулерді орындау үшін қолданылды. Соңғы GPU ұрпақтарында пиксельдік шейдерлер енді 1 ГБ дейін текстуралық жадты пайдалана отырып, қозғалатын нүктелік форматтармен MIMD процессорлары ретінде жұмыс істей алады (қазіргі таңда тәуелсіз тармақтану мүмкіндігіне ие). Мұндай қуатпен, параллель орындала алатын кез келген қадамды алгоритм, мысалы, көлемді сәуле шығару немесе томографиялық реконструкция, үлкен жылдамдықпен орындалуы мүмкін. Бағдарламаланатын пиксельдік шейдерлер жарық, көлеңке, шағылыс, сәуле шығару түсі және т.б. сипаттамаларының өзгеруін модельдеу үшін пайдаланылуы мүмкін. Мұндай модельдеулер жоғары деңгейдегі көлеңкелеу тілдерін қолдану арқылы жазылуы мүмкін.

Оптимизациялау әдістері

Оптимизацияның басты мақсаты – мүмкіндігінше көп көлемді игнорилеу. Типикалық медициналық деректер жиынтығы 1 ГБ көлемде болуы мүмкін. Оны 30 кадр/секундтық жылдамдықпен көрсету үшін өте жылдам жад шинасы қажет. Вокселдерді өткіріп жіберу дегеніміз, өңдеуге аз ақпарат қажет дегенді білдіреді.

Бос орынды ысырып тастау

Көбінесе көлемді рендеринг жүйесінде көзге көрінбейтін материалды қамтымайтын көлемнің аймақтарын анықтауға арналған жүйе болады. Бұл ақпарат осы мөлдір аймақтарды рендерингтен шығару үшін пайдаланылуы мүмкін.

Жарықтарды ерте тоқтату

Бұл көлемді алдыңғы жағынан артқы жағына қарай көрсету кезінде қолданылатын техника. Пиксел арқылы өтетін сәуле үшін, жеткілікті тығыз материалға тап болғаннан кейін, одан арғы үлгілер пикселге маңызды үлес қоспайды, сондықтан оларды ескермеуге болады.

Октри және BSP кеңістікті бөлу

Октри және BSP ағашы сияқты иерархиялық құрылымдарды қолдану көлемдік деректерді сығыуға және көлемдік сәуле тастау процесінің жылдамдығын арттыруға өте көмектеседі.

Көлемді сегменттеу

Суретті сегменттеу – рендеринг алдында қызығушылық тудырмайтын көлемнің үлкен бөліктерін бөліп шығаруға арналған қолмен немесе автоматты процедура. Бұл арқылы сәулелерді шығару немесе текстураны біріктіру кезіндегі есептеулер көлемі айтарлықтай қысқартылады. Мұндай қысқарту n тізбекпен индекстелген вокселдер үшін O(n) көрсеткішін O(log n) көрсеткішіне дейін төмендетуге мүмкіндік береді. Көлемді сегменттеу басқа сәулелерді іздеу алгоритмдері үшін де маңызды өнімділік артықшылықтарын ұсынады. Көлемді сегменттеуді кейіннен қызығушылық тудыратын құрылымдарды бөліп көрсету үшін пайдалануға болады.

Көп және бейімделетін ажыратуды көрсету

Көлемнің аз қызығушылық тудыратын аймақтарын төменгі ажыратымдылықта көрсету арқылы деректерді енгізуге кеткен шығындарды азайтуға болады. Жақын зерттеуде, осы аймақтардағы деректер жадтан немесе дискіден оқу арқылы немесе интерполяциялау арқылы толтырылуы мүмкін. Төменгі ажыратымдылықтағы көлем, түпнұсқадан 2D мип картасы жасалған сияқты, кішірек өлшемге қайта үлгіленеді. Бұл кіші көлемдер көлемді жаңа бағытқа бұру кезінде дербес түрде де қолданылады.

Алдын ала интеграцияланған көлемді рендеринг

Алдын ала интеграцияланған көлемді көрсету – қажетті деректердің көп бөлігін алдын ала есептеу арқылы үлгі алу артефакттарын азайтатын әдіс. Бұл әсіресе аппараттық үдетілген қолданбаларда тиімді, себебі өнімділікке елеулі әсер етпей сапаны жақсартады. Көптеген басқа оптимизациялардан өзгеше, бұл воксельдерді өткіріп жібермейді. Керісінше, воксельдер аймағын дәл көрсету үшін қажетті үлгілер санын азайтады. Мұндағы идея – үлгілердің өзі емес, олардың арасындағы интервалдарды көрсету. Бұл техника, мысалы, бұлшықеттен сүйекке өту сияқты, қарқынды өзгеріп отыратын материалды аз есептеулермен түсіруге мүмкіндік береді.

Суретке негізделген желі

Суретке негізделген торлау – есептеу талдауы мен жобалау (мысалы, CAD, CFD және FEA) үшін 3D бейне деректерінен (МРТ, КТ, индустриялық КТ немесе микротомография сияқты) компьютерлік модельдерді автоматты түрде құру процесі.

Вокселдерді уақытша қайта пайдалану

Толық дисплей көрінісі үшін, тек бір воксель пикселге (алдыңғысы) көрсетілуі керек (суретті тегістеу үшін көбірек қолданылса да), егер анимация қажет болса, көрсетілетін алдыңғы воксельдер кэште сақталып, камера қозғалғанда олардың орналасуы қайта есептелуі мүмкін. Егер дисплейдегі воксельдер барлық пиксельдерді жабуға тым алыс кетсе, сәуле тарату (ray casting) немесе ұқсас әдіспен жаңа алдыңғы воксельдерді табуға болады, ал егер бір пикселде екі воксель болса, алдыңғысы сақталады.