Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax > 3D-программирование

3D-программирование miniB3D, OpenGL

Ответ
 
Опции темы
Старый 07.07.2009, 18:05   #1
Unodeya
ПроЭктировщик
 
Аватар для Unodeya
 
Регистрация: 14.05.2009
Сообщений: 101
Написано 31 полезных сообщений
(для 67 пользователей)
Xors3D(Delta Timing)

НАчал изучать ксорс! Это руль)
Написал такой дельта тайминг.. Вроде работает.. Обращаюсь к специалистам всё ли правельно сделал? Спасибо за ответ.

Global dt

xGraphics3D 1024, 768, 32, 1, 0
xSetbuffer xBackBuffer()

cube=xCreateCube()
cam = xCreatecamera()
xPositionEntity cam, 0, 0, - 5

Repeat
deltatime = MilliSecs()
xPointEntity cam, cube
xMoveEntity cube, 0, 0.01*dt, 0

xUpdateWorld()
xRenderWorld()

xFlip
dt = MilliSecs() - deltatime
Until xKeyHit(1)
End
(Offline)
 
Ответить с цитированием
Старый 07.07.2009, 18:38   #2
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Xors3D(Delta Timing)

Да вроде так.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 07.07.2009, 18:58   #3
Unodeya
ПроЭктировщик
 
Аватар для Unodeya
 
Регистрация: 14.05.2009
Сообщений: 101
Написано 31 полезных сообщений
(для 67 пользователей)
Ответ: Xors3D(Delta Timing)

Ещё вопрос, С такой дельтой на разных машинах игра будет вести себя одинакого?

Последний раз редактировалось Unodeya, 07.07.2009 в 19:06.
(Offline)
 
Ответить с цитированием
Старый 07.07.2009, 19:06   #4
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: Xors3D(Delta Timing)

у тебя dt зависти от того сколько будет идти это:
xPointEntity cam, cube
xMoveEntity cube, 0, 0.01*dt, 0
xUpdateWorld()
xRenderWorld()
xFlip
(Offline)
 
Ответить с цитированием
Старый 08.07.2009, 01:09   #5
Unodeya
ПроЭктировщик
 
Аватар для Unodeya
 
Регистрация: 14.05.2009
Сообщений: 101
Написано 31 полезных сообщений
(для 67 пользователей)
Ответ: Xors3D(Delta Timing)

Global dt# = 60 / xGetFps()

xGraphics3D 1024, 768, 32, 1, 0
xSetbuffer xBackBuffer()

cube=xCreateCube()
cam = xCreatecamera()
xPositionEntity cam, 0, 0, - 5

Repeat
deltatime = MilliSecs()
xPointEntity cam, cube
xMoveEntity cube, 0, 0.01*dt, 0

xUpdateWorld()
xRenderWorld()

xFlip
dt = MilliSecs() - deltatime
Until xKeyHit(1)
End
А если так ??
(Offline)
 
Ответить с цитированием
Старый 08.07.2009, 01:40   #6
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Xors3D(Delta Timing)

Следи за логикой dt - получается что ты умножишь скорость, на длительность цикла - тоесть чем дольше просчитывается, на тем большее число ты умножишь (но тут будет в следующий кадр). А т.к. миллисекунды сильно варьируют - будет немалая потеря точности, на мелких цыклах. Нада брать jomon'а либу, для получения более точных миллесекунд..
По сути так можно поступить - но это ненормальный способ совсем..
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Unodeya (08.07.2009)
Старый 08.07.2009, 01:45   #7
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Xors3D(Delta Timing)

Сообщение от MoKa Посмотреть сообщение
Следи за логикой dt - получается что ты умножишь скорость, на длительность цикла - тоесть чем дольше просчитывается, на тем большее число ты умножишь (но тут будет в следующий кадр). А т.к. миллисекунды сильно варьируют - будет немалая потеря точности, на мелких цыклах. Нада брать jomon'а либу, для получения более точных миллесекунд..
По сути так можно поступить - но это ненормальный способ совсем..
Теоретики. Я всю жись юзал Millisecs() и нормальная точность. Если у тебя там не > 1000 FPS (в чём я сомневаюсь)
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Unodeya (08.07.2009)
Старый 08.07.2009, 01:49   #8
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Xors3D(Delta Timing)

Если фпс примерно 60 - то это ~19 миллесекунд на цикл, если фпс падает до 20 - то это уже будет около 12. Разницу между 12 и 13 в фпс не сильно учуешь, но в логике она будет. По сути нормально. Но неточности на низких фпс будут присутствовать.
Если в этой игре нету завязок с временем или сетью (что бывает редко), то так можно без проблем.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
Nex (08.07.2009), Unodeya (08.07.2009)
Старый 08.07.2009, 17:37   #9
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Xors3D(Delta Timing)

Если фпс примерно 60 - то это ~19 миллесекунд на цикл, если фпс падает до 20 - то это уже будет около 12.
Ты чего, у тебя при бОльшем ФПС бОльшая дельта, наоборот же ж!

60 ФПС = 17 мсек
20 ФПС = 50 мсек

Разница между 17 и 50, я думаю, ясна и без тысячных долей.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (09.07.2009)
Старый 08.07.2009, 18:54   #10
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Xors3D(Delta Timing)

А теперь сравним дельты на ФПС-ах 1000, 1999 и 2001:
1, 1, 0
Хотя в последних двух случаях должно было быть около 0.5
Итог - способ имеет место быть, но я продолжу привязываться к ФПС как более "честной" еденице, позволяющей получать float величины дельты
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 08.07.2009, 19:19   #11
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Xors3D(Delta Timing)

А теперь сравним дельты на ФПС-ах 1000, 1999 и 2001:
Покажите пальцем где у вас бывает > 1000 FPS? Хотя бы > 500 ?
Итог - способ имеет место быть, но я продолжу привязываться к ФПС как более "честной" еденице, позволяющей получать float величины дельты
Чтобы измерить FPS нужно знать время цикла.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 08.07.2009, 20:20   #12
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Xors3D(Delta Timing)

>>Чтобы измерить FPS нужно знать время цикла.
Или сосчитать количество кадров, прошедшее за время 1 секунды
>>Покажите пальцем где у вас бывает > 1000 FPS? Хотя бы > 500 ?
Нате: (x3d, любуюсь скайбоксом)
Миниатюры
Нажмите на изображение для увеличения
Название: proof.jpg
Просмотров: 835
Размер:	91.1 Кб
ID:	6545  
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
newman (08.07.2009)
Старый 08.07.2009, 20:52   #13
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Xors3D(Delta Timing)

А в реальной игре?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 08.07.2009, 21:16   #14
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Xors3D(Delta Timing)

Это является прототипом. Ясное дело что в реальной игре будет значительно меньше ФПС, но! Я хочу использовать дельтатайминг и в таких мелких прототипах, и хочу чтобы он работал корректно. В данном случае он бы не работал вовсе, заморозив прототип нафиг (dt=0)
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 08.07.2009, 21:19   #15
Knightmare
Дэвелопер
 
Регистрация: 14.02.2007
Сообщений: 1,471
Написано 824 полезных сообщений
(для 2,920 пользователей)
Ответ: Xors3D(Delta Timing)

В движке есть функции позволяющие расчитать время выполнения куска кода с высокой точностью (возвращает float значение которого равно затраченному времени в миллисекундах). Если реально надо - завернуть не долго.
(Offline)
 
Ответить с цитированием
Эти 6 пользователя(ей) сказали Спасибо Knightmare за это полезное сообщение:
ABTOMAT (08.07.2009), moka (09.07.2009), Mr_F_ (30.07.2009), Randomize (29.09.2009), Taugeshtu (09.07.2009), tormoz (08.07.2009)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Xors3d wants YOU! .Squid Xors3D 33 13.01.2013 23:34
Xors3D для D johnk Проекты C++ 8 09.08.2009 14:18
Xors3D for .NET? johnk C++ 7 06.08.2009 09:34
Xors3D ЛысыЙ_Чук-Иванчук Модули для BlitzMax 145 18.06.2009 21:17
xors3d NitE 3D-программирование 9 02.04.2009 22:21


Часовой пояс GMT +4, время: 01:06.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com