Кіріспе

3D CAD/CAM қатты модельдеу және бейнелеудің әдістемелік негізі Сәулелік құю 3D CAD/CAM қатты модельдеу және бейнелеудің әдістемелік негізі болып табылады. Бұл компьютерлік графикадағы сәулелерді іздеумен ұқсас, онда виртуалды жарық сәулелері камераның фокустық нүктесінен камера сенсорының әрбір пикселі арқылы 3D сахнадағы сәуле бойымен өтеді, осы сәуле бойында не көрінетінін анықтайды. "Сәулелік құю" терминін 1978–1980 жылдары General Motors Research Labs-те жұмыс істеген Скот Рот енгізген. Оның "Қатты денелерді модельдеу үшін сәулелік құю" атты мақаласында блоктар мен цилиндрлер сияқты қарапайым денелерді біріктіру арқылы модельделген қатты денелерді сипаттайды, жиынтық операторлар – одақ (+), қиылыс (&) және айырмашылық (–) қолданылады. Осы екілік операторларды қатты денелерді модельдеу үшін пайдалану идеясы негізінен Рочестер университетіндегі Воэлькер және Рекишаның геометриялық модельдеу тобына қатысты. Қатты модельдеу әдістерінің толық шолуы үшін қатты модельдеуге қараңыз. Оң жақтағы суретте 1979 жылы Роттың сәулелік құю жүйесін пайдаланып, екілік ағашта цилиндрлер мен блоктардан құралған U-түйіндісі көрсетілген. Сәулелік құюдан (және сәулелерді іздеуден) бұрын компьютерлік графика алгоритмдері 3D әлемнен беттерді немесе жиектерді (мысалы, сызықтарды) бейне жазықтығына проекциялап, көріну логикасын қолданды. Әлемнен бейне жазықтығына проекциялау – 3D гомогенді координаталар жүйесінің түрленуі (әрі қарай 3D проекциясы, аффиндік түрлену немесе проекциялық түрлену (гомография) деп аталады). Осылайша бейнені көрсету жасырын беттерді/шегін алып тастаумен қиындық тудырады. Сонымен қатар, қисық беттердің силуэттерін нақты есептеу қажет, ал сәулелік құюда бұл нәтиже автоматты түрде шығады, сондықтан көрініс өзгерген сайын оны есептеудің қажеті жоқ. Сәулелік құю 3D нысандар мен көріністердің бейнесін көрсетуді жеңілдетті, өйткені сызық сызық ретінде өзгереді. Сондықтан, 3D көріністегі қисық жиектер мен беттерді 2D бейне жазықтығына проекциялаудың орнына, түрлендірілген сызықтар (сәулелер) көріністегі нысандармен қиылысады. Гомогенді координаталар түрлендіруі 4x4 матрицамен көрсетіледі. Бұл математикалық әдіс компьютерлік графика мен геометриялық модельдеуде кеңінен қолданылады. Түрлендірулерге үш осьтің айналысында бұру, осьтер бойымен тәуелсіз масштабтау, 3D кеңістікте аудару және тіпті қисайту кіреді. Түрлендірулерді матрицалық арифметика арқылы оңай біріктіруге болады. 4x4 матрицамен жұмыс істеу үшін нүкте [X, Y, Z, 1] түрінде, ал бағыт векторы [Dx, Dy, Dz, 0] түрінде көрсетіледі. (Төртінші мүше аудару үшін қолданылады және бағыт векторларына қатысты емес.)

Кіру-шығу сәулелерінің жіктелуі

Бұл суретте + және – операторларын қолдана отырып, құрама ағаштағы екілік операторлардың мысалы көрсетілген, мұнда бір сәуле есептеледі. Сәуле тастау процедурасы қатты денелер құрамының жоғарғы бөлігінен басталады, рекурсивті түрде төмен қарай түседі, сәулені бастапқы қатты денелерге қатысты жіктейді, содан кейін сол және оң тармақтардың жіктемелерін біріктіре отырып, ағашқа қайта оралады. Бұл суретте барлық үш екілік оператор үшін сол және оң жіктемелердің қалай біріктірілетіні көрсетілген.

Алмастыруға қарсы

Алиазингтің тігізді жиектері нүктелік үлгі алу әдістерінің жағымсыз әсері болып табылады және растрлық дисплей алгоритмдерінің классикалық мәселесі болып табылады. Түзу немесе тегіс қисық жиектер тігізді болып көрінеді және анимацияда әсіресе көзге жағымсыз, себебі кескіннің қозғалысы жиектерді бұлыңғыр немесе кішкентай жылжымалы эскалаторлар сияқты көрсетуі мүмкін. Сонымен қатар, сәулелер арасындағы аралықтан кішірек бөлшектер жоғалуы мүмкін. Сызық сызбаларындағы тігізді жиектерді жиектерді бақылап тегістеуге болады. Мұндай алгоритмнің мақсаты – суретті бір пикселдік дәлдікпен салу үшін қажетті сызықтар санын азайту. Осы арқылы тегіс жиектерге қол жеткізіледі. Жоғарыдағы сызық суреттері осылай салынған. Көлденеңделген суреттегі тігізді жиектерді субпикселдік дәлдікпен тегістеу үшін, жиектер туралы ақпарат алу үшін қосымша сәулелер жіберу қажет. (Жалпы тәсіл үшін Суперсамплингке қараңыз.) Жиектер беттердің қиылысуынан немесе қисық беттің контурынан пайда болады. Жоғарыда сипатталғандай, екілік іздеу арқылы "Когеренттілік" принципін қолдану арқылы, егер (X, Y) пикселіндегі көрінетін бет (X+1, Y) пикселіндегі көрінетін беттен өзгеше болса, онда арасында (X+½, Y) орналасқан сәуле жасалып, сол жердегі көрінетін бет анықталуы мүмкін. Ұлгілік нүктелер арасындағы қашықтықты одан әрі бөлуге болады, бірақ іздеудің тереңдігіне қатысты шектеулер жоқ. Тігізді жиектерді тегістеу үшін іздеу тереңдігі жиектің бойымен интенсивтілік градиентіне байланысты. (1) Жиектерді қамтитын кескіннің ауданы әдетте жалпы аумақтың шағын бөлігін құрайды және (2) екілік іздеулерде жіберілетін қосымша сәулелердің тереңдігі – жиектерді құрайтын көрінетін примитивтермен шектеледі, сондықтан тігізді жиектерді тегістеуге кететін шығын қолжетімді.

Жарық құю тарихы

Жарық құю тарихы үшін, жарық іздеу (графика) мақаласын қараңыз, себебі екеуі де әртүрлі атаулармен бірте-бірдей техника болып табылады. Скот Рот "жарық іздеу" терминін естігенге дейін "жарық құю" терминін ойлап тапқан. Сонымен қатар, Скотт Роттың GM Research Labs зертханасында жарық құюды дамытуы, Тернер Уитттің Bell Labs зертханасында жарық іздеу жұмысымен бір уақытта жүрді.

Алғашқы компьютерлік ойындардағы сәулелі құрам

Алғашқы бірінші тұлға ойындарында, raycasting 3D әлемін 2D ойын алаңынан экранның көлденең ені бойынша қарапайым бір өлшемді сканерлеу арқылы тиімді көрсету үшін қолданылды. Алғашқы бірінші тұлғадан ату ойындары 2D әлемнен 3D әсерін жасау үшін 2D сәулелік құюды пайдаланды. Әлем 3D болып көрінсе де, ойыншы жоғары немесе төмен қарай қарауға немесе қиылыс бұрмалануымен шектеулі бұрыштарда ғана қарауға мүмкіндік алады. Бұл көрсету стилі қазіргі заманғы ойын қозғалтқыштарындағыдай кадрдағы әр пиксел үшін сәуле жіберу қажеттілігін жояды; соққы нүктесі табылғаннан кейін проекция бұрмалануы беттік текстураға қолданылады және нәтижеден тік бағанның толық бөлігі кадрға көшіріледі. Бұл көрсету стилі сонымен қатар қолданылатын көрсету түрлеріне шектеулер қояды, мысалы, тереңдік бойынша сұрыптау мүмкін, бірақ тереңдік буферлеуі мүмкін емес. Яғни, көпбұрыштар бір-бірінің алдында немесе артында толығымен орналасуы керек, олар жартылай жабыса алмайды немесе қиылыса алмайды.

Вольфенштейн 3D

Wolfenstein 3D видеоойыны біркелкі биіктіктегі қабырғалардың, біркелкі түсті едендер мен төбелердің квадраттық тор желісінен құрылған. Әлемді көрсету үшін, экран пикселдерінің әрбір бағаны үшін бір сәуле жүргізілді және қабырға текстурасының тік қимасы таңдалып, сәуле әлемде қабырғаға қай жерде соғылып, соғысқанға дейін қанша қашықтықты жүріп өткеніне қарай масштабталды. Торға негізделген деңгейлердің екі мақсаты болды – сәуленің қабырғамен соқтығысуын жылдам табуға болады, себебі соқтығысу мүмкіндіктері болжамды болады, сондай-ақ жадтың көлемі азаяды. Дегенмен, кең ашық кеңістіктерді кодтау үшін қосымша орын қажет.

Көлеңкелі шаңдаушы

Raven Software ойыны ShadowCaster, Wolfenstein негізіндегі жақсартылған ойын қозғалтқышын пайдаланады, соған едендер мен төбелер текстуралары қосылған және қабырғалардың биіктігі өзгертіледі.

Команч сериясы

NovaLogic компаниясы Comanche ойындары үшін жасаған Voxel Space қозғалтқышы экран пикселдерінің әр бағанынан сәулені өткізіп, оны биіктік картасындағы нүктелермен тексерді. Содан кейін биіктік картасының әрбір элементін пикселдер бағанына түрлендіріп, қандайлары көрінетінін (яғни, алдыңғы жағына салынған пикселдермен жабылмағандарын) анықтап, текстура картасынан сәйкес түстермен салды.

Жарық шығарудан тыс

Кейінгі DOS ойындары, мысалы id Software-дің DOOM-ы, жылдамдық үшін көптеген raycasting 2.5D шектеулерін сақтап қалды, бірақ олар баламалы рендерлеу техникаларына (BSP сияқты) көшіп, енді raycasting қозғалтқыштары болмай қалды.

Есептеу геометриясының параметрлері

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