forum.boolean.name

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

jimon 10.08.2012 14:09

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

Сообщение от HolyDel (Сообщение 235890)
и все таки - ты для всей геометрии так делаешь?

множишь вершины на матрицу на процессоре?

с чего ты вообще взял что я множу вершины на матрицу ? я написал что двиг делает за кадр 12k умножений матриц, если представить что мы не будем считать никаких матриц, а будем только множить вектора позиций на матрички то это 4096 * 8 = 32768 операций, что уже не совпадает

я считаю на CPU только MVP матрицу (model_view_prj) ибо для мобильников множить три матрицы в вертексном шейдере довольно медленно, сами же вершины геометрии множатся на матрицу в вертексном шейдере, кроме спрайтов и текстов, чтобы рисовать спрайты и тексты вместе за один дип приходится их складывать в один батч, при добавлении их в батч я и множу их вершины на MV матрицу (model_view), умножение на Prj матрицу уже идет в шейдере для всего батча (ессно если две камеры рисуют разные спрайты то это уже будет 2 дипа)

HolyDel 10.08.2012 16:06

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

чтобы рисовать спрайты и тексты вместе за один дип приходится их складывать в один батч
кубы ты тоже складываешь в батч? или все же он рисуется за 4096 дипов?
если складываешь в батч только кубы в этой демке - то это InstancedEntityCost.
если рисуешь каждый своим дипом или складываешь в батч любую геометрию, или это автоматом определяется (например судя по количеству вершин) - то это EntityCost.
ибо Entity могут быть с разными шейдерами, текстурами, блендингом и т.д.

в общем, если пользователь просто создает ентити, а оно батчится автоматом, то ето EntityCost, если пользователь создает специальную группу, или еще там как-то, то это InstancedEntityCost.

jimon 10.08.2012 16:26

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

Сообщение от HolyDel (Сообщение 235914)
кубы ты тоже складываешь в батч? или все же он рисуется за 4096 дипов?
если складываешь в батч только кубы в этой демке - то это InstancedEntityCost.
если рисуешь каждый своим дипом или складываешь в батч любую геометрию, или это автоматом определяется (например судя по количеству вершин) - то это EntityCost.
ибо Entity могут быть с разными шейдерами, текстурами, блендингом и т.д.

у меня геометрия не складывается в батчи, потому в демке 4096 дипов, можно юзать инстансинг, но он :
1) появился только в opengl es 3.0
2) я не нашел ему применения в реальных играх

ps. если реально в такой демке сделать разные материалы и текстуры - видеодрайвер умрёт, можешь проверить

den 10.08.2012 16:29

Ответ: axelynx
 
Вообщем либу собирать не стал (уж больно она огромная), использовал уже собранную. Собираю проект. Собрался.
Код:
Код:

#include <axelynx/axelynx.h>

using namespace axelynx;

int main()
{
    Engine *eng = Engine::Init();
    eng->Free();
    return 0;
}

Выход в консоль:
Цитата:

FILENAME FILENAME FILENAME:/
плюс ещё три не читаемых символа

лог создался, но он пустой.

ЧЯДНТ?

HolyDel 10.08.2012 16:34

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

у меня геометрия не складывается в батчи, потому в демке 4096 дипов
а, ну тогда нет вопросов :) тогда респект :)

Цитата:

ps. если реально в такой демке сделать разные материалы и текстуры - видеодрайвер умрёт, можешь проверить
верю :)

Den
все правильно сделал.
что попросил движок - то он и сделал.
инициализировался и тупо закрылся.

хочешь что-то увидеть - создай окно.

Код:

#include <axelynx/axelynx.h>
 
using namespace axelynx;
 
int main()
{
    Engine *eng = Engine::Init();
    Window *wnd = eng->AddWindow(512,512);
 
    while(wnd->isRunning())
    {
                wnd->Flip();
    }
 
    eng->Free();
        return 0;
}


den 10.08.2012 16:47

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

Сообщение от HolyDel (Сообщение 235917)

Den
все правильно сделал.
что попросил движок - то он и сделал.
инициализировался и тупо закрылся.

хочешь что-то увидеть - создай окно.

Код:

#include <axelynx/axelynx.h>
 
using namespace axelynx;
 
int main()
{
    Engine *eng = Engine::Init();
    Window *wnd = eng->AddWindow(512,512);
 
    while(wnd->isRunning())
    {
                wnd->Flip();
    }
 
    eng->Free();
        return 0;
}


чёрное окошко, всё норм.
Лог:
Код:

succers: 512 XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0" after 2466 requests (2466 known processed) with 0 events remaining.
это нормально?)

pozitiffcat 10.08.2012 16:47

Ответ: axelynx
 
holydel А у тебя реально работают несколько окон с выводом в каждое разных сцен?

pozitiffcat 10.08.2012 16:48

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

Сообщение от Den (Сообщение 235920)
чёрное окошко, всё норм.
Лог:
Код:

succers: 512 XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0" after 2466 requests (2466 known processed) with 0 events remaining.
это нормально?)

у тя линукс на виртуалке чтоли?

den 10.08.2012 16:51

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

у тя линукс на виртуалке чтоли?
нет, на реальной.

HolyDel 10.08.2012 16:57

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

holydel А у тебя реально работают несколько окон с выводом в каждое разных сцен?
пока нет. но в планах было чтобы на разные окошки можно было вывести разную графику.
надо будет немного менять архитекутуру в получении Canvas-ов, и там вывод 2д графики.

Цитата:

succers: 512 XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0" after 2466 requests (2466 known processed) with 0 events remaining.
хз что ето такое :)
в самом html-файле логов ничего нет? окошко как я понял не появилось?

pozitiffcat 10.08.2012 17:01

Ответ: axelynx
 
там какая то фишка с переключением контекстов при рендере в разные окна... причем не кроссплатформенная вроде...

HolyDel 10.08.2012 17:10

Ответ: axelynx
 
окна тоже не кроссплатформенны.

думаю будет либо как-то так:
Код:

Camera *cam1 = scene1->AddCamera(win1->GetCanvas());
Camera *cam2 = scene2->AddCamera(win2->GetCanvas());
...
scene1->Render();
scene2->Render();
win1->Flip();
win2->Flip();

либо как то так:
Код:

win1->SetCurrent();
scene1->Render();
win2->SetCurrent();
scene2->Render();
win1->Flip();
win2->Flip();


den 10.08.2012 17:22

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

Сообщение от HolyDel (Сообщение 235924)
пока нет. но в планах было чтобы на разные окошки можно
хз что ето такое :)
в самом html-файле логов ничего нет? окошко как я понял не появилось?

это и было в html логе) в консоль выводиться FILENAME FILENAME FILENAME:/
окошко создалось

pozitiffcat 10.08.2012 17:31

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

Сообщение от HolyDel (Сообщение 235928)
окна тоже не кроссплатформенны.

думаю будет либо как-то так:
Код:

Camera *cam1 = scene1->AddCamera(win1->GetCanvas());
Camera *cam2 = scene2->AddCamera(win2->GetCanvas());
...
scene1->Render();
scene2->Render();
win1->Flip();
win2->Flip();

либо как то так:
Код:

win1->SetCurrent();
scene1->Render();
win2->SetCurrent();
scene2->Render();
win1->Flip();
win2->Flip();


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

HolyDel 10.08.2012 18:24

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

окошко создалось
ну и отлично, спасибо за тест :)

Цитата:

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

moka 10.08.2012 18:30

Ответ: axelynx
 
А можно сделать так:

Окна разные, следственно канвы разные, а контекст один.
Далее, Создавая разные окна для них будет автоматом создаваться своя сцена.
Далее есть два цикла обработки окон (в данном случае, я как понимаю callback функции).
И далее в этих уже функциях идёт своя обработка для определённой сцены.
Но тут маленькая неприятность - если на второе окно установить сцену из первого, тогда цикл обработки второго окна - не уместен?
Получается цикл обработки идёт не на окно, а скорее на сцену?

Мде, понесло меня..

HolyDel 10.08.2012 18:50

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

Окна разные, следственно канвы разные, а контекст один.
разные окна -разные контексты. но с расшаренными ресурсами.

Цитата:

Далее, Создавая разные окна для них будет автоматом создаваться своя сцена.
не гибко. например, мне нужно 4 окна для 3д редактора. но в них будет одна сцена отображаться.

Цитата:

И далее в этих уже функциях идёт своя обработка для определённой сцены.
обработка явно вызывается из главной функции.

pozitiffcat 10.08.2012 19:11

Ответ: axelynx
 
Для 3d редактора юзают вьюпорты одного окна. но всеже чем гибче тем лучше

wolfhound512 10.08.2012 23:57

Ответ: axelynx
 
Замечания по новой версии:
1) axelynx::MouseY(), axelynx::MouseX() возвращают координаты относительно окна, а axelynx::SetMousePos() устанавливает координаты глобально. Как-то не сходится.

2) _surface->Resize( tris, verts )
CreateSurface( verts, tris )
Параметры поменяны местами. Не страшно, но сначала не заметил и получил ошибку.

3) Установка вершин списками работает, но еще бы и индексы вершин треугольников так задать.

4) Не хватает функции GetRotation()

HolyDel 11.08.2012 09:56

Ответ: axelynx
 
1, 2, 3 спасибо, не заметил. Исправлю.
4 - в углах Эйлера чтоли? Такого не будет скорее всего. Всетаки ориентация хранится в кватернионах

pozitiffcat 12.08.2012 17:29

Ответ: axelynx
 
Получение поворота надо. вдруг юзер захочет прикрутить другой физический движок... или еще чего...

wolfhound512 12.08.2012 22:43

Ответ: axelynx
 
1) Что-то не то с axelynx::Camera::ST_LEFT_HANDLE. Если его установить, то вижу только черный экран.
2) SetVerticesTexCoords() ругается: "Нарушение прав доступа при чтении". Видимо в memcpy указан размер vec3 вместо vec2.
3) axelynx::quat::ToMat3 возвращает пустую матрицу.
4) Предлагаю в axelynx::quat добавить методы:
Код:

axisX() { return vec3( 1 - 2*y*y  - 2*z*z, 2*x*y - 2*z*w, 2*x*z + 2*y*w ); }
axisY() { return vec3( 2*x*y + 2*z*w, 1 - 2*x*x  - 2*z*z, 2*y*z - 2*x*w ); }
axisZ() { return vec3( 2*x*z - 2*y*w, 2*y*z + 2*x*w, 1 - 2*x*x - 2*y*y ); }

5) При создании своего окна требуются ли дополнительные действия кроме нижеприведенных?
Код:

axelynx::Window::SystemHandle handle( MySystemHandle );

Engine *eng = Engine::Init();
Window *wnd = eng->ApplyWindow( &handle, 32, 0 );

while( MyUpdateWindow() /* Обработка сообщений окна */ ) {
        /* ... Render */

        wnd->Flip( false ); /* false - отключение обработки сообщений двиком? */
}


HolyDel 13.08.2012 21:33

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

1) Что-то не то с axelynx::Camera::ST_LEFT_HANDLE. Если его установить, то вижу только черный экран.
странно. у меня работало.

Цитата:

2) SetVerticesTexCoords() ругается: "Нарушение прав доступа при чтении". Видимо в memcpy указан размер vec3 вместо vec2.
спасибо. надо посмотреть.
\\правка - так и есть :)

Цитата:

3) axelynx::quat::ToMat3 возвращает пустую матрицу.
странно. эта штука работает в сэмплах.
возможно после последних правок что-то слетело.

Цитата:

4) Предлагаю в axelynx::quat добавить методы:
спасибо. нужные методы. добавлю.

Цитата:

5) При создании своего окна требуются ли дополнительные действия кроме нижеприведенных?
эм. может отвалиться ввод, поведение при сворачивани-разворачивании, и еще что-то. тебе так уж нужна своя обработка сообщений? я думаю лучше оставлять очередь обработки сообщений движку. хотя по идее - должно работать.

wolfhound512 13.08.2012 22:00

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

Сообщение от HolyDel (Сообщение 236156)
эм. может отвалиться ввод, поведение при сворачивани-разворачивании, и еще что-то. тебе так уж нужна своя обработка сообщений? я думаю лучше оставлять очередь обработки сообщений движку. хотя по идее - должно работать.

Я именно из-за ввода и делаю свою обработку событий, т.к. нужен более полный доступ к нему. В общем-то, все прекрасно работает, просто хотел узнать, требуются ли какие-нибудь дополнительные действия.

HolyDel 20.08.2012 20:05

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

1) axelynx::MouseY(), axelynx::MouseX() возвращают координаты относительно окна, а axelynx::SetMousePos() устанавливает координаты глобально. Как-то не сходится.
пофиксил. теперь везде используются локальные координаты.


Цитата:

2) _surface->Resize( tris, verts )
CreateSurface( verts, tris )
Параметры поменяны местами. Не страшно, но сначала не заметил и получил ошибку.
пофиксил. теперь везде сначала указывается число вершин.

Цитата:

3) Установка вершин списками работает, но еще бы и индексы вершин треугольников так задать.
теперь можно задавать.

Цитата:

1) Что-то не то с axelynx::Camera::ST_LEFT_HANDLE. Если его установить, то вижу только черный экран.
там, оказывается, рендерятся бекфейсы. это я тоже пофиксил.

Цитата:

2) SetVerticesTexCoords() ругается: "Нарушение прав доступа при чтении". Видимо в memcpy указан размер vec3 вместо vec2.
пофиксил

Цитата:

4) Предлагаю в axelynx::quat добавить методы:
добавил.

wolfhound512 22.08.2012 20:11

Ответ: axelynx
 
При использовании _font->Draw() текст криво отображается:

Код:

        _canvas->SetBlendMode( axelynx::BM_ALPHA );
        _canvas->SetRotate( 0 );
        _canvas->SetColor( .4, .8, .6 );
        _font->StartDraw( _canvas );
        _canvas->SetPosition( 10, 50 );
        _font->Draw( _canvas, L"DIP: 14" );
        _font->EndDraw();
        _canvas->Text( 10, 70, L"DIP: 15" );

И положение текста по оси Y не верное: если указать Y=30 и менее, то текст уходит вверх за край экрана

ЗЫ. Когда предполагается выход версии под линукс?

HolyDel 22.08.2012 20:21

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

ЗЫ. Когда предполагается выход версии под линукс?
под линукс на данный момент не работают фритайп-шрифты и theora видео. остальное работает.

+ я не знаю пока как мне собрать deb пакет.
просто выложить хидеры и so-шки чтобы можно собирать версии под линукс я могу и щас. но это не спортивно. хочу sudo apt-get axelynx.

вывод текста пачками (StartDraw / EndDraw давно не проверял), спасибо за находку ошибки :)

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

wolfhound512 22.08.2012 22:53

Ответ: axelynx
 
Еще вопрос: текстурные координаты считаются от правого нижнего края изображения - это ошибка или в ОГЛ так заведено?

HolyDel 22.08.2012 22:59

Ответ: axelynx
 
в ОГЛ так заведено - но во всяких прямоугольниках и прочем 2д я инвертировал это. чтобы считалось от правого верхнего края. если где-то считается от правого нижнего - то это ошибка.
естественно, для пользовательских фигур этого нет. там надо учитывать, что по огл считает стартовым именно нижний левый угол. и при рендере в текстуру это надо учитывать тоже, да.

немного посидел над профайлером и увеличил скорость вывода статического текста (через StartDraw / EndDraw) на 30%.

moka 23.08.2012 00:27

Ответ: axelynx
 
С правого верхнего? А не с левого верхнего обычно?

HolyDel 23.08.2012 01:04

Ответ: axelynx
 
ой. конечно с левого. и верхнего и нижнего, но левого.

pozitiffcat 23.08.2012 22:06

Ответ: axelynx
 
слушай, каким и как ты пользуешься профайлером?
пробовал какими то стандартными средствами студии, толи не понял, толи отстой непонятный... можешь ссылку кинуть на то чем ты пользуешься

HolyDel 23.08.2012 22:16

Ответ: axelynx
 
стандартным профайлером 2012-й студии. intrusive режим. быстро и качественно. не реклама.

pozitiffcat 23.08.2012 22:32

Ответ: axelynx
 
хм.. спасибо, я 2012 еще в глаза не видел если честно =)

HolyDel 23.08.2012 22:43

Ответ: axelynx
 
Вложений: 1
ну он на самом деле такой-же и в 2010-й практически ))

вроде все что нужно в нем есть:
Вложение 17495

HolyDel 26.08.2012 15:28

Ответ: axelynx
 
перевел перемножение матриц на SSE. правда серьезного прироста производительности это не дало.

4yBa4Ok 18.09.2012 16:34

Ответ: axelynx
 
Вложений: 1
Што тут не так?

HolyDel 18.09.2012 16:55

Ответ: axelynx
 
солюшен под 2012 студию. но он по идее должен был быть только в репозитоии О_о. в инсталяционных пакетах должны были быть солюшены только для 2010 студии.

4yBa4Ok 18.09.2012 17:27

Ответ: axelynx
 
У меня 12 студия

HolyDel 18.09.2012 18:17

Ответ: axelynx
 
какая версия движка? 1.08? 1.085?

4yBa4Ok 18.09.2012 19:15

Ответ: axelynx
 
1.085
________
Все разобрался, у меня криво стоит студия.

HolyDel 18.09.2012 21:35

Ответ: axelynx
 
оказалось, что не все работает из-под коробки в 2012 студии. буду исправлять.

4yBa4Ok 19.09.2012 21:43

Ответ: axelynx
 
Поставил 2010, все на ура)

moka 12.10.2012 01:59

Ответ: axelynx
 
Помню ты что-то волуметрическое делал на шейдерах..
Тут наткнулся на прикольные гифки фруктов, если взять и разбить на 3д текстуру, было бы круто увидеть в волуметрии..
http://www.buzzfeed.com/atmccann/7-f...t-to-eat-again

Morganolla 20.10.2012 18:15

Ответ: axelynx
 
HolyDel ,
вот есть еще такой современный движок Horde3D под OGL... Чтобы ты про него мог сказать в сравнении с твоим движком...? просто интересно...:) Скажем почему нужно писать свой если есть уже Хорда?

HolyDel 20.10.2012 19:31

Ответ: axelynx
 
посмотри на синтаксис хорды;
http://www.horde3d.org/docs/html/_tutorial.html
он сильно избыточен на мой взгляд.
сравни с моим:
http://likosoft.com/axelynx_wiki/ind...l:loading_mesh
код прост и лаконичен (ну тут конечно - каждому свое).
C-API интерфейс движка конечно поможет его много где использовать, в отличии от интерфейса на классах, но интеллисенс не подскажет если что.

Далее, у них минимальная поддержка SM2 (а значит никаких геометрических шейдеров, у меня SM4)

По фичам - их у хорды больше, чем у меня. Но у меня есть довольно таки современные фичи - вроде загрузки шейдеров из бинарников, а них нет.

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

код хороший у них, да.
а у меня и вовсе закрытый ))

Цитата:

Скажем почему нужно писать свой если есть уже Хорда?
ну, не знаю почему ты выбрал именно хорду))) скорее смысл теряется на фоне юнити и бесплатных ЮДК / крайтека.

ну или на шарпе можно писать так:
Код:

static class Program
    {
     
        public static MainForm form;
        public static bool mStarted  =false;
        public static Window wnd = null;
        public static Engine engine = null;
        public static Camera camera = null;
        public static Canvas canvas = null;

        //---------------------------------------------------------------------------------------------------

        class Box
        {
            public Pivot ent;
            public float angle, radius, y, dangle;

            public void update()
            {
                angle += dangle;
            }
        };

        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new MainForm());

            form = new MainForm();
            form.Show();

            engine = Engine.Init();
            wnd = engine.ApplyWindow(form.ViewportHandle(), 32, 0);

            wnd.VSync(false);

            canvas = engine.GetCanvas();
            Scene scene = engine.AddScene();

            camera = scene.AddCamera();

            Surface cube_s = Library.Surfaces.Cube(2);
            Random rnd = new Random();

            InstanceGroup instances_g = engine.CreateInstanceGroup();
            instances_g.SetGeometry(cube_s);

            Entity instances = scene.Add(instances_g,0);
            instances.SetShader(Library.Shaders.TexturingInstanced(), true);
 
            instances.SetTexture(engine.LoadTexture(@"..\..\texture.png"),0,true);

            List<Box> boxes = new List<Box>(100);

            for (int i = 0; i < 10000; ++i)
            {
                Box box = new Box();

                box.ent = instances_g.AddInstance();
                box.angle = (float)rnd.Next(36000) * 0.01f;
                box.y = (float)rnd.Next(-10000, 10000) * 0.01f;
                box.dangle = (float)rnd.Next(-50, 50) * 0.0001f;
                box.radius = (float)rnd.Next(1000, 4600) * 0.1f;
               
                boxes.Add(box);
            }

            camera.ClearColor(0.1f, 0.2f, 0.33f, 1);

            Font fnt = engine.LoadFreeTypeFont("arial.ttf", 32);
            canvas.SetFont(fnt);

            camera.SetDrawMode(Camera.DrawMode.SOLID);

            foreach (Box box in boxes)
            {
                float x = (float)Math.Sin(box.angle) * box.radius;
                float z = (float)Math.Cos(box.angle) * box.radius;
                box.update();
                box.ent.SetPosition(x, box.y, z);
            }

            do
            {
                Application.DoEvents();

                if (mStarted)
                {
                    foreach (Box box in boxes)
                    {
                        float x = 0;
                        float z = 0;
                        axmath.SinCos(box.angle, ref x, ref z);
                        x *= box.radius;
                        z *= box.radius;

                        box.update();
                        box.ent.SetPosition(x, box.y, z);
                    }
                    scene.Render();
                    canvas.SetBlendMode(BlendMode.ALPHA);
                    canvas.Text(20, 20, "test", false);
                    wnd.Flip(true);
                }
            }
            while (!form.IsDisposed);

            if (mStarted)
            {
                wnd.Free();
                engine.Free();
            }

        }
    }
}

а не простыми вызовами функций (стиль блица, хорса, хорды)

Morganolla 28.10.2012 14:33

Ответ: axelynx
 
а тени есть?
и какие?
И вообще сделай нормальную страничку про все фичи движка!
- физика,
- поддерживаемые форматы моделей, спрайтов, текстур ( обязательно collada)
- тени, эффекты, шейдеры.
- математика, катернионы, чилды-паренты
- добавление партиклов всяких.
- поддержка сети, звука - есть/нет.
- многопоточность, мютексы...

Чтобы не искать код по всяким гуглам, а сразу понять подойдет он или нет!
И на русском тожа!!!
А то хрен кого заинтересуют твои вирши...

HolyDel 28.10.2012 17:48

Ответ: axelynx
 
теней из под коробки нет (возможно и не будет, ибо project specific)
есть демка с тенями от точечного источника

физика - в движке есть булетовсякая физика. мягких тел возможно не будет ибо они не поддерживаются на мобильных платформах. или я подниму требования к железу и под платформы попадут только девайсы с OpenCL.

эффекты какие хотите - такие пишите, с шейдерами также. есть небольшой набор шейдеров в библиотеке но на них одних проект не вытянуть. нужно писать свои.

>математика, катернионы, чилды-паренты
ыращение в катернионах, математика векторная есть, чилды-паренты неограниченной вложенности есть.

>поддержка сети, звука - есть/нет.
насчет сети не знаю - звук был в планах.

>многопоточность, мютексы...
внутри движка они будут - на ружу выноситься нет.

>И на русском тожа!!!
к сожалению я не могу писать чисто на английском, скилов не хватает. если бы мог - писал бы.

>А то хрен кого заинтересуют твои вирши...
в собственных проектах используется.
небольшие демки/игры, заставки и прочие мелочи. для ААА проектов не подойдет.

еще раз - библиотека позиционируется как мультимедийный фреймворк с которым очень несложно начать работать (во многом благодаря инсталяторам и мастерам, попробуй начать работать с иррлихтом или огром - их пока соберешь да запустишь уже изматеришься).
Он НЕ позиционируется как code-driven замена юнити или чего-то подобного.
практика показывает, что люди даже без справок умудрялись делать на нем графические демки.

4yBa4Ok 28.10.2012 19:54

Ответ: axelynx
 
Мне тоже очень понравился движок. Но пока что из-за некоторых проблем приходится пользоваться иррлихтом... Поскорей бы их решить. Да и любой движок подойдет для ААА, самое главное это прямые руки программиста)

pax 28.10.2012 23:50

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

Сообщение от 4yBa4Ok (Сообщение 241415)
Да и любой движок подойдет для ААА, самое главное это прямые руки программиста)

Смелое заявление) попробуй сделать ААА на блице ;)

Morganolla 28.10.2012 23:57

Ответ: axelynx
 
-теней из под коробки нет (возможно и не будет, ибо project specific)
есть демка с тенями от точечного источника

хренова братец, не люблю голову ломать над реализацией очевидного.

-эффекты какие хотите - такие пишите, с шейдерами также. есть небольшой набор шейдеров в библиотеке но на них одних проект не вытянуть. нужно писать свои
и это хренова, получается ты для себя в основном делал...


-многопоточность, мютексы...
внутри движка они будут - на ружу выноситься нет.

тоже хреново при замашке на кросплатформенность

-И на русском тожа!!!
к сожалению я не могу писать чисто на английском, скилов не хватает. если бы мог - писал бы.

Так и на русском нет ведь странички нормальной!

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

Ну я так и понял - для себя...

-еще раз - библиотека позиционируется как мультимедийный фреймворк с которым очень несложно начать работать (во многом благодаря инсталяторам и мастерам, попробуй начать работать с иррлихтом или огром - их пока соберешь да запустишь уже изматеришься).
Вот не люблю я мастера!!! Лучше иметь хорошее описание и самому настроить студию или фреймворк, чтобы потом не было дурацких вопросов и глюков!!! Кстати Ирлихт настраивается на раз и без проблем! А вот в ОГРЕ уже есть мастера и там блин можно лоб расшибить если ты новичек.

-Он НЕ позиционируется как code-driven замена юнити или чего-то подобного.
практика показывает, что люди даже без справок умудрялись делать на нем графические демки

Сделать простенькую графическую демку - это ерунда. Людям нужен нормальный движок , а не полуфабрикат. Но я уже понял твой подход и позицию... И поэтому не буду предъявлять дальнейших претензий :)

falcon 29.10.2012 14:21

Ответ: axelynx
 

>>хренова братец, не люблю голову ломать над реализацией очевидного.
вшитые эффекты чаще всего убивают гибкость.
захочешь сделать свой рендер-процесс - зашьешься.
Шейдеры и эффекты чаще индивидуальны для проекта.
Не нравится писать? Не любишь ломать голову? Так что тогда делаешь в гейм-деве? Ждёшь кнопку "создать ММОРПГ"?


>>и это хренова, получается ты для себя в основном делал...
очень хреново, ога. Лучше, что бы всё было сделано за тебя, а ты только гуй мышкой накидывал и жал на хоткеи "скопилировать код, нарисовать медию, придумать крутой геймплей, конвертировать в ММО".

>>Людям нужен нормальный движок.
человек делает мультимедиа-фреймвёрк.
или ты производителям микроволновок тоже будешь говорить, что людям нужен движок, а не микроволновая печь?

Morganolla 29.10.2012 14:43

Ответ: axelynx
 
falcon
Да я уже понял, что фреймворк. Просто в первом посте написано было что движок... Интересно тогда, кто еще им пользуется ??? :)

moka 29.10.2012 14:55

Ответ: axelynx
 
Меня удивляют такие девелоневежы.. Как они ориентируются в этом сложном мире?

falcon 29.10.2012 15:17

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

Интересно тогда, кто еще им пользуется ???
ну я с радостью его юзать буду, позднее.
часто ГАПИ слишком низко, движки - громоздко и перенасыщено.
внешне у axelynx неплохой апи, хотя есть некоторые недостатки.
мне - то что надо)

moka 29.10.2012 15:34

Ответ: axelynx
 
Я также буду юзать. Т.к. мне нужен мощный со спрайтами фреймворк для экстремальных сессий программирования визуальных демок на основе realtime спектра частот на DJ вечеринках..

Morganolla 29.10.2012 15:51

Ответ: axelynx
 
мне нужен мощный со спрайтами фреймворк для экстремальных сессий программирования визуальных демок на основе realtime спектра частот на DJ вечеринках..
апупеть... :) желаю удачи...

moka 29.10.2012 15:59

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

Сообщение от Morganolla (Сообщение 241560)
мне нужен мощный со спрайтами фреймворк для экстремальных сессий программирования визуальных демок на основе realtime спектра частот на DJ вечеринках..
апупеть... :) желаю удачи...

Я уже это практиковал трижды, использовал .Net + Xors3d, но хочу .Net + axelynx, т.к. нужно больше контроля и то что нужно axelynx уже по идее имеет. Есть шейдеры - это для пост обработки самое главное, но также есть и другие менее важные фичи, по крайней мере я смогу генерировать геометрию на лету - это то что нужно очень для разных задачь, например реалтайм воксельные объёмы, и т.п.

HolyDel 29.10.2012 20:57

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

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

Цитата:

внешне у axelynx неплохой апи, хотя есть некоторые недостатки.
спасибо :) недостатки сами по себе не исправятся. надо про них писать и думать как устранять.

falcon 30.10.2012 19:25

Ответ: axelynx
 
Ну про загрузку коллады и загрузчик целых сцен (камера, свет, объекты анимациями и без) я вроде тебе в асечку уже писал)

dsd 18.11.2012 20:21

Ответ: axelynx
 
1. Че за хрень вместо вики? O_ohttp://likosoft.com/axelynx_wiki/ind...itle=Main_Page
http://likosoft.com/axelynx_wiki/ind...-Check-It-Out!
2. А как правильно копировать из одной текстуры в новую?
Ибо если пытаться получить массив с данными как то вот так
int* data;
tex->GetData(data);
приложение падает, а как еще это сделать из названий функций я не смог вообразить.

HolyDel 19.11.2012 02:40

Ответ: axelynx
 
Код:

unsigned char* data = unsigned char[tex->GeDataSize()];
tex->GetData(data);
delete[] data;

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

wiki такая wiki, что ее может править любой желающий.
откатился до нормальной версии.
желающих забанил

dsd 19.11.2012 02:48

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

Сообщение от HolyDel (Сообщение 244079)
wiki такая wiki, что ее может править любой желающий.
откатился до нормальной версии.
желающих забанил

на random page все еще выдает много мусора :)))

HolyDel 22.11.2012 13:03

Ответ: axelynx
 
чото вики вообще боты заполонили. никто не в курсе как с ними бороться?


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

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