Демка «BSP_Box».

06.09.2009 автор Романов Алексей

Добавил новый “краш тест”, на это раз проводим тестирование DynamicBSP - дерева. В демке используется 300 Box’сов и 2 двусторонние плоскости для увеличения количества разбиений. Так же демка динамическая, все объекты двигаются и крутятся.

Удалось решить проблему flash player’a  при рисовании полигонов с разрывами при “LOW QUALITY”. Теперь, при любой детализации, и при рендеренге DynamicBSPRender фильтром, швы от распилов BSP - деревом почти исчезли. Динамическое дерево стало более стабильным, теперь нет хаотичного разбиения (проводится выборка оптимальных объектов в роли сплиттеров и система приоритетов объектов - уменьшают количество разбиений).

_______________________________________

Последнее обновление демки: 16.09.2009 (Оптимизирован и ускорен DynamicBSPRender фильтр)

Комментарии (14) на “Демка «BSP_Box».”

  1. круто, но большинство граней паралельны, и пересечений не так уж и много. вот бы приделать кнопку для рандомного индивидуального вращения кубов, чтобы прочуствовать разницу )

  2. круто, но большинство граней паралельны, и пересечений не так уж и много. вот бы приделать кнопку для рандомного индивидуального вращения кубов, чтобы прочуствовать разницу )

    Вообще то много, но делаются они правильно, что бы незаметны были (рисуется на экран при видимости всей сцены до 5000 треугольников при динамическом дереве, без дерева до 2000):

    (проводится выборка оптимальных объектов в роли сплитеров, а так же система приоритетов объектов уменьшает количество разбиений)

    Демка на версии 1.3 без выборки оптимальных объектов и без системы приоритетов
    http://www.infinity3d-engine.com/example/dynamicBSP.html - разбиения хаотичны.

    Демка на версии 1.4 с выборкой оптимальных объектов и с системой приоритетов
    http://www.infinity3d-engine.com/example/dynamicBSP2.html - нет хаотичных разбиений и быстрее строится дерево.

  3. Heretic:

    Получил 24-32 FPS под Linux Firefox 3.0.13 и adobe-flashplugin 10.0.15.3

  4. adobe-flashplugin 10.0.15.3

    Обновите версию http://get.adobe.com/flashplayer

  5. makc3d, не совсем корректная демка на Alternativa3D.
    В вашей демки нельзя двигаться видимо по оси Z, например, если можно было бы двигатся по оси Z (как в моей), то можно было бы создать ситуацию когда в пирамиду видимости попадает 10 кубов. При этой ситуации в Alternativa3D FPS не поднимутся, т.к. все дерево перестраивается, а вот у меня серьезно возрастут до 80-90FPS.
    К сожалению не видно, есть ли там текстуры, если нет тогда совсем некорректная демка, т.к. используя FillMaterial в Infinity3D скорость возрастет на 20-30%.

    К слову (ракурсы обзора одинаковые, вся сцена попадает в пирамиду видимости, у себя включаю отображение ребер полигонов):
    1) Анимированная сцена: ваша демка на Alternativa3D 3-7FPS (30mb памяти), моя 27-33FPS(11mb памяти);
    2) Статичная сцена: ваша демка на Alternativa3D 10-18FPS (30mb памяти), моя те же самые 27-33FPS(11mb памяти);

    P.S. Скептикам просьба не писать ничего про мои результаты, пишите свои.

  6. - там есть такая возможность (Z/Пробел)
    - сравнение при 10 кубах бессмысленно, интересен именно случай, когда вся сцена в кадре
    - разумеется, на кубах битмапные текстуры

  7. сравнение при 10 кубах бессмысленно, интересен именно случай, когда вся сцена в кадре

    Не совсем, у меня сейчас в разработке проект, так там на сцене находится 300000++ полигонов и сцена динамическая с динамическим BSP - деревом. Проект работает при среднем FPS 48 для разрешения 800х600 и 29FPS для 1280х1024. Так, что это очень важный параметр и возможность для оценки общей производительности.

  8. Jumper:

    >>К слову (ракурсы обзора одинаковые, вся сцена попадает в пирамиду видимости, у себя включаю отображение ребер полигонов)

    При тех же самый условиях и браузере fireFox:

    1) Рабочий комп.

    Анимированная сцена:
    Alternativa3D 4-9FPS 37mb памяти
    Infinity3D 31-39FPS 10mb памяти

    Статичная сцена:
    Alternativa3D 11-19FPS 32mb памяти
    Infinity3D 32-44FPS 10mb памяти

    2) NetBook

    Анимированная сцена:
    Alternativa3D 0-2FPS 38mb памяти
    Infinity3D 13-18FPS 10mb памяти

    Статичная сцена:
    Alternativa3D 0-2FPS 32mb памяти
    Infinity3D 13-25FPS 10mb памяти

    Попробую дома на мощном компе потом отпишусь.

  9. best:

    Да ребят, Алексей прав, если уж сравнивать то надо идентичные примеры, иначе смысла нету… В любом случае альтернатива занимается непонятно чем… Если тут один человек сделал быстрее двиг чем целая команда. Алексей вы крут!

    300000++ полигонов ))) ну с помощью PVS дерева количество полигоном будет ограничиваться лишь памятью компа )))
    Собственно в краш тесте инетресует количество видимых треугольников, в случае бсп - их минимальное разрезание.

  10. @best из моего короткого опыта общения с Волковым у меня создалось впечатление, что он товарищ весьма авторитарный, т.е. хорошие шансы, что все решения по движку он принимает единолично и, т.о., фактически разрабатывает его сам, остальные в лучшем случае фиксят баги :) может, преувеличиваю, но мне так кажется.

  11. Jumper:

    Попробовал на мощном компе дома:

    Анимированная сцена:
    Alternativa3D 6-11FPS 37-43mb памяти
    Infinity3D 39-44FPS 9-11mb памяти

    Статичная сцена:
    Alternativa3D 14-23FPS 37-41mb памяти
    Infinity3D 41-48FPS 9-11mb памяти

    Память Alternativa3D при динамике очень сильно отъедает (прямо мегабайтами за каждый кадр), сборщик мусора непрерывно чистит.

    Заметил тенденцию, что чем мощнее компьютер, тем Infinity3D сильнее обгоняет Alternativa3D. Наверно у Infinity3D математика более быстрая. Очень интересно почему так?

    Цитата Алексея: “В вашей демки нельзя двигаться видимо по оси Z, например, если можно было бы двигатся по оси Z (как в моей), то можно было бы создать ситуацию когда в пирамиду видимости попадает 10 кубов. При этой ситуации в Alternativa3D FPS не поднимутся, т.к. все дерево перестраивается, а вот у меня серьезно возрастут до 80-90FPS.”

    Попробовал описанную ситуацию. Действительно так, как сказал Алексей, где-то 20 кубов в Alternativa3D показывают те же низкие FPS, а вот в Infinity3D FPS поднимаются до 90-100.

    Общая производительность Infinity3D серьезно превосходит.

    Посмотрел сегодня на список обновлений Alternativa3D 5.6, печально 10 месяцев прошло с последней версии, а по сути та же самая версия с исправлениями ошибок и добавлением смешного функционала.

    P.S Спасибо Алексей, за ваш движок и за ваши систематические релизы действительно новых версий.

  12. @Jumper,
    1 всё-таки в Alternativa3D фпс иногда поднимается, если камера попадает в “удачную” ветку дерева и на обход тратится меньше времени. не так ярко, как в Infinity3D, ибо механизм совсем другой - оттого и говорю, что в єтой ситуации просто нечего сравнивать.
    2 ты как-то не заметил, что всё это время Alternativa3D трудилась сначала над 6й, затем над 7й версией, а теперь больше над танчиками, чем над движком. то, что 5.6 стал bugfix release, ни для кого не было сюрпризом.
    @Алексей
    3 Оо, не спим в 3 утра, модерируем комментарии :) А тем временем в перми кстати тоже не спят

  13. Оо, не спим в 3 утра, модерируем комментарии

    Нет, не комментарии.
    Ага не сплю, работа кипит: делаю демку Sound3D и переношу все старые примеры и исходники на новую версию, а самое главное причесываю версию 1.4 :) .

    А тем временем в перми кстати тоже не спят…

    Бывает.

Оставить комментарий