В този материал с много изображения ще стане дума за историята на текстурирането в триизмерните компютърни игри. От появата на първите 3D игри в реално време тези технологии изминаха дълъг път, но и днес при създаването на игрови текстури се използват похвати, корените на които могат да се проследят още от тези ранни времена.

Нека в началото да да се спрем накратко на основите – за различията на рендирането в реално време (real time rendering) от предварително рендираните (pre-rendered) сцени. В повечето игри се използва рендиране в реално време. В този случай гейм енджинът генерира изображението в реално време. За създаването на един кадър от рендираната сцена са необходими значителни изчислителни мощности, с каквито предишните геймърски конзоли не разполагаха.

Това е и причината, на различните компютърни системи да се получава различно ниво на качеството. Но статичните елементи като кинематографските допълнения или неподвижните фонове, могат да се създават чрез предварително рендиране. Преди време разликата при използването на тези два метода бе огромна. Ето един предварително рендиран фон, както и персонаж, рендиран в реално време в игра от 1999 година.

1 от 2

Предварителното рендиране дава възможност за създаване на много интересни и детайлни сцени, но за създаването на предварително рендираните фонове и околни пространства бяха необходими часове и дори дни. За картина или филм това е напълно нормално и приемливо. Но героите в игрите трябва непрекъснато да се рендират при обновяване на кадрите от нивото на 50-60 fps. Ето защо, в ранните 3D игри се налагаше значително опростяване.

В 16-битовите конзоли един от първите примери на 3D игра в реално време бе Star Fox, както и Donkey Kong Country, в които предварително рендираната триизмерна графика бе преобразувана в спрайтове (със силно опростени цветни палитри). Дълго време нищо друго не изглеждаше така добре в реално време.

А когато се появиха конзолите с истинско 3D (като например N64 и PS1), всички видяха на какво не е способно тогавашното рендиране в реално време. Не можеше да се използват източници на светлина, от които да се образуват сенки и да се оправи цялостното осветяване на сцената, материалите не реагират на светлината, няма релефно текстуриране (bump mapping) – само геометрия и текстури с ниска резолюция. Как успяваха художниците да се оправят с всичко това?

Един от начините е, информацията за осветеността да се рисува и вмъква в текстурите (сенки, осветяване, дълбочина) или тази информация да се рисува във върховете на първичните триъгълници, или да се използват и двата метода. Сенките на персонажите обикновено са съвсем опростени текстури, които просто следват персонажа. Реализирането на правилни сенки бе невъзможно.

Можеше да се направи много опростено засенчване, но нямаше откъде да се вземе правилна информация за осветеността. В игри като Ocarina of Time и Crash Bandicoot се използва много информация за осветяването, която се записва в текстурите и се изобразява във върховете на първичните геометрични фигури. По този начин, някои области можеха да стават по-светли или по-тъмни, както и да получават определен отенък.

1 от 2

В тези времена, за преодоляването на всичките тези ограничения се изискваше огромен обем творческа работа. До известна степен изобразяването или записа в текстурите на информацията за осветяването се използва и днес. Но рендирането в реално време се издигна на съвсем ново ниво и необходимостта от използването на подобни техники намаля.

И така, следващото поколение хардуер трябваше да реши множество проблеми. Следващото поколение конзоли – PS2, Xbox и Gamecube опитаха да се справят с някои от тях. Първото осезателно подобрение на качеството бе повишаването резолюцията на текстурите и подобрената работа с осветлението на героите и сцената.

Една от най-важните в това отношение игра бе Silent Hill 2. Най-сериозното постижение на това заглавие от 2001 година бе генерирането на сенки в реално време. Това означава, че голяма част от записаната в текстурите информация за осветяването може вече да бъде отхвърлена и именно това е характерното за конзолите от това време.

Определяща за тази и за другите игри от тази ера бе резолюцията. Благодарение на големия брой пиксели става възможно показването и на най-малки детайли. Но засега това е само информация за цвета и разсейваната светлина. Bump картите и картите за отразяване на светлината все още се използват твърде рядко. Все още е невъзможно да се получи правилна реакция на светлината в зависимост от материала.

Имаше и още една причина да се използва вмъкване на допълнителна информация в текстурите. В предварително рендираните сцени това не е проблем и при тях дрехата наистина изглежда като тъкан, а стъклото, косите и кожата изглеждат убедително. Но за рендирането в реално време бе необходимо релефно текстуриране и то се появи, но в края на това поколение игри и само в Xbox.

1 от 2

Картите на отраженията и нормалите се появиха в игрите като например Halo 2 и Doom 3. Картите на отраженията (specular maps) дават възможност за по-правилна и по-естествена реакция на осветеността в зависимост от материала. Така например, металът може да блести и т.н. Картата на нормалите дава възможност да се запишат много повече детайли при обектите, образуваби от малък брой полигони.

1 от 2

Ако сте работили с 3D графика, би трябвало да знаете какво е карта на нормалите (normal map). Това е вид релефното текстуриране, даващо възможност за много по-детайлна реакция на светлината в сравнение със сложността на обекта. Това е най-важната текстура, която се използва на практика във всяка игра, излязла след това поколение.

След появата на картите на нормалите, подходът на художниците и гейм дизайнерите се промени. За изготвянето на тези карти се изразходва много време. Започнаха да се използват инструменти като Zbrush, даващи възможност за вмъкване на информацията за моделите с много полигони в текстурите, които могат да се използва в обекти с малко полигони.

Преди появата на тази техника повечето текстури се създаваха ръчно или чрез редакция на снимки с помощта на Photoshop. В епохата на Xbox 360 и PS3, този метод остана в миналото, понеже с повишението на резолюцията се увеличи и броят на полигоните, описващи обектите и съответно, повиши се качеството на героите и на всички модели в игрите.

Освен това, поради предварително пресметнатото засенчване и хвърляне на сенки, значително се подобри поведението на материалите. За редица гейм дизайнери и художници, това се оказа решаващ момент. Материалите започнаха да стават много по-сложни в сравнение с преди. Ето това демо от 2005 година превъзхождаше всичко, създадено преди него. По това време все още няма дори и Xbox 360.

По това време се появи и нов подход към осветяването на сцената – моделът Ambient occlusion. Рендирането в реално време отново трябваше да догонва предварителното рендиране. AO изисква твърде много ресурси, за да може рендирането да става в реално време и дизайнерите просто започнаха да записват тази информация в текстурите. Ambient occlusion пресъздава индиректните сенки от източниците на светлина, които създават едно много детайлно изображение.

Дори днес технологията Ambient occlusion не е постижима 100% в реално време, но вече сме близко до това! Благодарение на новите SSAO и DFAO процесите, ситуацията значително се подобри в сравнение с каквото беше преди 10 години. И до днес се използват вмъкнати в текстурите Ambient occlusion карти, но когато рендерите станат още по-добри, гейм дизайнерите ще се откажат от този подход.

И така, в ерата на PS3 и X360 видяхме по-голям скок в резолюцията в сравнение с предишното поколение конзоли, а за засенчените повърхности се появиха нови текстури. И разбира се, значително се повиши качеството на изобразяване на осветлението. Вече се използва генерирането на сенките в реално време за цялата сцена, а за получаване на още по-голяма детайлност, част от информацията за осветяването може да се запише в текстурите.

Може всичко да изглежда отлично, но все още има недостатъци. Ниската резолюция на моделите и текстурите плюс необходимите твърде много ресурси заради новите шейдъри. Да не забравяме и резолюцията на целия кадър. Едва 720р! Освен това, започнаха да се проявяват недостатъците на по-старите телевизори.

Друг проблем си останаха картите на отраженията (specular maps). По това време всеки обект има само една подобна карта на „бляскавостта“. Това е голямо ограничение. Материалите изглеждат нереално. Ето защо някои разработчици започнаха да използват повече от една подобна карта. Един от първите примери за този подход бе играта Bioshock Infinite.

Картите на отраженията вече са различни според типа на материала (дърво, злато, бетон и т.н) и според степента на старост на материала (гладък, пукнатини, износване и т.н.). Всичко това съвпадна с появата на новата технология за работа със сенките – Physically Based Rendering, PBR (физически коректно рендиране).

Това ни води в днешния ден и към сегашните конзоли. PBR стана стандарт за много игри. Тази техника бе популяризирана от студиото Pixar, което буквално го стандартизира като начин за коректно изобразяване на материалите в компютърната графика. И дори технологията може да се използва в реално време!

Освен това, усъвършенстван бе конвейерът, появил се в предишното поколение – общите ефекти. Аспекти от рода на корекция на цвета и гамата, както и редица други, стана много по-добра и по-лесна. В предишното поколение за постигането на същото се налагаше дълга настройка на текстурите.

Ако ви е интересно да разберете повече за старите игри и предишните техники на рендиране. силно препоръчвам серията DF Retro на канала digitalfoundry. Авторът е извършил направо фантастична работа по анализа на различните игри, като например Silent Hill 2.

Нека просто да сравним, как изглеждаха първите 3D игри и какъв труд е необходим днес за създаването на една единствена текстура в играта.

1 от 4

За малко да се спрем и някои от техниките от предишните епохи, които се използват и днес! Има редица стилизирани текстури, в които е записана информацията за осветяването. Този метод най-често се използва от Blizzard.

Тази компания се справя с техническите ограничения с помощта на добре обмислено отношение към графиката и постига потресаващи резултати. Може би не се използват чак толкова много текстури, като в другите ААА игри, но резултатът е великолепен.

А понякога благодарение на PBR техниката и ръчно нарисуваните текстури, може да се стигне много далече. Особено когато се използва съвременен енджин с редица допълнителни функции: