Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port Visualizer from zgl to gfx #183

Closed
ozkriff opened this issue Jun 18, 2016 · 27 comments
Closed

Port Visualizer from zgl to gfx #183

ozkriff opened this issue Jun 18, 2016 · 27 comments

Comments

@ozkriff
Copy link
Owner

ozkriff commented Jun 18, 2016

Оценить, можно ли переписать визуализатор на GFX.


Check if i can port Visualizer to GFX. Zgl creates a lot of maintenance problems :( .

@ozkriff
Copy link
Owner Author

ozkriff commented Jun 18, 2016

Помогаю Кварку завести gfx под андроидом.


Helping Kvark to port GFX to android.

@ozkriff
Copy link
Owner Author

ozkriff commented Jun 18, 2016

Свое нечто складываю пока вот сюда: https://github.com/ozkriff/gfx_test


Storing my experiments in this repo: https://github.com/ozkriff/gfx_test

@ozkriff
Copy link
Owner Author

ozkriff commented Jun 20, 2016

Простые примеры уже работают на андроиде:


Simple GFX examples already work on android:

@ozkriff
Copy link
Owner Author

ozkriff commented Jun 28, 2016

Заработало обновление текстур: ozkriff/gfx_test@aa759ad


Texture updating finally works: ozkriff/gfx_test@aa759ad

@ozkriff
Copy link
Owner Author

ozkriff commented Jun 28, 2016

Перехожу к экспериментам с gfx+rusttype: https://github.com/ozkriff/gpu_cache_gfx


Starting experiments with gfx+rusttype: https://github.com/ozkriff/gpu_cache_gfx

@ozkriff
Copy link
Owner Author

ozkriff commented Jun 28, 2016

Атлас, вроде, создается. Теперь надо научиться корректно выводить глифы с него в нужных местах.


Looks like dynamic atlas works. Now i need to learn how to render cached glyphs in correct positions on the screen.

@ozkriff
Copy link
Owner Author

ozkriff commented Jun 29, 2016

Буквы рисуются на нужных местах. Не могу понять, как в gfx включить прозрачность.


Render glyphs in correct screen positions: done. Problems with transparency :-( .

@ozkriff
Copy link
Owner Author

ozkriff commented Jun 29, 2016

Кажется, допер насчет альфы / To fix alpha channel i need to use:

out: gfx::BlendTarget<ColorFormat> = ("Target0", gfx::state::MASK_ALL, gfx::preset::blend::ALPHA),

вместо / instead of

out: gfx::RenderTarget<ColorFormat> = "Target0",

@ozkriff
Copy link
Owner Author

ozkriff commented Jun 29, 2016

На андроиде прототип тоже работает:


Works on android, yay :-D :

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 1, 2016

Начал разбивать gpu_cache_gfx на приложение и библиотеку.


Started extracting of library from gpu_cache_gfx app.

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 9, 2016

Чем дальше я ковыряю это дело, тем меньше мне вся эта затея с динамическим атласом глифов нравится.

В плюсовом варианте все было просто, насколько я помню: выставлялся глобальный флажок "атлас изменился" и клиент сам обязан был запросить обновленные uv-данные (и было порядочно ошибок, когда кто-то где-то забывал обновить данные). Но такой ручной вариант совсем не в духе ржавчины, а как сделать удобный автоматизированный я так и не могу придумать.
Но мне все равно хочется возможность свободно переключаться между языками + отображать не просто 2д текст, а работать с его позицией в 3д как угодно.

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

Мне кажется, должно не так уж и плохо работать, если одновременно слишком много текста не создавать (а его очень много и не нужно) и суперуниверсально должно бы быть. Гммм


...Extracting library with caching logic is problematic. :-(

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 10, 2016

Да, пожалуй и правда попробую забить пока на атласы.


Decided to abandon atlas approach and just render every string to separate texture.

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 13, 2016

Дело потихоньку ползет, потихоньку в локальном репозитории заменяю zgl на gfx. Пока ничего еще не работает, только фон разными цветами в разных экранах рисуется.


Slowly replacing bits of zgl to GFX in local repo. Nothing works jet.

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 15, 2016

Научился разные текстурированные квадраты выводить в разных экранах, но до кнопок или карты всему этому еще далеко.


I can draw simple textured quads.

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 18, 2016

Сделал камеру, теперь перехожу к оживлению отрисовки карты.


Restored Camera, now trying to restore map rendering code.

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 20, 2016

Гм, что-то работает сильно не так.


Something is very wrong!

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 20, 2016

Дело было в индексах. Осталось текстру поправить и можно переходить к сеткам отрядов.


Bad indices were the problem. Now i must fix the texture and move to unit rendering.

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 21, 2016

туман войны рисуется теперь другой текстурой (хотя тоже не той что надо)


Separate texture for Fog of War tiles.

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 21, 2016

заглушки для остальных сеток


Stub model

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 22, 2016

Что это у нас тут такое? Да это же obj-модельки ой какая прелесть =\ .

Теперь надо добить obj файлы, что бы сеточные модели (здания) грузились.


Obj model loading is working (for solid models only)! :-D Now i need to fix wireframe models loading.

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 22, 2016

Привет, домики и деревья!11 :-D


Hello trees! Hello buildings!

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 23, 2016

Привет маркеры и подсветка путей/целей и нормальные снаряды.

Осталось допилить текст, собственно.


Hello markers, paths and shells. Moving to text rendering.

@ozkriff ozkriff changed the title Check gfx-rs Port Visualizer from zgl to gfx Jul 23, 2016
@ozkriff
Copy link
Owner Author

ozkriff commented Jul 24, 2016

Активно пилю текст. / Working on text rendering.

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 25, 2016

Привет, трехмерный текст! :-D

Надо теперь подкрутить размеры трехмерного текста и кнопки надо починить.


3D text is working! :-D

Moving to buttons.

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 25, 2016

Кнопки, менюшки и все такое починены.

Осталось причесать код, кажется.


Buttons, menus, etc works! Cleaning up the code now.

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 28, 2016

Почти закончил причесывать. Завел ветку WIP_RC_gfx с одним комитом, который пойдет в мастер.

Выяснилось, что молча падает под маком. Кварк оперативно починил, спасибо ему.


Almost finished with code cleanups. Created separate branch WIP_RC_gfx for commit rebasing.

It was crashing on osx because of GL 2.1 context. Kvark fixed it swiftly in new gfx_device_gl version.

@ozkriff
Copy link
Owner Author

ozkriff commented Jul 29, 2016

Едрить-колотить что б тебя, ВСЕ!!11 :-D


It's done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant