ПрограммированиеФорумГрафика

Тряска объектов.

Страницы: 1 2 3 4 5 6 7 Следующая »
#0
14:56, 23 июня 2011

Я уже давно замечаю одну особенность в моих приложениях: если я буду двигать объект каждый кадр в каком нибудь направлении то его со временем начнёт трясти причём чем дальше объект отлетит от начала системы координат(0, 0, 0) тем больше будет тряска я заметил что тряска напрямую зависит от частоты кадров к примеру если FPS 75 то трясти начнёт где-то около 5000 от начала системы координат, а если FPS 2000 то трясти начнёт уже около 1000. Если долететь до 100 тысяч то объект начинает так трясти что он пропадает с экрана и повороты векторов становятся сильными и прерывистыми. Пожалуйста объясните с чем может быть связан такой баг и как его исправить.

#1
15:04, 23 июня 2011

"float имеет погрешность"
Может это проблема?

#2
15:10, 23 июня 2011

fps = 60
всё остальное не фпс.

#3
15:18, 23 июня 2011

ilusha_nil
> "float имеет погрешность"
> Может это проблема?
Именно тут. Зависимость скорости наступления проблемы от fps объясняется разным значением dt.

#4
15:21, 23 июня 2011

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

#5
15:22, 23 июня 2011

ilusha_nil
> "float имеет погрешность"
> Может это проблема?
не может, а в этом.

kroonk
Когда куда-то далеко-далеко улетаешь, то перемещай не камеру в "далёко", а "весь мир"  к камере.

#6
16:02, 23 июня 2011

Помница, работали над тренажером военного камаза. Так у нас была карта загородного маршрута и умники, дизайнеревшие эту карту, по кой то ляд не центровали ее а удвинули на 500 км от центра. Поскольку фпс был на уровне 30-40 (:-(( дрожание самой картинки не было замечено. Но вот зеркала (рассчитывались по всем законам отражения так как предполагалось использовать оборудование отслеживания перемещения головы) - дрожали шомандец.  Хотя когда приехали ПЗшники на приемку и спросили "штозанах"- мы думали "всебля, приплыли". Ан нет - генеральный директор (кстати не знавший про эти проблемы) на полном серьезе объяснил воякам, что типа так задумано - дрожит от вибрации двигателя.... и мля проехали мы это...

#7
16:06, 23 июня 2011

NIXIUS
:D
Веселая история!

#8
18:34, 23 июня 2011

ksacvet777
> Когда куда-то далеко-далеко улетаешь, то перемещай не камеру в "далёко", а
> "весь мир" к камере.
то-есть проблема в камере? я её на хвост объекту вешал но видно было что дрожит объект а не камера. А можно как-нибудь по другому исправить эту проблему или это единственный выход?
ilusha_nil
> float имеет погрешность
Можно ли как-то исправить эту погрешность?
Ещё я тут придумал вот-что: у меня в приложении максимальная дистанция отлёта от центра - 100 000 000 000 000 надо на время отрисовки все величины поделить на 100 000 000 000 и того: 100 000 000 000 000 / 100 000 000 000 = 1000 а при одной тысяче трясти не будет.

#9
18:46, 23 июня 2011

kroonk
> максимальная дистанция отлёта от центра - 100 000 000 000 000 надо на время
> отрисовки все величины поделить на 100 000 000 000
Не совсем так. Точности от деления ну никак не прибавится.
Мир нужно побить на непересекающиеся фрагменты, и геометрию в каждом описывать относительно локального центра фрагмента.

#10
23:36, 23 июня 2011

kroonk
Покажи, как считаешь dt

#11
9:12, 24 июня 2011

kroonk
> > float имеет погрешность
> Можно ли как-то исправить эту погрешность?
Можно использовать double, возможно этого будет достаточно. Но расчеты будут идти чуть медленнее, думаю в твоём случае это не критично.

#12
9:13, 24 июня 2011

kroonk
> Ещё я тут придумал вот-что: у меня в приложении максимальная дистанция отлёта
> от центра - 100 000 000 000 000 надо на время отрисовки все величины поделить
> на 100 000 000 000 и того: 100 000 000 000 000 / 100 000 000 000 = 1000 а при
> одной тысяче трясти не будет.
Нет, такое решение не пойдет. И вообще 100 000 000 000 000 слишком большое число для float.
Почитай как float хранится в памяти и все станет более ясно.

#13
9:37, 24 июня 2011

ilusha_nil
> Можно использовать double, возможно этого будет достаточно
Кидать в видеокарту их - кощунство.

#14
10:35, 24 июня 2011

ilusha_nil
> И вообще 100 000 000 000 000 слишком большое число для float.
  ^=^

Страницы: 1 2 3 4 5 6 7 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.