Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты C++

Ответ
 
Опции темы
Старый 03.03.2012, 13:03   #1
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
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
Разработка ведется одним человеком - мной

Пример простого приложения:
#include <string>
#include "c3dengine.h"
using namespace std;
int main()
{
    
Init(1024,768);
    
CameraSetPosition(0,20,-30);
    
CameraSetTarget(0,0,0);
    
int mesh LoadMesh("tiny\\tiny.x");
    
int node CreateNode();
    
NodeAttachMesh(nodemesh);
    while(
Loop())
    {
        
Cls();
        if(
IsKeyDown(KEY_ESCAPE)) break;
        
Render();        
        
Flip();
    }
    
Drop();
    return 
0;

добавил работу с физикой convex, trimesh, и функции для настройки параметров body
скелетная анимация
оптимизировал всяческие вычисления

СКАЧАТЬ СЕЙЧАС в архиве демо и документация

Последний раз редактировалось pozitiffcat, 07.03.2012 в 15:36.
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо pozitiffcat за это полезное сообщение:
4yBa4Ok (03.03.2012), HolyDel (03.03.2012), Mr_F_ (03.03.2012), St_AnGer (03.03.2012)
Старый 03.03.2012, 14:05   #2
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: C3D Engine

Молодец, но в чём будут отличия от ксорса? По описанию ты делаешь то же самое
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
4yBa4Ok (03.03.2012)
Старый 03.03.2012, 15:46   #3
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

Ну тут заточено на шейдерах, будет свой формат с редактором. Я не собираюсь догонять ксорс по крутости, я делаю нечто другое, хоть и похожее. Здесь нет материалов, тут всем рулят файлы эффектов. И хочу добиться плотной интеграции с физическим движком. Формат сцен будет свой, а формат сетки будет X. Редактор сцен будет поддерживать импорта разных форматов, но выходной всегда будет един.
Конечно планы еще размытые, много еще стоит передумать... незнаю что получится.
(Offline)
 
Ответить с цитированием
Старый 03.03.2012, 19:02   #4
4yBa4Ok
Знающий
 
Аватар для 4yBa4Ok
 
Регистрация: 01.04.2011
Адрес: Екатеринбург
Сообщений: 232
Написано 48 полезных сообщений
(для 82 пользователей)
Ответ: C3D Engine

Сообщение от pozitiffcat Посмотреть сообщение
И хочу добиться плотной интеграции с физическим движком.

А ты можешь юзать физический двиг либо Havok либо PhysX?
__________________





(Offline)
 
Ответить с цитированием
Старый 03.03.2012, 19:06   #5
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

Сообщение от 4yBa4Ok Посмотреть сообщение

А ты можешь юзать физический двиг либо Havok либо PhysX?
только bullet из-за его легковесности
(Offline)
 
Ответить с цитированием
Старый 03.03.2012, 19:14   #6
4yBa4Ok
Знающий
 
Аватар для 4yBa4Ok
 
Регистрация: 01.04.2011
Адрес: Екатеринбург
Сообщений: 232
Написано 48 полезных сообщений
(для 82 пользователей)
Ответ: C3D Engine

Сообщение от pozitiffcat Посмотреть сообщение
только bullet из-за его легковесности

Печалька....
__________________





(Offline)
 
Ответить с цитированием
Старый 04.03.2012, 01:24   #7
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: C3D Engine

дружище, почему инт?

кто мешает делать так:
NodeAttachMesh(mesh,node);
(Offline)
 
Ответить с цитированием
Старый 04.03.2012, 01:44   #8
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

Сообщение от HolyDel Посмотреть сообщение
дружище, почему инт?

кто мешает делать так:
NodeAttachMesh(mesh,node);
для интеграции с другими ЯП
(Offline)
 
Ответить с цитированием
Старый 15.03.2012, 11:30   #9
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

Доступно обновление.
[101 - 15.03.2012]
Добавлена поддержка пост-эффектов
Добавлена физика trimesh, capsule, box, convex
Изменена работа камеры, теперь она является узлом сцены
Исправлены баги команды Drop.
Мелкие фиксы
(Offline)
 
Ответить с цитированием
Старый 16.03.2012, 16:47   #10
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

[102 - 16.03.2012]
Создание нескольких камер
Рендер в текстуру с определенной камеры
7 источников освещения
Контроллер FPS
Определение скорости мыши
Оптимизация стандартного шейдера
Перемещение мыши в определенную точку на экране
Работа с контроллерами
Узнавание поворота объекта
Рендер заднего буффера в текстуру
Оптимизация анимированных узлов
Определения объекта коллизии
Выбор объектов мышью
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
HolyDel (19.03.2012)
Старый 16.05.2012, 12:59   #11
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

Проект жив. Вы не думайте! Я изучал как работает анимация, и 3ds max SDK
Движок переписывается с нуля. Что готово на данный момент.
  1. Свой формат моделей (*.cg3d и *.cg3dm скрипт материала к ним)
  2. Экспортер из 3ds max (пока что скомпилировал для 2010 версии)
  3. Анимация, морф, скелет (в конечном итоге все преобразуется в морф. Для скорости, ведь это же Casual Engine...)
  4. Шейдеры (пока только стандартный, каким отрисовывается)
  5. Семантики
Что в планах. Вкратце.
Использование звукового движка (пока не определился какого). Использование физики physx по умолчанию. SDK - возможность написания плагинов (пока не думал над тем как будет работать). Сделать много семантик на все случаи жизни и запилить попиксельное освещение с тенями в стандартном шейдере.
В конечном итоге будет dll. Движок процедурный, потому что мне так нравится и это удобно (Blitz3D way). Почему я выбрал процедурность, а не объектность? Потому что большинство не хочет разбираться с ООП движком. Взять в пример Ogre3D не сложнее блица, но все же юзверов у него меньше, чем у того же блица, потому что блиц тупо удобней.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pozitiffcat за это полезное сообщение:
HolyDel (16.05.2012), St_AnGer (16.05.2012)
Старый 16.05.2012, 13:13   #12
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: C3D Engine

Анимация, морф, скелет (в конечном итоге все преобразуется в морф. Для скорости, ведь это же Casual Engine...)
а как считаешь морф?
(Offline)
 
Ответить с цитированием
Старый 16.05.2012, 13:26   #13
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

В максе пробегаю по всем кадрам и извлекаю положение вершин помноженое на матрицу объекта. Этим методом неважно каким модификатором в максе сделана анимация, тем самым можно экспортировать совершенно любую анимацию
(Offline)
 
Ответить с цитированием
Старый 16.05.2012, 13:48   #14
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: C3D Engine

не гибко же. и по памяти - пипец.
(Offline)
 
Ответить с цитированием
Старый 16.05.2012, 14:02   #15
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

насчет памяти - модель можно оптимизировать исключив каждый энный кадр. Анимация хуже не становится, памяти жрет меньше. Также можно хранить одну анимацию для энного кол-ва объектов, а не на каждый объект по анимации - тоже оптимизация.

ЗЫ если не ошибаюсь блиц конвертирует внутри себя в морф, а в файле модели лежит скелет. Это сделано для быстродействия анимации
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com