Войти
ПрограммированиеФорум2D графика и изометрия

Очень простой рендер текстур 2D меню.

#0
(Правка: 4:07) 4:00, 8 окт. 2019

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

Примеры:
Для демонстрации примеров я использовал Godot 3.1.1 в режиме GLES2. Но полученные текстуры, очевидно, можно использовать где угодно.
Веб-версия ссылка.
Скачать (exe) примера тут.
Исходники примеров и еще 2 примера, смотрите в описании на Гитхабе

Скачать саму программу-Рендер текстур, под виндовс тут, для линукса

Исходники:
https://github.com/danilw/godot-utils-and-other проект menu_2DGI

Скриншот (один из полученных кадров):

+ Показать


#1
4:14, 8 окт. 2019

Danilw
как считаешь area lights? есть ли переотражения?

#2
(Правка: 4:40) 4:35, 8 окт. 2019

Suslik
> Suslik
я указал ссылку на оригинал или оригинал того шейдера в исходниках, я ничего не изобретал.

Use Monte Carol integration and ray marching of signed distance field (SDF) to render a emissive circle.

Suslik
> есть ли переотражения?
нет

Suslik
> как считаешь area lights
весь код шейдера это 2 цикла
первый это поворот с шагом i(угол равен i/samp*2pi...очевидно)
второй просто прямая после поворота выше, и пока SDF не 0/большой
цвет определяется по уровню SDF в позиции(поэтому текст тормозит, шрифт на SDF)

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

#3
(Правка: 8:12) 8:10, 8 окт. 2019

Danilw
> кароче все иллюзия, рендер супер примитивен 
на самом деле за любым фейком, который хорошо выглядит, практически всегда есть здравая аппроксимация. реймарчинг по sdf — вовсе не примитивный с точки зрения объёма вычислений фейк, так что нет ничего удивительного, что результат выглядит правдоподобно. было бы круто, если б такой же результат можно было, например, за O(кол-во лучей) получить вместо имеющегося O(кол-во лучей * кол-во шагов).

#4
(Правка: 10:26) 10:26, 8 окт. 2019

Suslik
> получить вместо имеющегося O(кол-во лучей * кол-во шагов).
Когда кол-во шагов небольшое, то и О(лучи*шаги) вполне себе рабочий вариант. У меня например был кейс, когда в среднем шагов было 3-4, а максимальное не больше 10, и работало это очень шустро в реалтайме.

ПрограммированиеФорум2D графика и изометрия