Кіріспе

Компьютерлік графиканың ішкі саласы. Нақты уақыт компьютерлік графикасы немесе нақты уақыт рендерингі – компьютерлік графиканың бейнелерді нақты уақытта жасауға және талдауға бағытталған ішкі саласы. Бұл термин қолданбаның графикалық пайдаланушы интерфейсін (GUI) көрсетуден бастап, нақты уақыт бейне талдауға дейін кез келген нәрсені білдіре алады, бірақ көбінесе графикалық процессорды (GPU) пайдаланатын интерактивті 3D компьютерлік графикаға қатысты қолданылады. Бұл ұғымға мысал – жылдам өзгеріп отыратын 3D ортаны жылдам рендерингі арқылы қозғалыс иллюзиясын тудыратын бейне ойын. Компьютерлер өзінің пайда болуынан бері қарапайым сызықтар, суреттер және көпбұрыштар сияқты 2D бейнелерді нақты уақытта жасауға қабілетті болды. Дегенмен, егжей-тегжейлі 3D нысандарды жылдам рендерингі дәстүрлі Фон Нейман архитектурасына негізделген жүйелер үшін қиын міндет. Бұл мәселені шешудің ерте жолы – 3D графикті имитациялайтын 2D суреттерді, яғни спрайттарды пайдалану болды. Қазір сәулелік іздеу және растерлеу сияқты рендерингтің әртүрлі әдістері бар. Осы әдістер мен жетілдірілген аппараттық құралдарды пайдалана отырып, компьютерлер пайдаланушының енгізуімен бір мезгілде қозғалыс иллюзиясын тудыратын жылдамдықпен бейнелерді рендерингілей алады. Бұл пайдаланушының рендерингіленген бейнелерге нақты уақытта жауап беруіне, интерактивті тәжірибе алуына мүмкіндік береді.

Реалдық уақыт режимімен 3D компьютерлік графиканың қағидаттары

Компьютерлік графиканың мақсаты – белгілі бір қажетті өлшемдерді пайдалана отырып, компьютерлік бейнелерді немесе кадрларды жасау. Мұндай өлшемдердің бірі – берілген секундта жасалатын кадрлар саны. Нақты уақыт компьютерлік графикалық жүйелер дәстүрлі (яғни, нақты емес уақыт) рендеринг жүйелерінен ерекшеленеді, себебі нақты емес уақыт графикалық жүйелер көбінесе сәулелерді іздеуге негізделеді. Бұл процесте камерадан әлемге миллиондаған немесе миллиардтаған сәулелер жіберіліп, егжей-тегжейлі бейнелену үшін іздестіріледі. Бұл қымбат операция бір кадрды жасауға бірнеше сағат немесе күндер қажет етеді. Нақты уақыт графикалық жүйелері әрбір суретті секундының 1/30-нан кем уақытында көрсетуі керек. Сәулелерді іздеу осы жүйелер үшін тым баяу; оның орнына олар z-буферлік үшбұрыштарды растрлеу әдісін қолданады. Бұл әдісте әрбір нысан жеке примитивтерге, әдетте үшбұрыштарға бөлінеді. Әрбір үшбұрыш экранда орналастырылып, бұрылып және масштабталады, ал растрлеу аппараттық құралдары (немесе бағдарламалық эмулятор) әрбір үшбұрыштың ішінде пиксельдерді жасайды. Бұл үшбұрыштар атомдық бірліктерге – фрагменттерге бөлінеді, олар экранға көрсетуге жарамды. Фрагменттер бірнеше қадаммен есептелетін түс арқылы экранға салынады. Мысалы, текстура сақталған бейне негізінде үшбұрышты "бояу" үшін қолданылуы мүмкін, содан кейін көлеңкелік бейнелеу жарық көздеріне қарап үшбұрыштың түсін өзгерте алады.

Видео ойындар графикасы

Нақты уақытты графика бейне сапасын уақыт және аппараттық шектеулерге сәйкес оңтайландырады. GPU және басқа да жетістіктер нақты уақытты графиканың өндіре алатын бейне сапасын арттырды. GPU бір кадрда миллиондаған үшбұрыштарды өңдеуге қабілетті, ал қазіргі DirectX/OpenGL класындағы аппараттар көлеңкелер, қозғалыс бұлыңғырлығы және үшбұрыштарды жасау сияқты күрделі эффекттерді нақты уақытта жасауға мүмкіндік береді. Нақты уақытты графиканың дамуы нақты ойын графикасы мен видео ойындарда дәстүрлі түрде кездесетін алдын ала көрсетілген видеоаралық сахналар арасындағы прогрессивті жақсартуларда көрінеді. Видеоаралық сахналар әдетте нақты уақытта көрсетіледі және олар интерактивті болуы мүмкін. Нақты уақытты графика мен дәстүрлі офлайн графика арасындағы сапа айырмашылығы азайып бара жатқанмен, офлайн көрсету әлдеқайда дәл болып қала береді.

Артықшылықтар

Нақты уақыт графикасы көбінесе өзара әрекеттесу (мысалы, ойыншының реакциясы) маңызды болған жағдайларда қолданылады. Егер фильмдерде нақты уақыт графикасы пайдаланылса, режиссер әрбір кадрда нені көрсету керектігін толық бақылай алады, бұл кейде ұзаққа созылатын шешім қабылдау процесін тудырады. Мұндай шешімдерді қабылдауға әдетте адамдар тобы қатысады. Нақты уақыт компьютерлік графикасында пайдаланушы дисплейде көрсетілетін суретті өзгерту үшін кіріс құрылғысын қолданады. Мысалы, егер пайдаланушы экрандағы кейіпкерді жылжытқысы келсе, жүйе келесі кадрды салу алдында кейіпкердің орнын жаңартады. Әдетте, дисплейдің реакция уақыты кіріс құрылғысынан әлдеқайда баяу болады, бұл адамның қозғалысына (жедел) реакция беру уақыты мен адамның көру жүйесінің (баяу) перспективалық жылдамдығы арасындағы айқын айырмашылықпен түсіндіріледі. Бұл айырмашылықтың басқа да салдары бар: кіріс құрылғылары адамның қозғалыс реакциясына жете алу үшін өте жылдам болуы керек болғандықтан, кіріс құрылғыларындағы жетістіктер (мысалы, қазіргі Wii пульттері) дисплей құрылғыларындағы салыстырмалы жетістіктерге қарағанда көбінесе ұзақ уақытқа созылады. Нақты уақыт компьютерлік графиканы басқарудың тағы бір маңызды факторы – физика мен анимацияның үйлесімі. Бұл техникалар экранда нені көрсету керектігін, әсіресе сахнадағы объектілерді қайда орналастыру керектігін анықтайды. Бұл техникалар шын әлемдегі мінез-құлықты (уақыт өлшемі, кеңістік өлшемі емес) шынайы түрде имитациялауға көмектеседі, бұл компьютерлік графиканың реализмін арттырады. Графикалық бағдарламалық жасақтамамен нақты уақыт көру, әсіресе жарық эффектілерін реттеу кезінде жұмыс жылдамдығын арттыра алады. Фракталдарды құрастыратын бағдарламалық жасақтамада кейбір параметрлерді түзетуді бейнедегі өзгерістерді нақты уақытта көру мүмкіндігімен жасауға болады.

Рендерингтік құбыр желісі

Графикалық рендерингтік құбыр ("рендерингтік құбыр" немесе жай ғана "құбыр") – нақты уақыт графикасының негізі. Оның басты міндеті – виртуалды камераға қатысты екі өлшемді кескінді, үш өлшемді нысандарды (ені, ұзындығы және тереңдігі бар нысан), жарық көздерін, жарықтандыру модельдерін, текстураларды және тағы да басқаларын көрсету.

Сәулет

Нақты уақытты көрсету құбыржолдарының архитектурасын концептуалдық кезеңдерге бөлуге болады: қолданба, геометрия және растрлеу.

Қолдану кезеңі

Қолданба сатысы "көріністерді" немесе 2D дисплейге бейнеленетін 3D ортаны жасауға жауапты. Бұл саты бағдарламалық қамтамасызда іске асырылады, оны әзірлеушілер тиімділікті арттыру үшін оңтайландырады. Бұл саты пайдаланушының енгізген деректерін өңдеумен қатар, соқтығысуды анықтау, жылдамдату техникалары, анимация және күшті кері байланыс сияқты процестерді жүзеге асыруы мүмкін. Соқтығысуды анықтау – қолданба сатысында орындалатын операцияның мысалы. Соқтығысуды анықтау алгоритмдерін қолдана отырып, (виртуалды) объектілер арасындағы соқтығысуларды анықтап, оларға реакция жасайды. Мысалы, қолданба соқтығысқан объектілердің жаңа орналасуын есептеп, дірілдейтін ойын контроллері сияқты күшті кері байланыс құрылымы арқылы кері байланыс бере алады. Қолданба сатысы сондай-ақ келесі сатыға графикалық деректерді дайындайды. Бұған текстуралық анимация, 3D модельдердің анимациясы, түрлендірулер арқылы анимация және геометриялық өзгерістер кіреді. Ақырында, ол көрініс туралы ақпаратқа негізделген қарапайым элементтерді (нүктелер, сызықтар және үшбұрыштар) құрады және оларды құбырдың геометрия сатысына жібереді.

Геометриялық кезең

Геометрия сатысы көпбұрыштар мен төбелерді өңдеу арқылы не салу керектігін, қалай және қайда салу керектігін анықтайды. Әдетте, мұндай операциялар арнайы аппараттық құралдар немесе графикалық процессорлар (GPU) жүзеге асырады. Графикалық аппараттық құралдардың әртүрлілігіне байланысты "геометрия сатысы" бірнеше тізбектелген сатылардан тұруы мүмкін.

Модель мен көріністі түрлендіру

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

Жарықтандыру

Модельге көбірек нақтылық беру үшін трансформация кезінде әдетте бір немесе бірнеше жарық көздері орнатылады. Дегенмен, 3D сахнаны көрініс кеңістігіне түрлендірмей бұл сатыға жету мүмкін емес. Көрініс кеңістігінде бақылаушы (камера) әдетте координаталардың бастапқы нүктесіне (шығу тегіне) орналастырылады. Егер оң жақты координаттар жүйесі қолданылса (ол стандартты саналады), бақылаушы теріс z осі бойымен қарайды, y осі жоғары, ал x осі оңға қарай бағытталған болады.

Жобалау

Проекция – 2D кеңістікте 3D модельді көрсету үшін қолданылатын түрлендіру. Проекцияның екі негізгі түрі – орфографиялық проекция (параллель проекция деп те аталады) және перспективалық проекция. Орфографиялық проекцияның басты ерекшелігі – параллель түзулер түрлендіруден кейін де параллель болып қалады. Перспективалық проекция байқаушы мен модель арасындағы қашықтық артқан сайын модель бұрынғыдан кіші көрінетінін пайдаланады. Қысқасы, перспективалық проекция адам көзінің қабылдауын имитациялайды.

Қалқалау

Клиптеу – растерлеу сатысын жеңілдету үшін көрініс шегінен тыс қалған қарапайым геометриялық нысандарды жою процесі. Осы нысандар алынып тасталғаннан кейін, қалған нысандар келесі сатыға өтетін жаңа үшбұрыштар түрінде салынады.

Экран картасы

Экранды карталаудың мақсаты – қиып тастау кезеңіндегі примитивтердің координаталарын анықтау.

Растеризациялау кезеңі

Растерлеу сатысы түс қолданып, графикалық элементтерді пиксельдерге немесе кескіндер элементтеріне түрлендіреді.