Кіріспе

Компьютерлік графикада, рефлексиялық бейнелеу немесе қоршаған ортаны бейнелеу – алдын ала есептелген текстура арқылы рефлексиялы беттің көрінісін шамалау үшін сурет негізіндегі тиімді жарықтандыру әдісі. Текстура рендерингіге түсетін объектінің айналасындағы алыс қоршаған ортаның суретін сақтау үшін қолданылады. Қоршаған ортаны сақтаудың бірнеше тәсілдері қолданылды. Алғашқы тәсіл – шар тәрізді бейнелеу, онда бір текстура шар тәрізді айнаға шағылысқан айналасының суретін қамтиды. Бұл тәсіл көбінесе текшелі бейнелеумен алмастырылды, онда қоршаған орта текшенің алты жағына проекцияланады және алты шаршы текстура ретінде сақталады немесе бір текстураның алты шаршы аймағына жиырылады. Басқа проекциялар, математикалық немесе есептеулік қасиеттері жағынан артықшылықтары бар, оларға параболоидты бейнелеу, пирамидалық бейнелеу, октаэдрлік бейнелеу және HEALPix бейнелеу жатады. Рефлексиялық бейнелеу – бұл бейнелеудің бірнеше тәсілдерінің бірі, мысалы, экран кеңістігіндегі рефлексиялар немесе сәулелерді іздеу, жарық сәулесінің траекториясын есептеу арқылы нақты рефлексияны есептейді. Пикселдің көлеңкесін есептеуде қолданылатын рефлексия түсі объектінің нүктесіндегі рефлексия векторын есептеу және оны қоршаған орта бейнесіндегі текселге сәйкестендіру арқылы анықталады. Бұл тәсіл көбінесе сәулелерді іздеу арқылы алынған нәтижелерге ұқсас нәтижелерді береді, бірақ одан аз есептеу шығындарына ие, себебі рефлексияның сәулесін есептеу үшін инциденция және рефлексия бұрыштарын есептеу және содан кейін текстураны іздеу жеткілікті, ал сәулелерді іздеуге қарағанда сахна геометриясына қарсы сәулені бағыттап, оның сәулелік қарқындылығын есептеу GPU жүктемесін азайтады. Дегенмен, көбінесе бейнеленген рефлексия нақты рефлексияның жуық шамасы ғана болады. Қоршаған ортаны бейнелеу екі шартқа сүйенеді, олар көбінесе орындалмайды: көлеңкеленген объектіге түсетін барлық жарық шексіз қашықтықтан келеді. Егер бұл жағдай орындалмаса, жақын жердегі геометрияның рефлексиясы рефлексияланған объектіде дұрыс емес жерде пайда болады. Мұндай жағдайда рефлексияда параллакс байқалмайды. Көлеңкеленетін объекті дөңес болып табылады, яғни өзіндік рефлексиялары жоқ. Егер бұл жағдай орындалмаса, объект рефлексияда көрінбейді, тек қоршаған орта ғана көрінеді. Қоршаған ортаны бейнелеу әдетте рефлексиялы бетті бейнелеудің ең жылдам тәсілі болып табылады. Бейнелеу жылдамдығын одан әрі арттыру үшін бейнелеуші әрбір төбеде рефлексияланған сәуленің орнын есептеуі мүмкін. Содан кейін, бұл позиция төбеге тіркелген көпбұрыштар арқылы интерполяцияланады. Бұл әрбір пикселдің рефлексия бағытын қайта есептеу қажеттілігін жояды. Егер қалыпты бейнелеу қолданылса, әрбір көпбұрышқа көптеген беттік қалыптар (көпбұрыштың берілген нүктесіне қараған бағыт) болады, оларды қоршаған орта бейнесімен бірге қолдану арқылы шынайы рефлексияны жасауға болады. Бұл жағдайда көпбұрыштың берілген нүктесіндегі рефлексия бұрышы қалыпты бейнелеуді ескереді. Бұл тәсіл басқаша жалпақ бетті, мысалы, толқынды металл немесе щеткаланған алюминийді текстуралы етіп көрсету үшін қолданылады.

Сфераны карталау

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

Күштік карталау

Куб карталары және басқа полиэдр карталары сфералық карталардың күшті бұрмалану мәселесін шешеді. Куб карталары дұрыс жасалып, сүзгіленген жағдайда, көзге көрінбейтін тігістері болмайды және картаны түсіретін, көбінесе виртуалды камераның көзқарасына тәуелсіз қолданылуы мүмкін. Куб және басқа полиэдр карталары көптеген компьютерлік графика қолданбаларында сфералық карталарды ығыстырды, сурет негізінде жарықтандыруды алудан басқа. Сурет негізінде жарықтандыруды параллакс түзетілген куб карталары арқылы жасауға болады. Әдетте, куб карталарында сыртқы рендерингтерде қолданылатын skybox пайдаланылады. Куб картасы арқылы шағылыс жасау үшін, объектіге қарап тұрған вектор анықталады. Бұл камера сәулесі, камера векторының объектімен қиылысқан жеріндегі беттік нормальға қатысты шағылыстырылады. Нәтижесінде шағылысқан сәуле куб картасына жіберіледі, ол жарықтандыру есептеуінде қолданылатын сәулелену мәнін беретін текселді алады. Бұл объектінің шағылыстыратын сипаттамасын құрайды.

HEALPix картасы

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

Тарих

1974 жылы Эдвин Кэтмалл математикалық анықтамасымен тікелей жұмыс істейтін "екі өтімді бет жапсырмаларының кескіндерін көрсету" алгоритмін жасады. 1975 жылы Буи Туонг Фонг, ал кейіннен 1976 жылы қоршаған ортаны карталауды (environment mapping) дамытқан Джеймс Блинн мен Мартин Ньюэлл осы алгоритмдерді зерттеп, құжаттады; Кэтмаллдың бастапқы алгоритмдерін жетілдірген осы жетістіктер оларды "осы жалпыламалар үлгілер мен текстураларды жасаудың жақсартылған тәсілдеріне әкеледі" деген қорытындыға жеткізді. Джин Миллер 1982 жылы MAGI-де сфералық ортаны карталаумен тәжірибе жүргізді. Вольфганг Хайдрих 1998 жылы параболоидты карталауды (Paraboloid Mapping) енгізді. Эмиль Праун 2003 жылы октаэдрлік карталауды (Octahedron Mapping) енгізді. Мауро Штейгледер 2005 жылы пирамидалық карталауды (Pyramid Mapping) енгізді. Тиен Цин Вонг және авторлар тобы 2006 жылы рендеринг үшін қолданыстағы HEALPix картасын енгізді.