forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   C3D Engine (http://forum.boolean.name/showthread.php?t=16433)

4yBa4Ok 22.05.2012 17:25

Ответ: C3D Engine
 
Цитата:

Сообщение от pozitiffcat (Сообщение 228512)
Да. Искаробки будет bullet. Верней он уже есть )))

Это был не вопрос а утверждение)

pozitiffcat 23.05.2012 13:35

Ответ: C3D Engine
 
Чуть чуть осталось до беты
ToDo
Что нужно сделать
• Выделение объектов мышью (после беты)
• Методы для настройки RigidBody
• Попиксельное освещение (после беты)
• Множество проходов с источниками света (пока не вкурсе как делается) (после беты)
• Тени в стандартном шейдере (после беты)
• Настройка физики из скрипта материала
• Везде сделать корректное удаление (проверить)
• попроверять правильность поворотов, преобразований (перед релизом беты)
• нормальная обработка типов освещения и направления (после беты)
• blitz3d wrapper, c++ wrapper, c# wrapper

Что сделано
• Пост – эффект
• Использовать центрирование при извлечении меша из нода (перемножить каждую точку на минус матрицу положения меша из 3dsMax)
• Получение объектов по именам, задавание имен, получение в виде списка. Получать например так list_count(), get_list_item(int)
• Задать fov
• Получение текстового значения имени класса
• Возможность получить имя класса нода, это может быть свет, камера, модель или просто нода
• Анимации могут быть различные на все подмодели одной модели
• Названия анимаций
• 2д графика
• Переработаны скрипты материалов
• Альфа канал в шейдерах теперь обрабатывается CMaterial::setAlphaEnabled(bool state)
• Текст
• Удаление физики с объекта
• PointTo у камеры, да и вообще у объектов
• Обработка моделей вообще без текстур
• Рендер в чужое окно
• Аудио
• Менеджер звуков
• Загрузка звука
• Проигрывание звука
• Нормальный mouselook
• Функция движения move
• Работа с разными менеджерами сцены (теоретически работает)
• Улучшить координаты текстур при выгрузке из 3ds max (вроде норм)
• При экспорте затирать существующий материал
• Назначать текстуру нормали из 3ds max
• Рендер с камеры
• Камера может быть нодом и цепляться к чему угодно
• Свет может быть нодом и цепляться к чему угодно
• Установка шейдера и техники в материале
• Работа с несколькими камерами
• Исключить варнинги в коде
• Сохранение позиций объектов в файл
• Морфная анимация не грузится повторно для каждого подобного объекта, а берется из кэша
• Проверены правильность работы матриц в иерархии
• Извлечение мешей модели по имени в отдельную ноду
• Текстуры и морфы удаляются с удалением сцены
• Логи
• Освещение (список ламп в менеджере сцены)
• Настройка параметров эффекта
• Физика Bullet
• Физический мир
• Добавление физических тел

pozitiffcat 23.05.2012 21:56

Ответ: C3D Engine
 
Новенький видос... кому интересно
http://www.youtube.com/watch?v=WRFwZ...ature=youtu.be

Без фрапса (запись видео) выдает 184 FPS это физика с конвексами, звук, анимации, 9 человечков и 64 мб ОЗУ
23 FPS выдают 169 человечков и 77 мб жрут озу.
100 человечков 39 FPS

ЗЫ. если убрать загрузку текстур жрет 17 мб озу... это у мя текстуры огромные )))))

pozitiffcat 24.05.2012 15:15

Ответ: C3D Engine
 
добавил Frutsum culling, теперь FPS зависит только от того что попадает на экран, в дальнейших планах реализовать occlusion culling. Так что теперь хоть 100500 человечков FPS может быть 400-500 =)
кстати кому интересно мой проц E3300 NVIDIA GT240, и тестится еще на INTEL X4500. фпсы плавают примерно в полтора раза между этими двумя видеокартами. если на NVIDIA 500 то на интеле 350

pozitiffcat 25.05.2012 14:45

Ответ: C3D Engine
 
Поработал с производительностью, теперь скорость отрисовки как в ксорсе, на скринах ниже это видно. Плюс в моем сэмпле еще конвексная физика ест ФПС.. но это мелочи. Честно, не думал, что ксорс такой быстрый движок. До сих пор не понимаю как он сделал такой быстрый рендер. Пустое окно 3000 ФПС против моего 900 ФПС, причем я пробовал без своего движка напрямую юзать функции DirectX и все равно 900 фпс. КАК???? компилятор MSVS 2010. Загруженая сцена по FPS одинакова, вместе с анимациями и физикой.

HolyDel 25.05.2012 17:56

Ответ: C3D Engine
 
Дружище, если хочешь посоревноваться с действительно быстрым движком, то вот тебе бенчмарки.
4096 кубов (без инстансинга, ибо это тест цены ентити)
http://axelynx.googlecode.com/files/...enchmark10.zip

вывод тяжелой геометрии
http://axelynx.googlecode.com/files/...yBenchmark.zip

спрайтовая система:
http://axelynx.googlecode.com/files/...sBenchmark.zip

Цитата:

Пустое окно 3000 ФПС против моего 900 ФПС, причем я пробовал без своего движка напрямую юзать функции DirectX и все равно 900 фпс. КАК????
Sleep(1) may be?

pozitiffcat 27.05.2012 17:38

Ответ: C3D Engine
 
http://malcdevelop.ru/uploads/cg3d129.zip
релиз беты.
Я тут так подумал... че плодить неактуальщину, займуська я DirectX11.

HolyDel 28.05.2012 00:05

Ответ: C3D Engine
 
годное решение. однако есть еще мобильные платформы. а там opengl es.
хотя на winphone api dx11 c аппаратной поддержкой фич dx9.

pozitiffcat 28.05.2012 02:33

Ответ: C3D Engine
 
Уже есть успехи... впринципе тоже самое, что и DX9, тока с анимацией еще не понятно, как передавать в шейдер инфу...

HolyDel 28.05.2012 13:35

Ответ: C3D Engine
 
а как матрицы трансформации передаешь и прочую лабуду?

pozitiffcat 28.05.2012 20:13

Ответ: C3D Engine
 
Там в четвертых шейдерах есть специальный константный буфер. Если ты по 9 директ то там я семантики во всю использую, очень удобно.

HolyDel 28.05.2012 21:03

Ответ: C3D Engine
 
Цитата:

Там в четвертых шейдерах есть специальный константный буфер.
я в курсе :)
всмысле вот через cb и передавай анимацию.

pozitiffcat 29.05.2012 00:05

Ответ: C3D Engine
 
Цитата:

Сообщение от HolyDel (Сообщение 228950)
я в курсе :)
всмысле вот через cb и передавай анимацию.

В морфной анимации мне придется загружать два буфера вершин в константы, что бы интерполировать потом вершину, не слишком ли тормознуто это будет?:dontknow:

HolyDel 29.05.2012 00:13

Ответ: C3D Engine
 
нене.
передаешь только скаляр между первым и вторым буфером

в аттрибутах вершины должна быть текущая позиция и следующая.

я еще думал заливать все в float текстуру и одной выборкой с текустуры ставить позицию в нужное место. но пока не реализовал.

pozitiffcat 29.05.2012 00:59

Ответ: C3D Engine
 
Цитата:

Сообщение от HolyDel (Сообщение 228961)
нене.
передаешь только скаляр между первым и вторым буфером

в аттрибутах вершины должна быть текущая позиция и следующая.

я еще думал заливать все в float текстуру и одной выборкой с текустуры ставить позицию в нужное место. но пока не реализовал.

Я собираюсь передавать индекс вершины и 2 массива с вершинами xyz - это фреймы между которыми нужно интерполировать ну и соответственно время от 0 до 1


Часовой пояс GMT +4, время: 13:29.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot