Тема: xCreateInstance
Показать сообщение отдельно
Старый 25.06.2011, 04:21   #1
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,358
Написано 2,472 полезных сообщений
(для 6,854 пользователей)
xCreateInstance

Во первых я рад, что появилась реальная причина хоть что-то написать "по делу". Во вторых хочу поагитировать многих тоже попробовать 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 -> выход в любой момент
Вложения
Тип файла: 7z InstancingTest.7z (1.35 Мб, 485 просмотров)
Тип файла: 7z InstancingTest_2.7z (2.79 Мб, 558 просмотров)

Последний раз редактировалось Randomize, 25.06.2011 в 07:27.
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
.Squid (02.07.2011), moka (25.06.2011), Mr_F_ (25.06.2011), St_AnGer (25.06.2011)