Шейдер

Материал из xrWiki
Версия от 15:49, 11 апреля 2020; RedPython (обсуждение | вклад) (Новая страница: «Шейдер — это программа, выполняемая на видеочипе, определяющая окончательный вид трёхм…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Шейдер — это программа, выполняемая на видеочипе, определяющая окончательный вид трёхмерного объекта или двумерного изображения. Шейдеры условно типизируют по назначению:

  • пиксельные – работают с текстурами. Отвечают за попиксельное освещение (те же бампы), постпроцессы и прочие интересные штуки.
  • вершинные – работают с вершинами (вертексами) модели. Реализуют просчёт освещения, скиннинг персонажей, волны от травы и многое другое.
  • геометрические – работают не только с отдельной вершиной, но и с целым примитивом (не в привычном представлении - например, кубиком, но отрезком или треугольником). На входе – один набор вершин, на выходе – другой.
  • тесселяционные – делят большие треугольники на меньшие, таким образом сглаживая угловатость низкополигональной модели.

Существуют и другие шейдеры, но их в нашем движке нет.

В архивах игры шейдеры разбиты по отдельным папкам, соответственно целевой шейдерной модели:

  • /r1/ - SM2.0 (DX9.0)
  • /r2/ - SM3.0 (DX9.0c)
  • /r3/ - SM4.0 (DX10), SM4.1 (DX10.1) – рендерер добавлен в X-Ray 1.5 (Чистое Небо)
  • /r4/ - SM5.0 (DX11) – только в X-Ray 1.6 (Зов Припяти)

В фанатских модификациях движка могут быть и r5, r6 и так далее - для DX12, OpenGL и в перспективе чего угодно ещё.