Dff_Andreas (Release Development) -
Mutha_X - 15.02.2015
Многие местные форумчане, наверно, знакомы с такими разработками, как MapAndreas и ColAndreas (
https://sampforum.blast.hk/showthread.php?tid=560218 ) и, если вы являетесь таковым, то вам и расписывать здесь особо ничего не нужно.
Как вы уже поняли из названия темы, в качестве объектов для проведения расчётов будут использоваться не модели коллизий (.col), а визуальные модели (.dff и без текстур).
Основная ставка в этом проекте была поставлена на мощную самооптимизационную способность, причём именно за счёт неё достигается высокая производительность и малое потребление оперативной памяти.
На данный момент (15.02.15) достигнуты следующие показатели:
* Потребление ОЗУ в штатном/базовом режиме: 65 МБт.
* Потребление ОЗУ в оптимизированном режиме: 20-70 и до 150 МБт (в зависимости от выбранных параметров).
* Производительность: 390 мс уходит на обсчёт 1000 рэйкастингов (против 300мс на 1000 у Поттуса(это на винде), однако, этот результат можно ещё улучшить, было бы время на это).
** [Данные получены при тестировании на винде поэтому результаты на линуксоидах также могут быть получше.]
Задание для себя
Превзойти colandreas по производительности (в рамках тестирований на лине)
Quote:
Originally Posted by Pottus
Quote:
Originally Posted by Mutha_X
...
I just wanted to ask you for a data for stresstest (or speedtest) like starting position of camera, it`s direction, number of iteration and time of computing (ray-casting) that all , ... to compare performance.
...
|
We tried to make a MapAndreas ultra 12000x12000 = 144,000,000 raycasts that took 15 minutes.
160,000 Raycasts per second.
|
Текущие native`ы:
PHP код:
native DA_ResetWorldData();
native DA_LoadWorldData();
native DA_UnloadAllModels();
native DA_SendCommand(cmdtxt[]);
DA_RaycastSimple(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ,&Float:distresult,&result,&Float:x,&Float:y, &Float:z);
DA_RaycastSimpleGetDist(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ,&Float:distresult,&result);
DA_RaycastADV(Float:StartX, Float:StartY, Float:StartZ, Float:EndX, Float:EndY, Float:EndZ, &Float:distresult,&result,ignorematerialsmask,&ressurface,&itemid,&modelid,&Float:x,&Float:y, &Float:z);
DA_GetModelFramesNum(...);
DA_GetModelVerticlesNum(...);
DA_GetModelPolygonesNum(...);
DA_GetModelVerticlePos(...);
DA_GetObjVerticlePos(...);
DA_GetModelPolygoneInfo(...);
DA_GetMaxVerticles(...);
DA_GetMaxFrames(...);
DA_GetMaxPolygones(...);
DA_GetStaticObjectsNum(...);
DA_GetModelSurfaceType(...);
DA_GetObjNormalVector(...);
DA_RaycADV2(...);
DA_CheckModelExistence(...);
Пока без исходников, как у коллеги по ColAndreas.
Используемые в DA_SendCommand(cmdtxt[]); команды (для работы в режиме консоли):
pawn Код:
helpswe //- список комманд плагина.
loadpack //- //загрузить все модели объектов из архива.
savepack //- сохранить все модели объектов в архив.
archall //- сохранить все загруженные файлы в объединённые по типу архивы.
ldffall //- произвести загрузку всех моделей объектов из оригинальных .dff файлов (не использовать)
unloadall //- отгрузить все загруженные модели объектов.
homecomp //- составление бинарного древа объектов.
rcmpobjs //- обработка моделей объектов на предмет чистки их избыточной информации.
mostusedmodels //- выводит количество использованных на карте повторяющихся объектов в файл SWE_files/most_used_models.txt.
Re: Dff_Andreas (Release Development) -
Makar93 - 15.02.2015
Плагин проверки наличия коллизии между двумя точками?) Я просто не в курсе коландреаса.
Re: Dff_Andreas (Release Development) -
White_116 - 15.02.2015
Quote:
Originally Posted by Makar93
Плагин проверки наличия коллизии между двумя точками?) Я просто не в курсе коландреаса.
|
Да, так же можно получить расстояние до столкновения и ещё кучу всего.
Re: Dff_Andreas (Release Development) -
n0minal - 15.02.2015
Sorry for speaking english here but do you will post it on english section? I would like to try this...
Ya lublu guys xD
Re: Dff_Andreas (Release Development) -
stabker - 15.02.2015
Круто. Он будет учитывать динамические объекты мира (игроков, машин)?
Re: Dff_Andreas (Release Development) -
Mutha_X - 15.02.2015
Игроков и машин - по желанию, но разрушаемые объекты (фонарные столбы, коробки) нет, хотя можно изменить - так как нет смысла в этом из-за рассинхрона.
Re: Dff_Andreas (Release Development) -
The_Creator - 16.02.2015
Будет репозиторий на Github или что-то подобное?
Re: Dff_Andreas (Release Development) -
lost13 - 18.02.2015
Для передвижения NPC'юх можно использовать вместо MapAndreas'a?
Re: Dff_Andreas (Release Development) -
White_116 - 18.02.2015
Quote:
Originally Posted by lost13
Для передвижения NPC'юх можно использовать вместо MapAndreas'a?
|
Конечно можно, она точнее мап андреас, так же для нпс можно сделать видимость врагов, обработка выстрелов, нахождение стен, вплоть до того, что нпс могу забираться на стены.
Re: Dff_Andreas (Release Development) -
lost13 - 19.02.2015
Пример можно? Как узнать что под нпс есть пол? Или препядствие перед ним?
Re: Dff_Andreas (Release Development) -
Mutha_X - 19.02.2015
Пол - "стреляешь" 1 вектором вниз от координаты нпс, препятствие - вектор по направлению facingangle от нпс, во всех случаях проверяешь расстояние до пересечения и факт пересечения (result=1), во втором ещё придётся брать нормаль поверхности и проверять что она почти или совсем параллельна горизонтальной плоскости мира (с нормалями попозже, в colandreas уже есть, поэтому во избежание путаницы функция будет похожей).
С гитхабом - не знаю(не обитал на проектах подобного типа). Сначала нужно добиться юзабельности и производительности, а времени не очень много.
Re: Dff_Andreas (Release Development) -
lost13 - 19.02.2015
Спасибо, я понимаю что нужно "стрелять", я не понимаю как)
Re: Dff_Andreas (Release Development) -
vampir9763 - 20.02.2015
Первый раз с такими плагинами сталкиваюсь, можно ли с помощью него определить расстояние от игрока до объекта, в той стороне, куда смотрит игрок?
Re: Dff_Andreas (Release Development) -
Mutha_X - 20.02.2015
Quote:
Originally Posted by lost13
Спасибо, я понимаю что нужно "стрелять", я не понимаю как)
|
Quote:
Originally Posted by vampir9763
Первый раз с такими плагинами сталкиваюсь, можно ли с помощью него определить расстояние от игрока до объекта, в той стороне, куда смотрит игрок?
|
Code:
...
new string[64];
new Float:px, Float:py, Float:pz;// playerpos
new Float:cx, Float:cy, Float:cz;// camera dir
new Float:returndistance, iscollisionfound;
GetPlayerPosition(playerid,px,py,pz);
GetPlayerCameraFrontVector(playerid, cx, cy, cz);// End* - нормированный вектор направления
DA_RaycastSimpleGetDist(px, py, pz, cx, cy, cz, 10.0,returndistance,iscollisionfound); // в десяти метрах от игрока по направлению камеры ищет "стену"
if(iscollisionfound)// ==true ->
{
format(string,64,"Коллизия найдена на расстоянии %.1f метров.",returndistance);
SendClientMessage(playerid, -1, string);
}
else
{
SendClientMessage(playerid, -1, "Коллизия не найдена");
}
...
Re: Dff_Andreas (Release Development) -
stabker - 04.03.2015
А будут ли вычисления достаточно быстрыми, чтоб без проблем обрабатывать стрельбу из оружия? И примерно когда релиз?
Re: Dff_Andreas (Release Development) -
White_116 - 06.03.2015
Quote:
Originally Posted by stabker
А будут ли вычисления достаточно быстрыми, чтоб без проблем обрабатывать стрельбу из оружия? И примерно когда релиз?
|
Для небольшого ТДМ хватит, но в потоках было бы вообще шикарно.
Re: Dff_Andreas (Release Development) -
Crayder - 07.03.2015
Quote:
Originally Posted by n0minal
Sorry for speaking english here but do you will post it on english section? I would like to try this...
Ya lublu guys xD
|
Same here.
What is the point of this plugin?
Re: Dff_Andreas (Release Development) -
lost13 - 23.03.2015
Так его уже скачать то можно или нет?
Re: Dff_Andreas (Release Development) -
Mutha_X - 04.05.2015
Ну что же, поставленной цели в виде большей производительности в аналогичном тесте (смотрите видео из первого сообщения темы ColAndreas) добились:
Теперь 1000 итераций "рей-кастингов" выполняются за 430 тиков против 300~310.
Дабы уточнить (но всё же этого будет мало для полной картины дела) на чём у кого тестировалось по ЦПУ (из тех данных что доступны).
У Поттуса: i5 (Lynnfield) 2.4 ГГц
У меня: Core Duo E6120 2.14 ГГц
В связи с этим объявляю, что можно будет в скорое время будет поиграться с тестовой версией (напишите в ЛС). А также здесь или также в ЛС отпишитесь, если хотите видеть какой-либо дополнительный функционал и с прочими пожеланиями) (доступный скриптам очень сильно ограничен).
For outsiders(not rus lang):
The point of this plugin is the same point of ColAndreas, but it is uses dff-modelsdata for some reasons i need in future. The reason of location this plugin in this section is early development status.
Re: Dff_Andreas (Release Development) -
OKStyle - 19.05.2015
А где плагин взять-то? Мне нужно движение по параболе с отскоками =)