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 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)


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

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