LINUX.ORG.RU
ФорумGames

GLSL демка/игра (играть онлайн)

 , ,


1

1

Играть тут https://danilw.github.io/Castle-game/ccgame.html

Видео https://youtu.be/lNXTFvTDOAo

исходники https://github.com/danilw/Castle-game

бинарники linux(gcc) linux(clang) Windows(VS2017)
для линукса запускайте так
LD_LIBRARY_PATH=. ./ccgame

доделал таки, используется box2d для физики остальное на GLSL



Последнее исправление: missxu (всего исправлений: 2)

На канве: «Exception thrown, see JavaScript console»

В консоли:
WebGL: INVALID_ENUM: getFramebufferAttachmentParameter: invalid target
WebGL: ERROR: unsupported shader version

Safari, macOS, Intel Iris Graphics 6100.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

тут физика на box2d, «тени» на шейдерах(CPU не используется для теней)

физика на шейдерах была в прошлой демке Getting Over ... (онлайн без смс и регистрации), там больше 1 «объекта» уже тормозилобы

я проверил на нвидии в вин/линукс во всех браузерах, работало(хотя даже на нвидии оно падает иногда при компиляции/синхронизации)

missxu
() автор топика
Ответ на: комментарий от andreyu

Нет, шейдеру достаточно 100 версии, вот пара шейдеров из этой игры https://www.shadertoy.com/view/lsKBRW https://www.shadertoy.com/view/lsyfRm
все шейдеры вплоть до 450 могут быть конвертированы в 100 версию, пруф - это 300 версии https://github.com/danilw/cputests/blob/master/glsl/myfs.glsl , это 100 сконвертированный(руками правитьтоже пришлось) https://github.com/danilw/cputests/blob/master/C/sgame/binfs.glsl нативная сборка и java должны работать 100 версии, wasm не собирается без webgl2, помоему джаваскрипт на 100 работал https://danilw.github.io/cputests/js/sgame/best_wfix/sgame.html (в опере не открывай)

версия 300 идет от webgl2.0 который нужен nanogui https://github.com/danilw/nanogui-GLES-wasm используемом тут в качестве «движка»

он рисует все фреймбуферы и делает все ОпенГЛ операции

(и если я правильно помню в wasm шейдеры без webgl2.0 не работают)

missxu
() автор топика
Ответ на: комментарий от bvn13

бессмысленна

в игре есть «таблица лидеров», такшо ненедо мне тут!

missxu
() автор топика
Ответ на: комментарий от missxu

https://www.shadertoy.com/view/lsyfRm

Вижу только красивый черный буфер :)
Первый шейдер работает.

все шейдеры вплоть до 450 могут быть конвертированы в 100 версию

Может так и сделать?

wasm не собирается без webgl2

С чего бы это? Я собрал все свои игры wasm-only и они работают и в «большом» браузере, и в facebook instant games (facebook messenger).
Единственная проблема с wasm, с которой я столкнулся - это возможный эксепшн во время каста из float в size_t. В документации об этом упоминается. Только в моем случае баг из-за кодогенерации и вылечился небольшим костылем.

andreyu ★★★★★
()
Ответ на: комментарий от missxu

версия 300 идет от webgl2.0 который нужен nanogui https://github.com/danilw/nanogui-GLES-wasm используемом тут в качестве «движка»

Я использую imgui и свой бэкенд для opengl и gles2. Но imgui мне нужен исключительно для расширения возможностей отладки.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Я использую imgui и свой бэкенд для opengl и gles2. Но imgui мне нужен исключительно для расширения возможностей отладки.

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

missxu
() автор топика
Ответ на: комментарий от andreyu

С чего бы это?

я пишу шейдеры в которых по 2000 строк в «неоптимизированном виде, и по 10-15 тыщ строк в „оптимизированном“ прекомпиляциооном виде, это струдом поглощает ANGLE под виндой в браузерах

и тыкая wasm с webgl я наткнулся на сотни проблем со своими шейдерами(они не работали хотя в джаваскрипте в томже браузере тотже код шейдера работал из webgl) в васме webgl какойто обрезанный(вроде в оффдоках читал об этом когда ггулил причины)

хоть с webgl2 все работает

missxu
() автор топика
Ответ на: комментарий от andreyu

Может так и сделать?

)))))))))))))0

еще раз про 10к строк кода шейдеров-оно работает по разному между Opengl и ANGLE конвертором(есть пруф https://github.com/danilw/cputests читай начиная со слов «sgame(best) has bug in Windows» и пробуй запустить обе ссылки на винде увидишь разницу)

это те самые конвертированные 100версии шейдеры страдать каждый раз так фикся еще баги GLSL-а ))))) както обойдусь

missxu
() автор топика
Ответ на: комментарий от anonymous

не чёрный же

Ну да, вам виднее, как работает шейдер у меня.

andreyu ★★★★★
()
Ответ на: комментарий от missxu

в разы больше

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

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Баги glsl? O_o

у тебяж у самого черный экран выше- это баг твоего компилятора/драйвера

и вообще их слишком много, темболее с конверторами

missxu
() автор топика
Ответ на: комментарий от missxu

у тебяж у самого черный экран выше- это баг твоего компилятора/драйвера

Почему это баг компилятора/драйвера, а не баг в коде шейдера?

andreyu ★★★★★
()

собрал бинарники linux(gcc) linux(clang) Windows(VS2017)

в продолжение этих тем Помогите разобраться, это баг LLVM или нет и Будь проклят тот день #3 [С++ template hell] (комментарий)

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

при сборке gcc и clang-ом 0 варнингов по дефолту
включая -Weverything насыпет варнингами по конвертации float-double и сравнению long с int
это все варнинги на весь мой код

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

тем неменее все «баги» описанные в темах по ссылкам исчезают-все переменный работают, strcat копирует, и калбеки ничего не терют (и прочая свистопляска там ее огого сколько)

очевидный вывод- C++ стандарт на все кроме x86/64 совсем не С++

missxu
() автор топика
Ответ на: комментарий от missxu

купи видеокарту и не морочь голову, надоел нудить уже

С таким подходом вам нужно удалить этот топик и больше не писать ничего тут.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

с такими заявлениями можешь пососать бибу лалка

твои советские комплексы у меня через монитор вываливаются, лол

missxu
() автор топика
Ответ на: комментарий от missxu

с такими заявлениями можешь пососать бибу лалка

Вы сначала со своими заявлениями разберитесь.

твои советские комплексы у меня через монитор вываливаются, лол

Через ваш монитор может вывалиться ровно то, что вы в него напихали.

andreyu ★★★★★
()

Сделай чего-то с лошадками, иначе не взлетит.

anonymous
()
Ответ на: комментарий от crutch_master

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

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

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

missxu
() автор топика
Ответ на: комментарий от andreyu

Я ж не настоящий сварщик и мало что понимаю в гл. :)

Просто сообщил, что на одном и том же контупере в сафари не пашет, а в хроме - норм.

И тут мне не понятно, как это не в браузере проблема?

aol ★★★★★
()
Ответ на: комментарий от aol

И тут мне не понятно, как это не в браузере проблема?

Кто же знает, какой шейдер выполняется в хромом, а какой в сафари. Тем более, что оба браузера на webkit. Правда в сафари куча всяких «инноваций» и прочего булшита, из-за которого он является самым убогим среди всех браузеров.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Начал собирать новые шейдеры, и вспомнил почему #version 300

шейдеры используют текстуры(передача фреймбуфера), в GLES только начиная с 300 версии есть поддержка текстур (в OpenGL начиная с 130 версии)

missxu
() автор топика
./ccgame: error while loading shared libraries: libGLEW.so.2.1: cannot open shared object file: No such file or directory
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.