forum.boolean.name

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

moka 09.02.2009 17:12

Ответ: Sigel
 
Полный фич лист хотелось бы посмотреть, взглянуть так и прикинуть, что бы мне к примеру не хватало для создания полноценного FPS.

HolyDel 09.02.2009 17:24

Ответ: Sigel
 
Код:

* рендер статики
** из системной памяти
** из видеопамяти (по умолчанию)

* рендер анимированных md2 моделей
** только из системной памяти пока
** из видеопамяти (по кадрам)
** из видеопамяти (с интерполяцией)

* текстуры
** загрузка
** генерация
** рендер "в"
** отображение (mytex->Show(x,y));
** анизотропка
** автосжатие (можно отключить)
** кубемапы
** сферомапы
** мультитекстуринг до 32 текстур на один объект (аппаратно держит конечно меньше)

*ЛоД система
** неограниченное число ЛоДов на модель
** независимый тип лода (это может быть что угодно, но обязательно того-же типа, что и основная модель, хоть свет, хоть спрайтовая система, хоть еще что угодно)

* Скорсотные спрайтовые системы
** простой рендер
** рендер залоченой (крест накрест) системы

* Рендер счстемы частиц
** Возможность загрузки из файла
** Высокая скорость работы
** Возможность менять параметры эммитера из программы (в разработке)

* Рендер BillBoard-ов
** Высокая скорость отрисовки
** Возможность замораживать квад по каким либо осям

* Рендер в текстуру (всего один метод!)
** копирование tex->grab()

* Контейнеры объектов, и их рендер
** Добавление/удаление объектов
** полноценный рендер

* Загрузка текстур из разных форматов, в том числе 3д текстуры (DevIL)
** загрузка из разных форматов (см. ниже)
** сохраниение в несколько форматов (см. ниже)
** загрузка 3д текстур из dds и vxp файлов.

*Нативно поддерживаемые форматы (без DevIL-а)
**bmp
**dds
**jpg
**tga

* Достаточно прост, даже для новичков
** примеры см. здесь: http://sigel.likosoft.ru/help/index....1%8B_(Samples)

*Возможно назначение объектоам функций - обработчиков (возможно создание callback систем)
** на отрисовку
** на удаление
** после прикрепления шейдера (для записи в шейдер uniform параметра)
** есть два служебных поля int tag и float tagf.

*высокоуровневые шейдеры
** GLSL
** в т.ч. геометрические шейдеры (возможности DX10 без гламурной и казуальной висты!)
** простая записиь uniform параметров.

*видео (только несжатое avi)
** видеотекстуры
** theora (через шейдеры)
*2D
** быстрый вывод 2д графики
** 2D примитивы
*** Прямоугольник
*** Линия (в разработке)
*** Овал (в разработке)
*** Скругленный прямоугольник (в разработке
** Влияние конвеера на 2д графику
** Использование текстур, в качестве растра для 2д графики
** Влияние шейдеров (как вершинных, так и пиксельных) на 2д графику

*Текстурные шрифты
** Загрузка
** Генерации нет ((
** Быстрая отрисовка
** Генерация текстур для целых фраз (потом выводить их будет намного быстрее, называется статичный вывод)
** TextRect(const char *text,int x,int y,int width,int height,int position) - последний параметр. смещение относительно первого символа. надо для прокрутки.

*GUI
** Общая система стилей
** Возможность загрузки стиля из файла

*Физика (PhysX)
** примитивы - плоскость, бокс, сфера (пока только так)
** приминение сил, получение позиции, привязка к объекту (принцип - прикрепил тело и забыл)

*Скрипты(Lua)
** Создание скриптовой машины
** линковка функций

*Дополнительно
** Мастер для MS Visual Studio 2005

рассматриваются любые предложения от самых простых до самых сложных.
что у меня в планах на ближайшие пол года:
1) скелетка (кудаж без нее)
2) набор шейдеров (чтобы не писать:
Код:

Shader *bump = new Shader("bump");
загрзка из файлов bump.psh, bump.vsh и bump.gsh, если есть
а например
Код:

Shader *bump = SigelShaders::Load(SS_BUMP);
и файлы не нужны будут.
3) html логи.
4) окошки при вонингах и эррорарх. (при соответствующих дефайнах) (например не найдена модель или фейсы у кубемапы разные)
5) рендер в кубемапу (типа tex->Render(x,y,z,nx,ny,nz);)
6) оптимизацию рендера террайна (чтобы рендерился по кускам, а не весь сразу, как сейчас)

moka 09.02.2009 17:32

Ответ: Sigel
 
1. Интерфейс по работе с мешами как развит?
2. Какие потдерживаются форматы?
3. Есть ли у моделей иерархия Чайлдов?
3. Материалы, есть ли FFP или только Shader'а? (Я полностью за Только Shader'а, т.к. FFP давно в прошлом, и только лишняя нагрузка на код)
4. Альфа сортировка?
5. Какие куллинги реализованы?
6. Слыхал ещё про сортировку стейтов - что очень мощно оптимизирует.
7. ПНГ формата не хватает в тексах.

HolyDel 09.02.2009 17:37

Ответ: Sigel
 
МоКа, большое спасибо! дельные советы! чуть позже отвечу на все вопросы.

impersonalis 09.02.2009 18:38

Ответ: Sigel
 
*импер пускает слюни на клаву*

HolyDel 09.02.2009 19:16

Ответ: Sigel
 
Цитата:

1. Интерфейс по работе с мешами как развит?
мешев нет. есть сюрфейсы. можно получать вершины, индексы, задавать позицию, нормаль, тк вершин, задавать индексы. Можно копировать сюрфейсы, есть FitSphere(float radius), UpdateNormals, FitSphere, FitBox, AutoCenter, можно аттачить к одному сюрфейсу другой.

Цитата:

2. Какие потдерживаются форматы?
в 3д - только нативный текстовый формат s3m
звуки(bass) - wav,mp3,ogg, xm, mod
картинки(c devil-ом) - кучу форматов, без него - список выше.

Цитата:

3. Есть ли у моделей иерархия Чайлдов?
есть. но пока нельзя получить абсолютную позицию или абсолютный поворот.

Цитата:

3. Материалы, есть ли FFP или только Shader'а? (Я полностью за Только Shader'а, т.к. FFP давно в прошлом, и только лишняя нагрузка на код)
ФФП тоже поддерживается. материалов отдельно нет.

Цитата:

4. Альфа сортировка?
нет.
//правка: появилась 3-его марта 2009-ого года

Цитата:

5. Какие куллинги реализованы?
фрустум.

Цитата:

6. Слыхал ещё про сортировку стейтов - что очень мощно оптимизирует.
слышал, но не использовал.
// появилась 4 марта 2009-ого года.

Цитата:

7. ПНГ формата не хватает в тексах.
через DevIL грузить можно :)

moka 09.02.2009 19:58

Ответ: Sigel
 
Вопрос, относительно FFP - если в движке использовать Только Shader'ы, наличие FFP функционала, не теснит произвдительность?

HolyDel 09.02.2009 20:12

Ответ: Sigel
 
теснит чучуть. чем меньше шейдеров (разных) тем меньше теснит.

SBJoker 09.02.2009 20:49

Ответ: Sigel
 
Кстати да, полный фиче лист бы непомешал... Реклама двигатель всего...

moka 09.02.2009 21:03

Ответ: Sigel
 
Олег, если задуматься, есть ли актуальность в FFP, учитывая нацеленность движка?
И есть ли конкретная нацеленность движка?
Если проанализировать проекты начиная с 2006 года, ААА класса, FFP там не используется вообще.
Но естественно и движёк под такой класс игр тоже должен быть ААА класса.
Это к тому, что есть ли возможность, безболезненно "извлечь" весь FFP функционал из движка?

HolyDel 10.02.2009 00:20

Ответ: Sigel
 
MoKa, я думаю ффп еще некоторе время будет актуальным.
например, на моей видюхе обычный шейдер сжирает примерно 20% быстродействия от ффп. Хотя и делает то же самое (а может и меньше).

Отказываться от ффп надо только если писать на огл3, на совсем уж будущее. Но, я думаю к тому времени начну новый двиг. Этот - все же больше експерементальная площадка нежели двиг.

moka 10.02.2009 00:48

Ответ: Sigel
 
HolyDel, понял. Хороший опыт приобретаешь.

ABTOMAT 10.02.2009 00:57

Ответ: Sigel
 
Вообще имхо двиг должен быть универсален.
И как можно более совместим/кроссплатформенен, так шо ФФП будет не лишним.

moka 10.02.2009 02:27

Ответ: Sigel
 
ABTOMAT, если расчёт на высокую аудиторию, 10-30% производительности выйграть, засчёт того что не будет примитивной системы рендеринга - сама нацеленность на более серьёзную графику, что щас в лбой игре - обязательно! Даже хорошая графика 2D игр, частично на шейдерах построена.

HolyDel 10.02.2009 03:23

Ответ: Sigel
 
10 процентов слишком жирно, может 3-4.

новое. добавленна поддержка видео - theora (феора).
это абсолютно свободный формат, его можно использовать как угодно.

рендер осуществляется через шейдеры (позднее введу и софтверный режим).


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

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