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)

HolyDel 15.05.2011 18:25

Ответ: axelynx
 
немного доработал вывод текста:
http://axelynx.googlecode.com/files/TextDemo2.zip

потестите плиз

Mhyhr 15.05.2011 19:07

Ответ: axelynx
 
Действительно лучше.
500 шт - 29 фпс
100 шт - 110 фпс

moka 15.05.2011 19:30

Ответ: axelynx
 
2011 - 87fps
100 - 970fps

pax 15.05.2011 19:45

Ответ: axelynx
 
100: 450+ прыгает до 1000 иногда.
2000: 76-81

Странно, что при 1 на экране мелькает много строк все равно....

wolfhound512 15.05.2011 20:03

Ответ: axelynx
 
100: 65
2800: 65
3000: ~45
--
i7 860, GF GTS250 1Gb

--
Цитата:

Странно, что при 1 на экране мелькает много строк все равно....
Мелькает одна строка, просто быстро и в разных местах

Morganolla 15.05.2011 21:44

Ответ: axelynx
 
100-65
1000-65
2000-65
3000-33

HolyDel 16.05.2011 21:37

Ответ: axelynx
 


прикрутил рендеринг спрайтов геометичеким шейдером (на ати пока может не работать) работает довольно шустро (не так быстро, как фейковый метод с GL_POINT_SPRITE, но зато честно): http://axelynx.googlecode.com/files/SpriteSystemGS.zip

собрал несколько прошлых бенчмарков еще сижеля с акселинковскими демками

сделал на ати подсвету красны цветом в логах строчки с ошибкой в шейдере

бенчи:
http://axelynx.googlecode.com/files/...0Benchmark.zip
http://axelynx.googlecode.com/files/...yBenchmark.zip
http://axelynx.googlecode.com/files/TextBenchmark.zip
http://axelynx.googlecode.com/files/...sBenchmark.zip

в спрайтах там у акселя в 32 раза больше спрайтов. фора.

}{@KeR 17.05.2011 17:41

Ответ: axelynx
 
При запуске: 65;
F3: 65;
F5: 65;

Nex 18.05.2011 08:23

Ответ: axelynx
 
Собсно вопрос.. Как понять фейковый метод вывода спрайтов? Спрайт это же картинка меняющая размер от расстояние до камеры...

HolyDel 18.05.2011 17:23

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

Собсно вопрос.. Как понять фейковый метод вывода спрайтов? Спрайт это же картинка меняющая размер от расстояние до камеры...
нормальный такой спрайт состоит из двух трисов
фейковый же спрайт - это точка - растеризируемая не в один пиксель - а во много. в гл - через расширение GL_POINT_SPRITE. самый главный минус - что нельзя видеть кусок спрайта - если его центр за экраном. Тогда отрезается вся точка и весь спрайт. поетому они резко исчезают.В предыдущей демке можно понажимать на F2 - F3 для смены режима.

Dream 18.05.2011 20:32

Ответ: axelynx
 
Sprites Benchmark
запустилось. фпс 900, ниодного спрайта не видно

HolyDel 18.05.2011 21:09

Ответ: axelynx
 
Dream
а если Ф2 - Ф3 понажимать? лог бы.. боюсь контекст 3.3 не поднялся. на старых драйверах я ето уже не сделаю((

falcon 18.05.2011 22:18

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

HolyDel 21.05.2011 08:29

Ответ: axelynx
 
Вложений: 1
Цитата:

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

паренты сделал - но пока они не очень шустрые:
мультикамеры сделал - с очисткой пока глюки:
Вложение 13825

HolyDel 23.05.2011 17:43

Ответ: axelynx
 
ускорил пересчет спрайтовой системы за счет разделения по потокам. надо будет потом сделать ето опциональным и более автоматическим (например, чтобы оно не разделялось по потокам - если 1 ядро)

falcon 23.05.2011 20:22

Ответ: axelynx
 
и у многих, по твоему, к тому времени, когда закончишь, будет 1 ядро?)
ды даж сейчас уже у многих с железкой для 3.x контекста в машине минимум 2 ядра..

HolyDel 23.05.2011 23:18

Ответ: axelynx
 
ну я еще планирую захватить всякие девайсы с GLES 2.0 На борту (благо GLES 2.0 очень похож на GL 3.3 forward context)
там актуально...

falcon 24.05.2011 01:55

Ответ: axelynx
 
хм.. ну раз GLES, тода может и оправданно..

HolyDel 24.05.2011 18:52

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

1) нормальную математику (сейчас убогая)
2) child - parent отношения
3) рендер в текстуру
4) спрайты
5) партикловые системы
6) фрустум куллинг
7) текст (юникод)
8 ) мультисэмлинг
9) загрузку ресурсов с оперативной памяти
10) работу с пак-ами
11) геометрические шейдеры
12) загрузку ресурсов со второго потока
13) инсталлер под винду и мастера для VS и кодоблоков - это под вопросом.
14) инстансинг
15) постпроцесс
16) HDR
17) Загрузку dds (кубемапы, сжатые текстуры, HDR текстуры)
из этого списка:
попилил маленько математику (хотя там простор большой - есть куда пилить)
запилил child - parent отношения, геометрические шейдеры, мультисэмлинг

последний надо потестить:

http://axelynx.googlecode.com/files/Beams_Release.zip

HolyDel 25.05.2011 18:13

Ответ: axelynx
 
рендеринг жирных линий (60к линий):

http://axelynx.googlecode.com/files/Beams.zip

Dream 26.05.2011 04:07

Ответ: axelynx
 
так а что, всё, старые дрова окончательно не потдерживаются?

HolyDel 26.05.2011 06:34

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

Сообщение от Dream (Сообщение 189496)
так а что, всё, старые дрова окончательно не потдерживаются?

я пока еще не делал проверки - чтобы вылетало
те две демки (с линиями - должны работать)

Dream 26.05.2011 13:17

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

Сообщение от HolyDel (Сообщение 189497)
я пока еще не делал проверки - чтобы вылетало
те две демки (с линиями - должны работать)

Ну они мне тонко намекнули что никому ничего не должны :) После обеда скину лог

HolyDel 26.05.2011 21:32

Ответ: axelynx
 
Ввел систему стандартных (в отношении либы) юниформов шейдера, их location вычисляется в момент компиляции шейдера и кэшируется. потом оно берется из кэша и установка стандартных юниформов происходит очень быстро.
стандартные юниформы ето вроде mat4 modelviewproj матрицы или там vec4 entitycolor

moka 27.05.2011 15:34

Ответ: axelynx
 
Возможность своих форматов вершин предполагается?
Например, если мне нужно иметь модель машины, у которой у вершины будет позиция, нормаль, степень_загрезняемости (float), степень_перегибов(float), и т.п.
И при компиляции, можно указать, что и в какой регистр будет идти?
Не так и просто, но думаю основная мысль ясна :)

HolyDel 27.05.2011 17:23

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

Возможность своих форматов вершин предполагается?
да, конечно. хотя я пока еще только думаю как сделать поудобнее такую систему.

HolyDel 31.05.2011 20:41

Ответ: axelynx
 


http://axelynx.googlecode.com/files/MoutionBlur.zip

на старых видеокартах / драйверах не пойдет скорее всего.

тут тестируются две технологии:
1) рендер в слой 3д текстуры
2) кэширование бинарников шейдеров.

програмку надо запустить два раза
1 раз она будет грузить и компилировать сурс шейдера и сохранять его бинарник
2 раз она будет грузить бинарник

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

у меня 130мс загрузка сурсов и их компиляйца
0-16 мс загрузку бинарников

pax 31.05.2011 21:19

Ответ: axelynx
 
94 ms
0 ms

PS: странный эффект при движении камеры...

wolfhound512 31.05.2011 21:26

Ответ: axelynx
 
компиляция 125 мс
бинарники 16 мс

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

HolyDel 02.06.2011 22:07

Ответ: axelynx
 


http://axelynx.googlecode.com/files/CubeMapTest.zip

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

отключить блюр - F2 (включить -F1)

mr.DIMAS 03.06.2011 16:47

Ответ: axelynx
 
время
495 ms
1,2 ms

а это правильно что при включенном блюре появляется эффект радуги?

ps. ati hd 4870 свежие дрова

HolyDel 03.06.2011 17:21

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

а это правильно что при включенном блюре появляется эффект радуги?
да - это психоделический блюр

HolyDel 08.06.2011 00:53

Ответ: axelynx
 
64к взрывов (с дельтатайом косяк - может тупить если фпс выше 400)



http://axelynx.googlecode.com/files/Explodes.zip


для сравнения прошлый бенч на 4к взрывов:
http://forum.boolean.name/showthread.php?t=7972

pax 08.06.2011 01:13

Ответ: axelynx
 
FPS: 730+ , не взрываются, иногда мелькают...

moka 08.06.2011 01:39

Ответ: axelynx
 
1500+ взрываются, но с дельтой да, баги конкретные..

HolyDel 11.06.2011 12:36

Ответ: axelynx
 
кажизь баг с дельтой пофиксил:
http://axelynx.googlecode.com/files/...xtureArray.zip

потестите плиз снова

moka 11.06.2011 15:10

Ответ: axelynx
 
140-150 ms.
Дельта ОК.
Фпс хз где посмотреть было..

Такое колличество спрайтов - круто!

HolyDel 11.06.2011 18:45

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

Такое колличество спрайтов - круто!
спасибо! там лям спрайтов
в реальном приложении было бы тормознее так как тут фрей спрайта высчитывается из позиции (что фейк) а по идее надо-бы передавать значение фрейма взрыва каждый кадр

pax 13.06.2011 15:44

Ответ: axelynx
 
79ms Texture3d первый запуск, второй 0,5 ms,
Texture Array второй запуск - 1,4 ms.
Взрывается.)

HolyDel 16.06.2011 01:10

Ответ: axelynx
 
Всем привет.



В новой демке тест динамической ликовки, проигрывания theor-ы и постэффектов. (12 МЕТРОВ!)
http://axelynx.googlecode.com/files/TheoraVideoTest.zip

в движке несколько изменилась инициализация. раньше было eng->Graphics..

теперь Window *wnd = eng->AddWindow...

также будет поддержка прицепляться к чужому окну

функционал связаный с окном - ну там Flip-ы всякие и установление заголовка перекочевали в Window

теперь код минимального приложения выглядит так:
Код:

#include <axelynx.h>
using namespace axelynx;

int main()
{
        Engine *eng = Engine::Init();                        //инициалищация движка
        Window *wnd = eng->AddWindow(800,600);        //инициализация окна

        while(wnd->isRunning())        //пока окно не закрыли
        {
                wnd->Flip();        //отобразить содержимое и синхронизировать с системой
        }

        eng->Free(); //освободить ресурсы
        return 0;
}

думаю над инсталлером под винду и студию 2010.

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

постэффекты могут вкладываться друг в друга

Цитата:

blur->Add(grayscale)->Add(inversecolor)

pax 16.06.2011 13:29

Ответ: axelynx
 
Работает, но пишет FPS:0 и все размыто и звука нету

HolyDel 16.06.2011 23:49

Ответ: axelynx
 
да - так все и должно быть.
размыто - ето блюр.

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

PS. 50-я, юбилейная ревизия ))

HolyDel 18.06.2011 01:16

Ответ: axelynx
 
тест асинхронной загрузки текстур:
в заголовке окна пишется время на создание сцены потраченное

Async грузит текстуры во втором потоке
Sync грузит сразу

просьба проверить на корректность работы оба екзешника

архив тяжелый (~10 метров)
http://axelynx.googlecode.com/files/...yncLoading.zip

свой формат текстур будет подерживать постепенную загрузку мипов. но до етого времени пока...

текстура грузится асинхронно так:
Код:

Texture *tex = eng->LoadTexture(tname,Texture::Desc().ASync(true));
вот весь исходник теста:
Код:

#include <axelynx.h>
using namespace axelynx;

int main()
{
        Engine *eng = Engine::Init();
        Window *wnd = eng->AddWindow(800,600);
       
        Scene *scene = eng->AddScene();
        Camera *cam = scene->AddCamera();
        Surface *cube = StandartSurfaces::Cube();
        Material *m = eng->CreateMaterial();
        m->SetShader(StandartShaders::Render::TexturingLighting());
        StandartShaders::Render::TexturingLighting()->SetUniform(Shader::SU_LIGHTPOS,vec3(100,100,100));
        m->UseEntityTextures(true);

        Texture *tex[16];
       
        Timer::Delta();

        for(int i = 0; i<16; ++i)
        {
                wchar_t tname[80];
                swprintf(tname,L"%d.jpg",i);
                tex[i] = eng->LoadTexture(tname,Texture::Desc().ASync(false));

                Entity *ent = scene->Add(cube);
                ent->SetPosition((i/4) * 5 - 12.5,(i%4) * 5 - 12.5,-40);
                ent->SetMaterial(m);
                ent->SetTexture(tex[i]);
        }

        float loading_time = Timer::Delta();

        wchar_t wbuff[80];
        swprintf(wbuff,L"loading time: %f ms",loading_time);
        wnd->SetText(wbuff);

        while(wnd->isRunning())
        {
                cam->Turn(0,0,0.2);
                scene->Render();

                wnd->Flip();
        }
       
        eng->Free();
}


.Squid 18.06.2011 02:53

Ответ: axelynx
 
Вроде работает. Во всяком случае не вылетает, видно как кубы по очереди получают текстуры.

Я так понимаю, что эти числа в принципе никакой смысловой нагрузки не имеют, но все же:
Sync: ~590ms
Async: ~0.65ms

pax 18.06.2011 15:23

Ответ: axelynx
 
Работает.
Sync: ~700ms (в среднем)
Async: ~1.5ms (тоже в среднем)

HolyDel 19.06.2011 04:07

Ответ: axelynx
 
всем привет



потестите вывод юникода:
http://axelynx.googlecode.com/files/UnicodeText.zip

еще потестите горячую смену разрешения
F1 - окно 800-600
F2 - фуллскрин 800-600
F3 - фуллскрин в десктопсайз (из фуллскрина не имеет смысла)

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

с кернингом проблема - но она решаема

moka 19.06.2011 06:48

Ответ: axelynx
 
Прыгает между разрешениями нормально.
Текст тоже выводит нормально (удерживал окно).
Когда FPS счётчик починишь? :)

mr.DIMAS 19.06.2011 15:41

Ответ: axelynx
 
Все работает. Отлично. Прогресс.


Холи твоя подпись верна?

Welcome to the Solder Side ( добро пожаловать на сторону пайки )

Solder - припой - однако

pax 19.06.2011 16:13

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

Сообщение от mr.DIMAS (Сообщение 192216)

Холи твоя подпись верна?

Welcome to the Solder Side ( добро пожаловать на сторону пайки )

Solder - припой - однако

Гугл перевел как "Добро пожаловать на обратной стороне"


HolyDel 20.06.2011 01:34

Ответ: axelynx
 

поправил подпись))


http://code.google.com/p/axelynx/wiki/Step1
http://code.google.com/p/axelynx/wiki/Step2
http://code.google.com/p/axelynx/wiki/Step3

три типо тутора. приветствуется критика по непонятным моментам.

moka 20.06.2011 01:46

Ответ: axelynx
 
Прикольно!
Только не "theare", а "here".

Dzirt 20.06.2011 02:40

Ответ: axelynx
 
Все отлично и понятно.
Заводи уже домашнюю страничку =)

HolyDel 20.06.2011 03:18

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

Заводи уже домашнюю страничку =)
проект опенсорсный. вот его домашная страничка: http://code.google.com/p/axelynx/

ну и ета тема тож.

HolyDel 23.06.2011 01:39

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


очередная юбилейная раздача - 64-я

HolyDel 25.06.2011 16:15

Ответ: axelynx
 
посмотрел я тему Рандомайза про инстансинг в хорсе и решил запилить у себя тоже :)



сделал пока самым тупым методом. группа бьется на 256 объектов. проверки на видимость отдельных инстанций одного объекта нет. позиция передается через массив юниформов.

http://axelynx.googlecode.com/files/Instancing.zip
менять режим рендеринга - F1 - F2
первая цифра - когда все кубики в кадре - вторая когда все кубики вне кадра
Результаты на моей машине (9600M + Win7 + 2x2.26Ghz):
Copy entity:51 / 456
Instancing:264 / 264

для сравнения результаты хорса на той же сцене: http://forum.boolean.name/attachment...1&d=1308968854
copy entity - 18/65
HW - 89 /109


ЗЫ. Пока пили демку пришлось попутно реализовать массивы юниформовв шейдеры, расшаренные объекты для сцен и починить фпс счетчик.

St_AnGer 25.06.2011 17:49

Ответ: axelynx
 
Copy entity - 61-63 фпс
Instancing - 1136 фпс 0_о

когда перешёл на режим инстансинга пропали некоторые кубики, но общее количество трисов не изменилось (111132)

HolyDel 25.06.2011 20:07

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

Сообщение от St_AnGer (Сообщение 193076)
Copy entity - 61-63 фпс
Instancing - 1136 фпс 0_о

когда перешёл на режим инстансинга пропали некоторые кубики, но общее количество трисов не изменилось (111132)

проверь ету версию плиз, баг с пропашими кубиками не уйдет?
http://axelynx.googlecode.com/files/...ngVersion2.zip

St_AnGer 25.06.2011 20:49

Ответ: axelynx
 
Баг ушёл! Фпс 1366-1374

Randomize 25.06.2011 22:31

Ответ: axelynx
 
Ух как их много в этом тесте :D
43 fps

Раньше не мог участвовать в тесте - видео карта была старинная

HolyDel 25.06.2011 23:09

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

43 fps
хм. ето на F2? как то удивительно мало.

Randomize 26.06.2011 03:47

Ответ: axelynx
 
на F1 ~40Fps
на F2 ~70Fps

St_AnGer 26.06.2011 12:25

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

Сообщение от Randomize (Сообщение 193148)
на F1 ~40Fps
на F2 ~70Fps

Эмм.. Может вертикальная синхронизация каким то чудом включена? Потому как GT440 куда мощнее моей R5770 (а у меня вон какие показатели, аж 1300+ фпс).

SBJoker 26.06.2011 12:50

Ответ: axelynx
 
Аналогично fps == 60.
Рефрешрейт монитора == 60.

Ну вы поняли намёк?

HolyDel 26.06.2011 13:56

Ответ: axelynx
 
блииииин. я накосячил с всинком. а у меня он в драйвераз был отключен - поетому было незаметно. проверьте ету версию плиз:
http://axelynx.googlecode.com/files/...20vsync%29.zip


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

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