15.02.2015, 08:52
(
Последний раз редактировалось Mutha_X; 10.06.2016 в 12:58.
)
Многие местные форумчане, наверно, знакомы с такими разработками, как MapAndreas и ColAndreas ( https://sampforum.blast.hk/showthread.php?tid=560218 ) и, если вы являетесь таковым, то вам и расписывать здесь особо ничего не нужно.
Как вы уже поняли из названия темы, в качестве объектов для проведения расчётов будут использоваться не модели коллизий (.col), а визуальные модели (.dff и без текстур).
Основная ставка в этом проекте была поставлена на мощную самооптимизационную способность, причём именно за счёт неё достигается высокая производительность и малое потребление оперативной памяти.
На данный момент (15.02.15) достигнуты следующие показатели:
* Потребление ОЗУ в штатном/базовом режиме: 65 МБт.
* Потребление ОЗУ в оптимизированном режиме: 20-70 и до 150 МБт (в зависимости от выбранных параметров).
* Производительность: 390 мс уходит на обсчёт 1000 рэйкастингов (против 300мс на 1000 у Поттуса(это на винде), однако, этот результат можно ещё улучшить, было бы время на это).
** [Данные получены при тестировании на винде поэтому результаты на линуксоидах также могут быть получше.]
Задание для себя
Превзойти colandreas по производительности (в рамках тестирований на лине)
Текущие native`ы:
Пока без исходников, как у коллеги по ColAndreas.
Используемые в DA_SendCommand(cmdtxt[]); команды (для работы в режиме консоли):
Как вы уже поняли из названия темы, в качестве объектов для проведения расчётов будут использоваться не модели коллизий (.col), а визуальные модели (.dff и без текстур).
Основная ставка в этом проекте была поставлена на мощную самооптимизационную способность, причём именно за счёт неё достигается высокая производительность и малое потребление оперативной памяти.
На данный момент (15.02.15) достигнуты следующие показатели:
* Потребление ОЗУ в штатном/базовом режиме: 65 МБт.
* Потребление ОЗУ в оптимизированном режиме: 20-70 и до 150 МБт (в зависимости от выбранных параметров).
* Производительность: 390 мс уходит на обсчёт 1000 рэйкастингов (против 300мс на 1000 у Поттуса(это на винде), однако, этот результат можно ещё улучшить, было бы время на это).
** [Данные получены при тестировании на винде поэтому результаты на линуксоидах также могут быть получше.]
Задание для себя
Превзойти colandreas по производительности (в рамках тестирований на лине)
Quote:
Originally Posted by Pottus
Quote:
160,000 Raycasts per second. |
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(...);
Используемые в DA_SendCommand(cmdtxt[]); команды (для работы в режиме консоли):
pawn Код:
helpswe //- список комманд плагина.
loadpack //- //загрузить все модели объектов из архива.
savepack //- сохранить все модели объектов в архив.
archall //- сохранить все загруженные файлы в объединённые по типу архивы.
ldffall //- произвести загрузку всех моделей объектов из оригинальных .dff файлов (не использовать)
unloadall //- отгрузить все загруженные модели объектов.
homecomp //- составление бинарного древа объектов.
rcmpobjs //- обработка моделей объектов на предмет чистки их избыточной информации.
mostusedmodels //- выводит количество использованных на карте повторяющихся объектов в файл SWE_files/most_used_models.txt.