Size: a a a

pro.graphon (and gamedev)

2021 May 03

D

Deathwish in pro.graphon (and gamedev)
Всё, больше нечего добавить...
источник

D

Deathwish in pro.graphon (and gamedev)
Но забавно кстати, что id software в движках серии quake писали сравнение с нулём, типа == 0
источник

D

Deathwish in pro.graphon (and gamedev)
Как будто плавающая точка может быть равна точно этому значению)
источник

D

Deathwish in pro.graphon (and gamedev)
Меня этот факт позабавил
источник

VD

Vlad Doc in pro.graphon (and gamedev)
Так может же. Другое дело что в вычислениях она вряд-ли будет если ты не умножаешь на 0
источник

D

Deathwish in pro.graphon (and gamedev)
Ну может, да, действительно, если это выражение константно получается ну или саму переменную как 0.f задаешь. Тогда может быть, вполне.
источник

D

Deathwish in pro.graphon (and gamedev)
Потому как я проверял, что если выполнить в си такое вычисление: 1 - 1/3 - 1/3 - 1/3, то там действительно результат 0 будет, но это выражение константно. А вот если сделать много вычислений где-то и у тебя вдруг каким-то образом сложилась такая же ситуация, но с переменными, то там уже я не думаю, что результат прям такой же будет.
источник

M

Mikhail in pro.graphon (and gamedev)
Оно и в шеидерах по разному может быть. На нвидии и амд ловил разное значение 1/6 в компайл тайме. Если 6 передать в юниформе, будет одинаково
источник

N

NeuroKALKA in pro.graphon (and gamedev)
Так это unorm формат?
источник

N

NeuroKALKA in pro.graphon (and gamedev)
Если да, то, получается, 0.5 это 0.5 * 255 = 127.5, который округлится до 127
источник

DP

Defragmented Panda in pro.graphon (and gamedev)
https://www.khronos.org/opengl/wiki/OpenGL_Type

GL_UNSIGNED_BYTE как я понял
источник

DP

Defragmented Panda in pro.graphon (and gamedev)
есть идеи как это исправить? или я могу расчитывать что это всегда и везде так и захардкодить решение?
источник

N

NeuroKALKA in pro.graphon (and gamedev)
источник

N

NeuroKALKA in pro.graphon (and gamedev)
Ну всё верно
источник

N

NeuroKALKA in pro.graphon (and gamedev)
Вон, 0.25 в флоте тоже точно представляется
источник

N

NeuroKALKA in pro.graphon (and gamedev)
Но в 8 битном нормализованном инте будет округлено
источник

DP

Defragmented Panda in pro.graphon (and gamedev)
что мне стоит изменить чтобы не было дрейфа?

грубо говоря так:
х=0.5
у=0.5
и потом в цикле
х+=х+у-1

я могу решить так:
х+=х+у-1-1/256
это надежное решение?
источник

N

NeuroKALKA in pro.graphon (and gamedev)
Я не до конца понимаю, что конкретно ты делаешь. Записываешь 0.5 в текстуру и пытаешься тот же 0.5 прочесть?
источник

DP

Defragmented Panda in pro.graphon (and gamedev)
да

симуляция газа. 0.5 - не движется. 0 - движется влево. 1 - движется вправо

накопление ошибок сильно мешает уже через секунду
источник

VD

Vlad Doc in pro.graphon (and gamedev)
Хм интересно почему не -1..1 ?
источник