Во первых я рад, что появилась реальная причина хоть что-то написать "по делу". Во вторых хочу поагитировать многих тоже попробовать Xors3D для своих проектов, благо движок уже достаточное время все улучшается и улучшается. А проекты Evil`а - прямое доказательство, что движок уже как минимум вполне пригоден для создания игр
ААА класса .
Оглашу некий список "говорящих за себя функций", которые мне понравились:
3D линии:
xCreate3DLine, x3DLineAlpha, xGet3DLineUseZBuffer, x3DLineColor, x3DLineAddNode, x3DLineNodesCount, etc...
Cоздание миров и переключение между ними:
xCreateWorld, xDeleteWorld, xSetActiveWorld, etc...
Работа с запакаоваными ресурсами !!!
xMountPackFile, xUnmountPackFile,
Логирование (особенно крут html лог):
xClearLogString, xCloseLog, xCreateLog ,xLogError,xLogFatal ,xLogInfo, xLogMessage, xLogWarning, xSetLogLevel, xSetLogTarget
Дебажить стало куда проще с ним!
Текстуры:
xCreateTextureFromData, xGetTextureData, xGetTextureDataPitch, xGetTextureFrames, xGetTextureSurface
Тени:
Тени реализованы очень удобно. Не буду перечислять ф-ции, просто скажу, что дело это юзаемо, я проверял.
Геометрия:
xCreateTorus (а блиц так не умел
), xLightMesh, xSaveMesh (fbx)
Ну пока хватит.
Так, а теперь вопрос к
тупым, не имеющим никакого отношения к хорсу разработчикам сего движка:
Я недавно купил видяху (^_____^) и у меня заработала такая штука, как Hardware Instancing
и я сразу побежал делать майнкрафт. Открываю семпл и смотрю, что на родитель инстансов надо натянуть шейдер перед тем как начинать массово плодить дешёвых клонов.
Пробую. Тестовые кубики с вашим логотипом их 20x20x20 = 20^3 = 8000 Нормальный тест. Поехали:
HWInstacing
FPS: 46
TrisRendered: 111132
DIP calls: 1
|
Shader emulation
FPS: 17
TrisRendered: 444528
DIP calls: 374
|
Without shader
FPS: 7
TrisRendered: 986760
DIP calls: 556
|
CopyEntity
FPS: 10
TrisRendered: 1683600
DIP calls: 35787
|
А теперь вопрос:
Можно хотябы намекнуть что же там такое внутри xCreateInstace накладное делается?
Почему он без шейдера тормознее чем CopyEntity?
Каковы критерии написания шейдера для того, чтоб с ним работала ф-ция xCreateInstance?
Данные о системе:
1 CPU: AMD Athlon(tm) 64 Processor 3000+ at 1808MHz (MMX, SSE, SSE2, SSE3, 3DNow!)
RAM: 1023 MBytes. Paged memory: 3162 MBytes.
Video: NVIDIA GeForce GT 440. VRAM: 993 MBytes.
Physical screen size: 410mm x 230mm. Aspect ratio: 1.78261 (41:23).
|
Баг
Не работает xClearWorld() Вылетает окно семёрки "Диагноста проблем и тд"
Его товарищ xReleaseWindow() Делает абсолютно тоже самое.
Однако ежели заглянуть в лог, то отчётливо видно, что ресурсы все почистились от начала до конца.
Прикладываю архив с тестами.
Пробел -> следующий тест + запись в файл показателей
Esc -> выход в любой момент