Size: a a a

2021 February 01

Z

ZZZubec(Salamandr) in Alprog I/O
Ну да
источник

Z

ZZZubec(Salamandr) in Alprog I/O
Растеризация, если я правильно написал.
источник

Z

ZZZubec(Salamandr) in Alprog I/O
Кстати на счёт физики на целых числах, появляется эффект дергания позиции вершин полигона. Этот эффект был хорошо заметен на PS1 и Flash, потому что все просчеты шли на float 16 или 32 вроде, которого не хватало. Позже они сделали double. А говорить про int это прям ещё заметнее будет
источник

Z

ZZZubec(Salamandr) in Alprog I/O
Вот его здесь эмулируют https://youtu.be/iTgJHU3MB24
источник

АТ

Александр Тужик... in Alprog I/O
ZZZubec(Salamandr)
Кстати на счёт физики на целых числах, появляется эффект дергания позиции вершин полигона. Этот эффект был хорошо заметен на PS1 и Flash, потому что все просчеты шли на float 16 или 32 вроде, которого не хватало. Позже они сделали double. А говорить про int это прям ещё заметнее будет
Было бы прикольно (наверняка, сто раз уже сделано другими людьми) подумать в сторону гауссовых целых.
источник

АТ

Александр Тужик... in Alprog I/O
То есть мы берём, и все физические величины (скорость, ускорение и так далее) делаем кратным корню из 65.
источник

АТ

Александр Тужик... in Alprog I/O
А направления ограничиваем 16 вот такими:
источник

АТ

Александр Тужик... in Alprog I/O
источник

АТ

Александр Тужик... in Alprog I/O
И получается, что как бы мы не изменяли позицию, мы всегда встанет точно на целое число.
источник

АТ

Александр Тужик... in Alprog I/O
А если взять корень из 5*13*17, то будет ещё больше направлений
источник

Z

ZZZubec(Salamandr) in Alprog I/O
Можно округлять просто
источник

АТ

Александр Тужик... in Alprog I/O
Для тех, кому интересно понять, как это работает:
источник

АТ

Александр Тужик... in Alprog I/O
источник

АТ

Александр Тужик... in Alprog I/O
Где-то с 20, 21-минуты.
источник

АТ

Александр Тужик... in Alprog I/O
ZZZubec(Salamandr)
Можно округлять просто
Тогда ты будешь терять точность вычислений.
источник

АТ

Александр Тужик... in Alprog I/O
Идея в том, чтобы у тебя была интовая физика без потерь точности.
источник

Z

ZZZubec(Salamandr) in Alprog I/O
Дергание получается в результате того округление идёт не от 0.1,а от 0.5
источник

АТ

Александр Тужик... in Alprog I/O
Ты о чём?
источник

АТ

Александр Тужик... in Alprog I/O
Я говорю о физике, в которой не будет округлений.
источник

Z

ZZZubec(Salamandr) in Alprog I/O
Дергание будет всё равно. Представим что у нас нет других чисел кроме целых. Квадрат размерами 100x100 делает шаг вправо на свой размер. Для нас это будет слишком резко. Если перемещать его на 1, то будет очень плавно. Проблема в том, что все объекты должны быть минимум размером с этот куб, иначе они потеряют плавность (ну или будут еë терять в зависимости от отношения размера к 100). На экране особо ничего тогда не нарисуешь, просто не влезет. Zoom будет точно также влиять на сглаженность движения.
источник