Vertex shader - використання vertex shader - s

Vertex shader - використання vertex shader - s
Vertex shader (верховий шейдер) займається обробкою даних вершин моделі. Такі дані як координати вершини в просторі, текстурні координати, тангент-вектор, бінормаль, нормаль обробляються як раз верховими шейдерами. Крім того, vertex shader займається перетворенням моделі з простору моделі в простір світу / виду / проекції. Він може сам генерувати текстурні координати або змінювати форму самої моделі, наприклад, "пустити" хвилі по рівній поверхні води або якось зігнути модель, провести трансформації відповідно до скелетної анімацією, може почитати освітленість вершин моделі і багато чого ще ...

Давайте більш детально розберемо тему вертексних шейдеров (vertex shaders) і навчимося їх застосовувати.

Vertex shader. як і інші види шейдерів, вдає із себе ні що інше, як функцію, яка отримує якісь параметри на вході і віддає результат на виході. У попередньому уроці ми вже використовували досить простий vertex shader:

Всі функції для роботи з таблицею констант описані в DirectX SDK, тому я не буду дублювати інформацію - якщо Вам цікаво, просто знайдіть в покажчику "ID3DXConstantTable" і почитайте. Я ж просто покажу приклад того, як працювати з цією таблицею.

Давайте для початку трохи ускладнити наш вертексний шейдер: