Пятница, 26.04.2024, 10:55 На сайте время по Москве
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 5 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Форум » Мастерская/Workshop » Проекты Tuner's Edge/Tuner's Edge Projects » Game Engine Programming by }0RIC)-(
Game Engine Programming by }0RIC)-(
}0RIC)-(Дата: Воскресенье, 16.09.2012, 16:22 | Сообщение # 41
=\Good-Racer/=
Группа: Tuner's Edge
Сообщений: 921
Статус: Offline
И так, придумал вот такой алгоритм откатов:
Нам надо время, затраченное на кадр = dt
Время я представляю как ось t.
1)В начале сцена находится в начале этой оси.

2)Перематываем ее в конец кадра, независимо от того, перекроются объекты или нет.

Теперь для того чтобы вернуться в начало кадра, нужно перемотать на (-dt).
3)Дальше находим наименьшее время столкновения для каждого отдельного объекта, наименьшее время столкновения за всю сцену, и перематываем на него.

4)Перебираем все объекты, и просчитываем столкновение тем, у которых их собственное время столкновения совпала с временем сцены, это делаем для того, чтобы не потерять ни одного объекта.
5)Cдвигаем границу оси t (раньше граница была -dt)

6)Перематываем в конец кадра.

Повторяем с первого пункта, только отрезок времени теперь будет от желтой черты (последнее столкновение) до конца кадра.
Старый временной отрезок:

Новый временной отрезок:


А раз мы обсчитывали самое раннее столкновение, то гарантия что столкновений нет слева от желтой черты 100%. Повторяем до тех пор пока не станет столкновений, или не кончится временной отрезок (что одно и тоже).
 
}0RIC)-(Дата: Воскресенье, 02.12.2012, 11:48 | Сообщение # 42
=\Good-Racer/=
Группа: Tuner's Edge
Сообщений: 921
Статус: Offline
Настало время вновь поработать. Изучив кучу всякой полезной бяки в С++ я решил заного всё переделать, но уже с возможностью расширения. т.е. если раньше я мог создавать только обычные сетки, то в новой версии будет возможно добавлять и другие классы, практически ничего не переписывая. Ну это в задумке, на деле пока только отображение Grid'ов:

Но буквально сегодня, завтракая, ко мне в голову пришла простая и в тоже время гениальная мысль по реализации отражений. Суть которой в том, чтобы реализовать "продвинутый spherical environment".
Обычный строится вот так:

Продвинутый:

Разница на деле:



Разница думаю очевидна) + если отрендерить несколько карт отражения и всем задать их центр, то отражениям будут как настоящие + я хочу прикрутить к отражения "Parallax occlusion mapping". Что даст еще больше реализма.
 
mixan_dokДата: Воскресенье, 02.12.2012, 18:20 | Сообщение # 43
Подполковник
Группа: Модераторы
Сообщений: 108
Статус: Offline
мало что понял . но выглядит круто biggrin
карта отражений , она как , меняется в онлайн режиме ? я не знаю просто biggrin


 
}0RIC)-(Дата: Воскресенье, 02.12.2012, 20:07 | Сообщение # 44
=\Good-Racer/=
Группа: Tuner's Edge
Сообщений: 921
Статус: Offline
mixan_dok, Карта отражений может и реал тайм расчитываться, может просто 1 раз при загрузке уровня, может просто быть взята из файла, это не важно. Просто реалтайм больше времени на обработку, следовательно ниже fps. Расчитаные зарание - выше fps, но больше памяти видюхи. Из файла - совсем всё просто.
Реалтайм отражения это просто рендер всей сцены для каждого объекта (Most Wanted).
При загрузке уровня - разбиение на зоны, и в каждой зоне рендер своей карты (Half-Life 2)
Из файла - одна картинка на отражения, и без разницы что за окружение (San Andreas).

Реалтайм отражения конечно самые правильные, но самые медленные. Я совмещу разбиение на зоны, параллакс, и расчет уровня. сделаю плавный переход между зонами. Это будет не реалтайм, но fps будет выше, да и качество должно быть более-менее.

Вообще я предпологаю сделать несколько уровней качества, понимаю что игра будет не на продажу, но настройки графики всеравно будут.
Будет что-то вроде:
Уровень 1: одна карта отражений, на которой ничего не разобрать.
Уровень 2: карты заранее расчитаны, через каждые 10 игровых метров карта заменяется другой.
Уровень 3: карты строятся реалтайм, используя лоуполи модельки.
Уровень 4: мой способ.
Урвоень 5: полный реалтайм.

Ну в общем работы еще...
 
LTKДата: Среда, 05.12.2012, 18:54 | Сообщение # 45
COMPTON
Группа: VIP
Сообщений: 1261
Статус: Offline
}0RIC)-(, devil



GTA это такая уникальная штука, на основе которой можно заколбасить практически что угодно... Shadow
 
}0RIC)-(Дата: Четверг, 06.12.2012, 15:24 | Сообщение # 46
=\Good-Racer/=
Группа: Tuner's Edge
Сообщений: 921
Статус: Offline
Я так подумал, буду постить всё что делаю, даже без скринов, потому что большинство моей работы происходит в C++.
1)Не так давно я реализовал динамически расширяющийся массив. Массив универсален и в нем можно хранить любые переменные. Принцип расширения в том, что при нехватке памяти, выделяется память побольше и из старого массива всё туда копируется.
2)Вчера закончил реализацию библиотеки, для работы с игровыми архивами. Теперь файлы моделек можно закидывать в один игровой архив и оттуда с ними работать. Игровой архив:

Заголовок:
Версия (4 байта), Количество зарезервированных ячеек в архиве (4 байта), Число файлов в архиве (4 байта)


Дальше идет так называемый ImagePath (файловая таблица)
Ячейка 1 (40 байт)
{
Смещение от начала архива, до начала файла (4 байта)
Смещение от начала архива до конца файла (4 байта)
Имя файла, без слэшей (32 байта т.е. символа)
}
Ячейка 2 (40 байт)
Ячейка 3 (40 байт)
...
Ячейка N (40 байт)
N - количество зарезервированных ячеек.


Дальше идут сами файлы.

Архив похож на архив Сан Андреса, только в него не добавить новые файлы если архив заполнен, но его также надо будет ре-билдить при замене файлов, т.к. стираются только сведения я о файлах, а сами файлы в архиве остаются. Новые файлы приписываются в конец архива.
 
}0RIC)-(Дата: Вторник, 11.12.2012, 17:30 | Сообщение # 47
=\Good-Racer/=
Группа: Tuner's Edge
Сообщений: 921
Статус: Offline
Поработал над камерой. Понял свои старые ошибки. С камерой у меня была отдельная проблема, я не знал как совместить камеру и действия пользователя, решил так - камера отдельно, действия пользователя отдельно. Теперь камера не зависит от Direct Input. Совмещение в устройствами ввода будет проходить в центральном блоке.


На действия пользователя реакции нет, но можете посмотреть на мою простенькую анимацию)

Само приложение


Сообщение отредактировал }0RIC)-( - Вторник, 11.12.2012, 17:44
 
}0RIC)-(Дата: Среда, 12.12.2012, 20:07 | Сообщение # 48
=\Good-Racer/=
Группа: Tuner's Edge
Сообщений: 921
Статус: Offline
Реализовал Кривые Безье, для тех кто не понял - "кривые линии в 3д"


С камерой ничего не делал, анимация таже:

Приложение
 
}0RIC)-(Дата: Четверг, 13.12.2012, 14:28 | Сообщение # 49
=\Good-Racer/=
Группа: Tuner's Edge
Сообщений: 921
Статус: Offline
Оптимизировал немного кривые, теперь их 2 вида - второго и третьего порядка.
Также их можно прикручивать к матрицам, как и сетки. Сделал для кривых интрепритацию (плавный переход от одного вида к другому).


Камера тут стоит на месте, как и свелтая плоскость, темная плоскость крутится по оси Z. К вращающейся плоскости прикручена кривая третьего порядка (желтая), к обычной - второго (красная). Обе кривые рандомно интерпритируются.

Приложение
 
mixan_dokДата: Четверг, 13.12.2012, 17:41 | Сообщение # 50
Подполковник
Группа: Модераторы
Сообщений: 108
Статус: Offline
успехи , круто )
работает норм ) тока кнопку выйти забыл сделать biggrin


 
Форум » Мастерская/Workshop » Проекты Tuner's Edge/Tuner's Edge Projects » Game Engine Programming by }0RIC)-(
  • Страница 5 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск:


Эксклюзивные моды для San Andreas и NFS © Все права защищены. Дизайн данного сайта Полностью Принадлежит Администратору Сайта Эксклюзивные  моды для San Andreas и NFS 2024 | Сайт оптимизирован под браузер Opera ,Firefox. Sitemap | Sitemap-forum.
Дизайн данного сайта полностью принадлежит администратору сайта.