ладенню текстури, джерел світла та іншим аспектам їх роботи.
Обробка таких шейдеров звичайно являє собою ресурсоємних завдань. Сукупна обчислювальна потужність, необхідна для забезпечення їх роботи, може бути дуже велика, оскільки використовується для створення фотореалістичних зображень. Основна частина обчислень при подібній візуалізації виконується великими комп'ютерними кластерами.
· RenderMan
Шейдерний мову RenderMan, описаний в Специфікації інтерфейсу RenderMan , є фактичним стандартом для професійного рендеринга. API RenderMan, розроблений Робом Куком, використовується у всіх роботах студії Pixar. Він також є першим з реалізованих шейдерних мов.
· Gelato
NVIDIA Gelato являє собою оригінальну гібридну систему рендеринга зображень і анімації тривимірних сцен і об'єктів, що використовує для розрахунків центральні процесори і апаратні можливості професійних відеокарт серії Quadro FX.
Основоположним принципом, якого неухильно дотримуються розробники, є безкомпромісна якість фінального зображення, що не обмежене нічим, у тому числі - сучасними можливостями відеокарт. Як виробничий інструмент, здатний створювати кінцевий продукт високої якості, Gelato призначений для професійного використання в таких областях як кіно, телебачення, промисловий дизайн і архітектурні візуалізації.
· Open Shading Language
Open Shading Language (OSL) - являє собою невеликий, але багата мова для програмованих шейдерів в розвинених рендера та інших додатках, ідеально підходить для описують матеріалів, світла, переміщення і отримання ізображенія.- був розроблений Sony Pictures Imageworks для використання у своєму внутрішньому рендере і використовується для анімаційних фільмів та візуальних ефектів.
OSL використовується в пакеті для створення тривимірної комп'ютерної графіки Blender. # justify gt; Рендеринг в реальному часі
· Шейдерний мову OpenGL
Шейдерний мову OpenGL носить назву GLSL (The OpenGL Shading Language). GLSL заснований на мові ANSI C. Більшість можливостей мови ANSI C збережено, до них додані векторні і матричні типи даних, часто застосовуються при роботі з тривимірною графікою. У контексті GLSL шейдером називається незалежно компилируемая одиниця, написана на цій мові. Програмою називається набір скомпільованих шейдеров, пов'язаних разом.
· Шейдерний мову Cg
Розроблено nVidia спільно з Microsoft (такий же по суті мову від Microsoft називається HLSL, включений в DirectX 9). Cg розшифровується як C for Graphics. Мова дійсно дуже схожий на C, він використовує схожі типи (int, float, а також спеціальний 16-бітний тип з плаваючою комою - half). Підтримуються функції і структури. Мова має своєрідними оптимізаціями у вигляді упакованих масивів (packed arrays) - оголошення типу float a [4] і float4 a в ньому відповідають різним типам. Друге оголошення і є упакований масив, операції з упакованим масивом виконуються швидше, ніж із звичайними. Незважаючи на те, що мова розроблений nVidia, він без проблем працює і з відеокартами ATI. Проте слід врахувати, що всі шейдерні програми володіють своїми особливостями, про які можна дізнатися зі спеціалізованих джерел.
· Шейдерні мови DirectX
Низькорівневий шейдерний мова DirectX (DirectX ASM)
По синтаксису схожий з Ассемблером. Існує кілька версій, що розрізняються по набору команд, а також по необхідному устаткуванню. Існує поділ на вершинні (vertex) і піксельні (pixel) шейдери, які розрізняються.
Верховий шейдер
Виконує обробку геометрії, тобто змінює параметри вершини, такі, як позицію, текстурні координати, колір вершин. Також може виконувати обчислення освітлення. Допустима кількість команд може досягати однієї-двох сотень. Приклад фрагмента коду:
vs.2.0
dcl_position v0
dcl_texcoord v3
m4x4 oPos, v0, c0oT0, v3
Піксельний шейдер
Виконує обробку колірних даних, отриманих при малюванні трикутника. Оперує з текстурами і кольором. Кількість інструкцій значно обмежена. Так, наприклад, у версії 1.4 воно не може бути більше 32-х. Приклад фрагмента коду: .1.4r0, t0r0, r0, v0
directx код програма версія
Опис використовуються функцій
...