Найти в Дзене
Игровой движок Godot engine

№147. Работа с шеидером через код. Основы основ-4.

В предыдущих частях мы работали с фрагментным (fragment) шейдером, который позволял нам производить манипуляции с пикселями.
В этой статье рассмотрим вершинный (vertex) шеидер. Как видно из названия — он отрабатывает позиции вертексов.
В 3D это точки по которым строится вся модель. В 2D , если брать просто спрайт , это будет 4 точки по которым строится виртуальный полигон : А если рассматривать 2D полигон, то там вертексы мы ставим сами: Соответственно вся работа проходит в функции vertex() Чтобы произвести манипуляции обращаемся к VERTEX. Как вы можете заметить, мы накинули к координатам вертексов 32 пикселя по оси Х , и вся картинка уехала вправо.
Обратите внимание, изображение не обрезается как в случае с фрагментным шеидером. Достучаться до определенного вертекса напрямую тут нельзя.
Но мы можем находить необходимые нам вертексы по координатам. К примеру сдвинем вертексы находящиеся в левой части спрайта. Координаты локальные. Ну и конечно же вы можете совмещать фрагмент и вертекс

В предыдущих частях мы работали с фрагментным (fragment) шейдером, который позволял нам производить манипуляции с пикселями.
В этой статье рассмотрим вершинный (vertex) шеидер.

Как видно из названия — он отрабатывает позиции вертексов.
В 3D это точки по которым строится вся модель. В 2D , если брать просто спрайт , это будет 4 точки по которым строится виртуальный полигон :

А если рассматривать 2D полигон, то там вертексы мы ставим сами:

-2

Соответственно вся работа проходит в функции vertex()

-3

Чтобы произвести манипуляции обращаемся к VERTEX.

-4

Как вы можете заметить, мы накинули к координатам вертексов 32 пикселя по оси Х , и вся картинка уехала вправо.
Обратите внимание, изображение не обрезается как в случае с фрагментным шеидером.

Достучаться до определенного вертекса напрямую тут нельзя.
Но мы можем находить необходимые нам вертексы по координатам.

К примеру сдвинем вертексы находящиеся в левой части спрайта.

-5

Координаты локальные.

Ну и конечно же вы можете совмещать фрагмент и вертекс функции в одном шеидере.

-6
-7

Надеюсь вам был полезен этот материал.
Подписывайтесь на канал,
вступайте в группу в ВК, и не забывайте что у нас есть дискорд сервер.
Удачи в изучении годо !

#godot #shaders #игровой движок #программирование