C3D Engine
обновлено инфо
C3D Engine является легковесным графическим, а в будущем и игровым движком, основанном на DirectX 9.0c использующем в основе визуализации шейдеры. Плотно интегрирован с физикой. Применяется для написания легковесных казуальных игр с наименьшими затратами времени. Как устроен конвейер визуализации: Программа -> Менеджер сцены -> Узел сцены -> Сетка -> Подсетка В свою очередь, при отрисовке подсетки, устанавливаются параметры эффекта – это матрицы world, view, projection не перемноженые, текстура и диффузный цвет материала. По умолчанию используется встроеный эффект. Можно загрузить и использовать свой. Эффекты можно применять к сеткам. Этот эффект будет действовать для всех узлов, где применяется сетка. Эффект можно применить отдельно для узла. Эффект можно применить отдельно к материалу сетки, относительно сетки или узла. Файл эффекта использует предустановленные переменные matrix WorldMatrix; //абсолютная мировая матрица объекта matrix ViewMatrix; // матрица вида matrix ProjMatrix; // матрица проекции matrix WorldViewProjMatrix; // перемноженая матрица float4 MatDiffuse; // диффузный цвет материала texture Tex; //текстура Для отображения объектов нужно создавать узлы сцены CreateNode(). Потом сетку нужно передать этому узлу NodeAttachMesh(node,mesh); Одна сетка может быть назначена на несколько узлов сцен, поэтому сетку не требуется грузить много раз, например для отображения однотипных объектов. Можно назначать эффекты и для отдельных узлов NodeSetEffect(node, effect). Эффектам можно задавать стандартные параметры Technique, Matrix, float, int, bool, float array, Texture. Эффекты так же можно назначить на часть объекта NodeSetEffectByMaterialId(node,effect,id) Узлы сцены могут иметь родителей, при этом все трансформации с узлом производятся локально. Объектам можно назначать физические тела (на данный момент куб, выпуклая форма и статичекий тримеш), не используйте физику для потомков. Потомки должны создаваться на уровне физики, если вы хотите иметь для них физические свойства. Можно определять столкновения с объектами (оба объекта должны быть физическими) На данный момент камера не может быть прикреплена ни к одному объекту, но можно производить перемещения и обзор. Работа с клавиатурой и мышью. Работа со скелетной анимацией. Экспорт анимации нужно производить из 3ds max с помощью плагина panda soft Разработка ведется одним человеком - мной :) Пример простого приложения: PHP код:
скелетная анимация оптимизировал всяческие вычисления СКАЧАТЬ СЕЙЧАС в архиве демо и документация |
Ответ: C3D Engine
Молодец, но в чём будут отличия от ксорса? По описанию ты делаешь то же самое :)
|
Ответ: C3D Engine
Ну тут заточено на шейдерах, будет свой формат с редактором. Я не собираюсь догонять ксорс по крутости, я делаю нечто другое, хоть и похожее. Здесь нет материалов, тут всем рулят файлы эффектов. И хочу добиться плотной интеграции с физическим движком. Формат сцен будет свой, а формат сетки будет X. Редактор сцен будет поддерживать импорта разных форматов, но выходной всегда будет един.
Конечно планы еще размытые, много еще стоит передумать... незнаю что получится. |
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
дружище, почему инт?
кто мешает делать так: Код:
NodeAttachMesh(mesh,node); |
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
Доступно обновление.
[101 - 15.03.2012] Добавлена поддержка пост-эффектов Добавлена физика trimesh, capsule, box, convex Изменена работа камеры, теперь она является узлом сцены Исправлены баги команды Drop. Мелкие фиксы |
Ответ: C3D Engine
[102 - 16.03.2012]
Создание нескольких камер Рендер в текстуру с определенной камеры 7 источников освещения Контроллер FPS Определение скорости мыши Оптимизация стандартного шейдера Перемещение мыши в определенную точку на экране Работа с контроллерами Узнавание поворота объекта Рендер заднего буффера в текстуру Оптимизация анимированных узлов Определения объекта коллизии Выбор объектов мышью |
Ответ: C3D Engine
Проект жив. Вы не думайте! Я изучал как работает анимация, и 3ds max SDK
Движок переписывается с нуля. Что готово на данный момент.
Использование звукового движка (пока не определился какого). Использование физики physx по умолчанию. SDK - возможность написания плагинов (пока не думал над тем как будет работать). Сделать много семантик на все случаи жизни и запилить попиксельное освещение с тенями в стандартном шейдере. В конечном итоге будет dll. Движок процедурный, потому что мне так нравится и это удобно (Blitz3D way). Почему я выбрал процедурность, а не объектность? Потому что большинство не хочет разбираться с ООП движком. Взять в пример Ogre3D не сложнее блица, но все же юзверов у него меньше, чем у того же блица, потому что блиц тупо удобней. |
Ответ: C3D Engine
Цитата:
|
Ответ: C3D Engine
В максе пробегаю по всем кадрам и извлекаю положение вершин помноженое на матрицу объекта. Этим методом неважно каким модификатором в максе сделана анимация, тем самым можно экспортировать совершенно любую анимацию
|
Ответ: C3D Engine
не гибко же. и по памяти - пипец.
|
Ответ: C3D Engine
насчет памяти - модель можно оптимизировать исключив каждый энный кадр. Анимация хуже не становится, памяти жрет меньше. Также можно хранить одну анимацию для энного кол-ва объектов, а не на каждый объект по анимации - тоже оптимизация.
ЗЫ если не ошибаюсь блиц конвертирует внутри себя в морф, а в файле модели лежит скелет. Это сделано для быстродействия анимации |
Часовой пояс GMT +4, время: 08:46. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot