В этой статье продолжим изучать шеидерописание. Обсудим такие моменты как скалирование и поворот UV координат, и напишем простенький шеидер который будет проявлять спрайт через некую текстуру (в нашем случае градиент или шум). Погнали ! Скалирование UV. Для этого достаточно умножить UV на какое то значение: Либо , если нужно скалировать только по одной оси , то вектор: Если присмотреться то заметно, что ось вращения находится в верхнем левом углу.
Если нам нужно скалировать от центра спрайта то необходимо прописать оффсеты:
(так как пространство нормализовано — то 0.5 это ровно середина координат) Поворот UV. С поворотом дело обстоит чуть сложнее. Ибо формула выглядит вот так: cos(angle)*UV.x-sin(angle)*UV.y, cos(angle)*UV.y+sin(angle)*UV.x Поэтому пишем : Как и в случае со скалированием — ось вращения у нас в левом верхнем углу.
Для того чтобы выставить в центр спрайта дописываем оффсет: (Я не стал убирать переменную PIV из кода, покрутив её вы увидите как ось вращения меняется по гор
