CRUSIS 9000

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: CRUSIS 9000

Сообщение vada » 29.06.2016 17:35:21

Прикольно. Пили! Нравица!!!!! :)
Аватара пользователя
vada
энтузиаст
 
Сообщения: 645
Зарегистрирован: 14.02.2006 13:43:17

Re: CRUSIS 9000

Сообщение Cheb » 01.07.2016 13:58:17

Скомпилировал под FPC 3.0

О, о, о страшно то как :shock: Какие ты страшные вещи делаешь!

Окей, мой мир разрушен.

Я ищо когда ковырял paszlib, делая поддерживающую потоки версию, обратил внимание как ураганно быстро она распаковывает.
Код: Выделить всё
(поток №1) got a task: TFileLoadTask
  actualizing #4/13, TTextureFromImage
    ..asset refused, rescheduling.
(поток №1)    TFileLoadTask.Perform (*M/env/mc-oa-dm02/mc-oa-dm02_ft.png)...
  actualizing #5/13, TTextureFromImage
(поток №1)     TZipFile.ReadFile(*M/env/mc-oa-dm02/mc-oa-dm02_ft.png)...
    ..asset refused, rescheduling.
TLogic.ActualizeAssets end.

[кадр №65, 12:51:44.786, Пт, 01.07.2016]
(поток №1)       ..unpacked 269114 bytes in 5330 μs
(поток №1)      TFileLoadTask.Perform end(269114 bytes from *M/env/mc-oa-dm02/mc-oa-dm02_ft.png)...
(поток №1)   completed TFileLoadTask


Но, как никто не использует сжатие NTFS,

Я использую! :D Потому что SSD на ноутбуке не резиновый.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 577
Зарегистрирован: 06.06.2005 15:54:34

Re: CRUSIS 9000

Сообщение runewalsh » 30.11.2016 05:12:46

Когда прочитал про ReadDirectoryChanges.
Изображение
Аватара пользователя
runewalsh
постоялец
 
Сообщения: 316
Зарегистрирован: 27.04.2010 00:15:25

Re: CRUSIS 9000

Сообщение runewalsh » 19.01.2017 01:38:04

https://github.com/runewalsh/rox-loh/re ... .0/rox.rar
Сделал двухминутное кинцо.

Изображение

В целом, конечно, зря потратил время, но, по крайней мере, понял, как НУЖНО БЫЛО работать с окном в основном движке. Когда я там писал работу с окном (основной цикл, официальный финт с двойным контекстом OGL, ввод, вот это всё), я считал, что кукарекнуть в лог, а дальше будь что будет — допустимая обработка ошибки, а здесь вроде по уму получилось. Попробую как-нибудь потом дописать всякие фуллскрины и перенести реализацию. Это позволит, например, выбросить часть самопального GUI в OpenGL-вьюпорте, отвечающую за самопальную же мышку, воспользовавшись тем, что система уже сообщает. Один из сопутствующих бонусов — синхронность мышки в системе и в «своём» UI.

Бонусом же всего подхода с нормальной обработкой оконных ошибок является то, что всю эту OpenGL-кухню становится возможным встроить в другое приложение (как просмотрщик и т. п.), а не только саму делать приложением, но до этого, боюсь, не дойдёт.
Аватара пользователя
runewalsh
постоялец
 
Сообщения: 316
Зарегистрирован: 27.04.2010 00:15:25

Re: CRUSIS 9000

Сообщение скалогрыз » 19.01.2017 03:58:23

аааааа! как V-sync отключить или в полноэкранный режим войти?
(у мну железка/дровишки глючные, в оконном режиме с включённым V-sync, почему-то жуткие тормоза!)

Погуглил - проблема с Nvidia панелью управления. Просто отключил принудительный Vsync.

Добавлено спустя 20 минут 3 секунды:
окончание классное xD стильно чо!
скалогрыз
долгожитель
 
Сообщения: 1630
Зарегистрирован: 03.09.2008 02:36:48

Re: CRUSIS 9000

Сообщение Cheb » 03.02.2017 18:02:48

Когда прочитал про ReadDirectoryChanges.

Круто! Надо себе такую фичу сделать. Изображение
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 577
Зарегистрирован: 06.06.2005 15:54:34

Re: CRUSIS 9000

Сообщение runewalsh » 23.04.2017 21:06:51

Попробовал переписать пространственные деревья: моя реализация от 2k11 слегка глючила и требовала вызывать перестроение явно, а теперь решил для каждого узла вести учёт ИСКАЖЕНИЙ (красные прогрессбары толщиной в пиксель), и по превышении порога искажённости перестраивать узел без участия пользователя. По части глюков получилось ещё хуже прежних, вплоть до неработоспособности. На гифке-то всё в порядке, но вот на реальной сцене... Нужно ковырять. Например, записать последовательности операций с деревом, приводящие к «невозможным» результатам, и плясать от них. Эх, вот я криворучка.

Изображение
Аватара пользователя
runewalsh
постоялец
 
Сообщения: 316
Зарегистрирован: 27.04.2010 00:15:25

Re: CRUSIS 9000

Сообщение Cheb » 26.04.2017 10:18:49

Уй ё, брутально то как :(
Но вот без такой "подводной части айсберга" как раз получаются говнодвижки, вроде TES где ИИ тупит как пробка пока не запустишь на супер-пупер мощном процессоре.

Спасибо за идею, увидев это у меня расклинило мыслительный затык. До меня дошло, что объекты совершенно не обязательно хранить в той же структуре, что и мини-октри блоков чанка (в терминах майнкрафта). Можно же что-то совершенно не зависящее, типа BVH на сферах.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 577
Зарегистрирован: 06.06.2005 15:54:34

Re: CRUSIS 9000

Сообщение runewalsh » 26.04.2017 21:32:51

В «говнодвижках» это реализовано.

Только между нами, но на разумных количествах объектов без дерева быстрее, а неразумным дерево не поможет.
Например, у меня строится граф из 10000 путевых точек (само по себе глупость, ну да ладно) группами по 100, и каждая группа, присоединяясь, ищет ближайшие к каждой из своих, чтобы ими «склеиться».
Получается 16 мс с новым деревом (ну это ладно, предположим, я слишком агрессивную логику автоперестроения задал), 9 мс со старым... и 3 мс простым перебором вообще всех.

Я уже сталкивался с этим, когда решил проверить, на сколько же A* «быстрее» поиска в ширину — получился тот же самый, обратный ожидаемому результат. Нет, возможно, возмооожно, на миллионах точек, построенных специальным образом, поиск в ширину будет работать две секунды, а а-стар — всего лишь полторы...
Аватара пользователя
runewalsh
постоялец
 
Сообщения: 316
Зарегистрирован: 27.04.2010 00:15:25

Re: CRUSIS 9000

Сообщение Cheb » 26.04.2017 22:58:00

Только между нами, но на разумных количествах объектов

Ёлки Изображение
Так ведь можно в преждевременную оптимизацию вляпаться. :x

Хмм... Прикинем: мир 80 мегабайт, память 8 Гб/с, за секунду можно перебаламутить 100 раз с полным загрязнением кеша, то есть модифицировать *все* объекты - и то всё упрётся в расчётные алгоритмы, которые по времени не уложатся.

Так, решено: *прежде* чем разводить супер-пупер менеджеры памяти - взять и померить. И на i5 с ddr3 и на ARM с DDR2.
И измерить, сколько будет это "разумное количество". Может, 50..100.

Во, ещё идея возникла: гибрид ужа и ежа, octree и bvh. У каждого листа центр фиксированный а ещё радиус в который полностью влезают все объекты. Радиус ствршего листа такой, что влезают все дочерние листы.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 577
Зарегистрирован: 06.06.2005 15:54:34

Re: CRUSIS 9000

Сообщение Mirage » 27.04.2017 00:34:55

Да обычный grid решает проблему, что вы мучаетесь. Деревья если и нужны, то в очень специфических случаях.
Mirage
энтузиаст
 
Сообщения: 748
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: CRUSIS 9000

Сообщение zub » 27.04.2017 22:34:51

Стиль написания кода очень оригинальный)) использую для тестов fpc-passrc - на багтрекере матерятся, но правят))
zub
долгожитель
 
Сообщения: 2133
Зарегистрирован: 14.11.2005 23:51:26

Пред.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru