Size: a a a

pro.graphon (and gamedev)

2020 April 04

L

Lain-dono in pro.graphon (and gamedev)
А я тем временем реализовал наивные каскадные тени
источник

L

Lain-dono in pro.graphon (and gamedev)
источник

L

Lain-dono in pro.graphon (and gamedev)
Но судя по всему надо что-то делать с точностью или ещё каких-то хаков понаставить ибо наивная версия (из примеров на вулкане) так себе работает. Мб reversed-z или ещё что-то туда воткнуть. Ну или просто эту хуйню настраивать надо
источник

L

Lain-dono in pro.graphon (and gamedev)
Внимание на место переключения на последний каскад. Хотя возможно тут надо просто сделать эту штуку намного дальше и будет нормас
источник

L

Lain-dono in pro.graphon (and gamedev)
Ещё эти тени безбожно мерцают при любых движениях камеры
источник

AE

Alexey Eremin in pro.graphon (and gamedev)
Lain-dono
Ещё эти тени безбожно мерцают при любых движениях камеры
источник

L

Lain-dono in pro.graphon (and gamedev)
Да, выглядит годно на первый взгляд. Надо будет изучить подробнее
источник

IS

Ivan Stepanov in pro.graphon (and gamedev)
Хочу вращать объект по глобальным осям. Но когда я вращаю по оси X (rx), вращается и система координат. Поэтому, когда я пытаюсь вращать вдоль оси Y, вращается по локальной оси Y, а не глобальной.

Код инициализации выглядит вот так:
getTransforms().addAll(t, rx, ry, rz);


Что тут можно сделать?
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
Ivan Stepanov
Хочу вращать объект по глобальным осям. Но когда я вращаю по оси X (rx), вращается и система координат. Поэтому, когда я пытаюсь вращать вдоль оси Y, вращается по локальной оси Y, а не глобальной.

Код инициализации выглядит вот так:
getTransforms().addAll(t, rx, ry, rz);


Что тут можно сделать?
можно сделать кватернионы
источник

IS

Ivan Stepanov in pro.graphon (and gamedev)
Из решений есть вот ТАКОЕ
    public void rx(double angle) {
       r = new Rotate(angle, px);
       this.t = t.createConcatenation(r);
       this.getTransforms().clear();
       this.getTransforms().addAll(t);
   }

Но мне не нравится
источник

L

Lain-dono in pro.graphon (and gamedev)
Ivan Stepanov
Хочу вращать объект по глобальным осям. Но когда я вращаю по оси X (rx), вращается и система координат. Поэтому, когда я пытаюсь вращать вдоль оси Y, вращается по локальной оси Y, а не глобальной.

Код инициализации выглядит вот так:
getTransforms().addAll(t, rx, ry, rz);


Что тут можно сделать?
Посмотреть, в каком порядке ты всё это делаешь. Порядок должен быть таким: Translate -> Rotate -> Scale
источник

IS

Ivan Stepanov in pro.graphon (and gamedev)
Lain-dono
Посмотреть, в каком порядке ты всё это делаешь. Порядок должен быть таким: Translate -> Rotate -> Scale
Порядок правильный: Translate, pivot, rotateX, rotateY, rotateZ, scale, inverse pivot
источник

L

Lain-dono in pro.graphon (and gamedev)
Ivan Stepanov
Порядок правильный: Translate, pivot, rotateX, rotateY, rotateZ, scale, inverse pivot
Все повороты должны быть одной трансформацией
источник

IS

Ivan Stepanov in pro.graphon (and gamedev)
Lain-dono
Все повороты должны быть одной трансформацией
Они инициализированы как
 rotateX = new Rotate(0.0, Rotate.X_AXIS),
rotateY = new Rotate(0.0, Rotate.Y_AXIS),
rotateZ = new Rotate(0.0, Rotate.Z_AXIS);
Это не норм?
источник

L

Lain-dono in pro.graphon (and gamedev)
Ivan Stepanov
Они инициализированы как
 rotateX = new Rotate(0.0, Rotate.X_AXIS),
rotateY = new Rotate(0.0, Rotate.Y_AXIS),
rotateZ = new Rotate(0.0, Rotate.Z_AXIS);
Это не норм?
Норм, то это всё медленно же
источник

IS

Ivan Stepanov in pro.graphon (and gamedev)
Lain-dono
Норм, то это всё медленно же
Affine?
источник

L

Lain-dono in pro.graphon (and gamedev)
Не обязательно. Можно Similarity или Isometry.
источник

L

Lain-dono in pro.graphon (and gamedev)
На мой вкус Affine - это зло
источник

IS

Ivan Stepanov in pro.graphon (and gamedev)
Круто, а я до сих пор не знаю, что это
источник

I1

Illinad 1 in pro.graphon (and gamedev)
А кватернионы зло?
источник