ПредишенСледващото

Преглед шейдъри

Дори и след значителни подобрения в Direct3D, 7.0 между игри не изглежда голяма част от разликата, те просто правят пари бързо, може да има много полигони, използване на сгъстен текстури и ефекти multitexture за показване на множество текстури и да ги смесвате заедно. Истинският революция дойде с DirectX 8 и DirectX 9. DirectX 8-накрая отстранен DirectDraw компонент и въведе вертексни шейдъри, пикселни шейдъри и много ефекти - налагането на облекчение, нестандартно текстура и т.н. - но само поддържа Shader Model 1.0, и е на първо не е много лесен за използване, тъй като на много промени в API, както и необходимостта да се напише шейдъри в асемблер.

Шейдърите навсякъде в XNA

Вие вече сте виждали в предишната глава. Шейдъри, които са в основата на изображения нищо в XNA; без шейдър, който показва пиксели на екрана, дори не може да се направи проста линия. Сигурен съм, че вие ​​ще бъдете в състояние да използват класовете спрайт за двуизмерни графики и интерфейсът може да бъде в състояние да използват SimpleEffect клас да се покаже това, което някои триизмерни данни, но не ми харесва SimpleEffect клас и не го използвайте в тази книга. Мисля, че това е твърде сложно да се използва и не се възползвате от предимствата, предоставени от способността да пише свои собствени шейдъри, който ще бъде по-лесно, по-бързо и по-гъвкаво. Използвайте прости ефекти означава, че сте с помощта на предварително определени функции, както и ако имате нужда от нещо повече, все още трябва да започнете да пишете ваши собствени шейдъри. В следващите игри на тази книга, вие вече ще използва нормално картографиране шейдър за показване на триизмерни данни, а след това някои стръмни пост екран шейдъри ефекти за манипулиране на крайния изображението на екрана. Всички тези шейдъри не може да се реализира с помощта на SimpleEffect клас.

Ако сте работили с OpenGL или DirectX, и се използва само за фиксирано функция тръбопровода, може да се чудите защо е необходимо да се харчат толкова много усилия за шейдърите и защо не може просто да се визуализира някои триизмерни данни на екрана, както е направено до сега. Да, писане на код е малко по-трудно, и въпреки че можете да се визуализира в DirectX .x модел, почти без да знае нищо за матрици и вътрешни принципи GPU работа, няма да сте в състояние да направи значителни промени във визуализацията, ако не влезе в подробности. Вероятно научите всичко за шейдърите е трудно, но поне сте по-запознати с графика хардуер, по-добре да разберат как полигони са извършени на екрана, причините за възникване на грешки и как да ги поправят бързо.

След следващите две глави в тази книга вече няма да се говори за шейдърите и най-вероятно не ще прекарат в игрите си твърде много време шейдъри, след началото ще направи най-важните. След това ще се използва само шейдъри, а вие дори не трябва да се мисли повече за тях.

И в крайна сметка, аз искам да спомена още нещо - увеличаването на обема на работа във връзка с използването на шейдъри. Не само ще се колкото е необходимо програмист да се знае всичко за шейдърите, въпреки че най-вероятно и пишат повечето от тях, освен ако вашият екип не е "шейдър момче", но също така и хора на изкуството (Надявам се, че е не отново) трябва да бъдат запознати с шейдъри. Например, използването на нормален картографиране шейдър за увеличаване на реализма на вида на обектите в последните игри (например, Doom 3) има смисъл само, ако вашата триизмерна данни включва не само че географията, но и осигуряване на нормални карти, необходими за изпълнението на този ефект.

Не гледаме напред към следващата глава. когато ефектът от нормалното картографиране се обсъжда по-подробно, ние се отбележи, че обикновено имате нужда от високо поли версия (с милиони полигони) на триизмерни обекти и ниско поли версия (само няколко стотици или хиляди полигони) за визуализация. Както се вижда на фиг. 6.2 ниско полигон обект без да бъдат наложени нормали изглежда зле, но когато ефектът е активиран (виж вдясно), една сфера е значително подобрен.

Глава 6 - Преглед на шейдъри

Като алтернатива на високо-модел, който обикновено изисква много работа, можете да използвате програма, рисуване, за да "нарисува" нормално картата си, първо да се направи карта на височини, и след това да го превърне в нормална карта. Обикновено тези карти изглеждат по-груби, а такъв подход, вие никога няма да достигне водещите качество графични игри, но от време на време ще видите, че прилагането на нормални карти по такъв начин да се спестят пари. Във всеки случай, че изпълнителят трябва да знаете за всички нови техники и трябва да мисля за това как да създавате съдържание, преди да започнете да пишете на двигателя и игра код.

примери игри

Ако искате да видите шейдърите в действие, само за да играят някои от най-новите игри - почти всички от тях подкрепа шейдъри и дори няма да видите нормално картографиране или пост-екранни ефекти, шейдъри могат да се използват за ефективно визуализация на тримерни модели или технология сянка изпълнение наслагване ,

Други игри, като стратегически или роля, също се възползва от Shader, но за да забележите, че той се нуждае от по-отблизо, защото дори и при наличието на шейдърите, че тези игри са по-фокусирани върху геймплея, как да се визуализира в същото време най-много единици или проблеми за контрол на камерата ,

Глава 6 - Преглед на шейдъри

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

Свързани статии

Подкрепете проекта - споделете линка, благодаря!