Войти
Urho3DФорумЗАДАВАЙТЕ ВОПРОСЫ

[РЕШЕНО]Верно ли то, что в Urho SDK нет ни одного примера с шейдерами?

Страницы: 1 2 Следующая »
#0
(Правка: 19:50) 19:47, 30 ноя 2021

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

или я не прав?

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

зы:
также отсутствует пример выбора произвольного 3D объекта сцены курсором мыши ...

#1
(Правка: 20:21) 20:20, 30 ноя 2021

xlat-code
> также отсутствует пример выбора произвольного 3D объекта сцены
raycast (traceline) делается через физику, в примерах есть Decals с рыбкой, которая ляпается на выбранный кубик (https://github.com/urho3d/Urho3D/blob/master/bin/Data/Scripts/08_Decals.as)

также 1vanK на хабре написал три статьи и в том числе про шейдеры https://habr.com/ru/users/1vanK/posts/

#2
21:01, 30 ноя 2021

ёж
> Наверное, можно покопатся в Редакторе - это там реализовано и на скриптах.
Наверное, можно.
Только вот без навигации это как искать иголку в стоге сена - тем более для новичка.

#3
(Правка: 21:09) 21:03, 30 ноя 2021

xlat-code
> также отсутствует пример выбора произвольного 3D объекта сцены курсором мыши ...
По-моему, в движке есть функция, которая возвращает список объектов, пересекаемых лучом, проходящим через курсор. Если надо, могу залезть к себе в исходники.

А вообще примеров здесь множество, в отличие от многих других движков. Поначалу действительно постоянно чего-то не хватает, и это нормально - после освоения основных принципов дальше пойдёт быстрее.

Здесь пример с самописным шейдером.
https://github.com/Sasha7b9/Demo-Urho3D-/tree/master/out/DemoData/Shaders/GLSL

#4
(Правка: 21:42) 21:08, 30 ноя 2021

ёж
Salamandr
ок, спасибо, буду разбираться.

ёж
> vs="GammaCorrection"
постепенно доходит, а то я бегло посмотрел согласно гипотезе искал по имя_файла_шейдера + расширение, т.е. тупо по расширению.

Salamandr
> Decals
верно, это я видел, оставил на посмотреть потом, как запасный выход)

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

Phuntik
> А вообще примеров здесь множество, в отличие от многих других движков. Поначалу
> действительно постоянно чего-то не хватает, и это нормально - после освоения
> основных принципов дальше пойдёт быстрее.

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

видно, что советы по управлению сложностью того же Макконелла разрабы к сведению не приняли...

ну, да  ладно.

Phuntik
> А вообще примеров здесь множество
множество не нужно,
мне нужно с десяток примеров, как тот десяток команд для машины Тьюринга,
именно тех примеров,
с помощью которых  я смогу выразить нет, не любой, а конкретно текущий свой алгоритм проект.

#5
21:42, 30 ноя 2021

xlat-code
> множество не нужно,
> мне нужно с десяток примеров, как тот десяток команд для машины Тьюринга, именно тех примеров,
Аккуратней со словами.
Пока похоже, что разработчики движка - нубы и вместо десятка действительно нужных примеров выклали 53 всяких шлаков.
Если тебе нужна машина Тьюринга, бери Vulkan API - кажется, это самая современная технология на сегодня.

#6
21:43, 30 ноя 2021

Как же ты меня выбесил.

#7
(Правка: 21:59) 21:55, 30 ноя 2021

Phuntik
> Аккуратней со словами.
не, тут всё нормально,
я рассуждаю как простой юзер движка.

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

для другого проекта скорее всего перечень будет другой.

Phuntik
> разработчики движка - нубы
когда я открыл исходник ухи в рандомном месте:

...
    /// Construct.
    explicit Console(Context* context);
    /// Destruct.
    ~Console() override;
...

было забавно - комменты очень нужные ...

#8
11:03, 1 дек 2021

xlat-code
> у меня есть конкретная игра, под неё нужно сначала собрать некий перечень
> необходимых туда техник, которые по идее должны находиться в общем списке
> туторов.
правильный подход, такой же применяю. Это не только показывает мои недостатки, но и показывает на сколько эффективно можно войти в движок, так называемый порог входа.

#9
(Правка: 21:34) 21:30, 3 дек 2021

> https://habr.com/ru/users/1vanK/posts/
взял оттуда для вводной части:

 Шейдеры в Урхе.

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

 Процесс рендеринга в Urho3D описываться с помощью набора текстовых файлов: 
    рендерпасов (CoreData/RenderPaths/*.xml)  , 
    техник      (CoreData/Techniques/*.xml)   и 
    шейдеров    (CoreData/Shaders/GLSL/*.glsl

 Итак:
  1. Каждый объект сцены как правило рендерится несколько раз 
        с применением разных шейдеров (так называемые проходы рендера). 
  2. Техника это набор шейдерных проходов(порядок строк в технике не важен). 
  3. Какой именно набор проходов (шейдеров) требуется для отрисовки каждого
        объекта, описывается в технике. 
    
    
 Также есть материалы (Data/Materials/*.xml). 
    Материал определяет технику для объекта, 
    а также определяет те данные, которые будут переданы в шейдеры: 
    текстуры, цвета и т. п.
    
 То есть совокупность рендерпас + техника + шейдеры 
    можно представить как алгоритм, 
    а материал — как набор данных для этого алгоритма.
    
    
 Также существуют прописанные в самом движке проходы, 
    которые не прописываются в рендерпасе, 
    но они все равно будут выполняться, 
    если они есть в технике.
    
 Шейдер LitSolid.glsl является ключевым для большинства материалов
    применяемых в туторах.
    
 3 метода рендеринга: 
    Forward (по умолчанию), 
    Light Pre-Pass        и 
    Deferred. 
    
    метод Forward, который используется по умолчанию из файла:
    CoreData/RenderPaths/Forward.xml.
#10
(Правка: 1:35) 1:34, 5 дек 2021

ёж
раз уж ты это всё изучил, расскажи как мне выдернуть GDepth (z-depth) для просчёта SSAO и собственно куда и чо писать?
Ведь это пиксельный шейдер то есть он либо в renderpipline либо в как bloom просто эффект, чтобы внутри шейдера я смог получить и текстуру глубины и Normal глазами камеры. И как мне к ним обращаться внутри шейдера? какие у них имена там будут?

#11
(Правка: 2:05) 2:01, 5 дек 2021

ёж
> А чем не устраивают примеры от юзеров?
тем что они не работают)) ну или мне не удалось заставить их работать
кода много, как полезного, так и совершенно не нужного (всё давно поменялось)

к тому же у меня rbfx.
Но спасибо.

ёж
> Я с шейдерами поверхностно
да такая же фигня. Мне бы хоть GLSL потестировать и то в путь, но это надо перекпомилировать движок (сейчас там HLSL и новый универсальный формат).

Вариант GoldenThumbs, я уже пробовал, точнее я в принципе не могу его проверить. Мне бы его в HLSL.
и на Defered, а не Forward.

В любом случае, это лучше чем ничего.

#12
(Правка: 13:00) 12:55, 5 дек 2021

ёж
ваше воскрешение эпически феерично!

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

Например, элементарная задача:
Анимация процедурной текстуры на поверхности модели Plane.

Планирую так(..),
1. Сам шейдер(нужен будет только пиксельный) взять отсюда https://www.shadertoy.com
2. В Урхе в рендерпас добавить пас P.
3. В технику Т добавить пас P.
4. В общий шейдер добавить дефайн для паса P.
5. В материал добавить технику Т.
6. В апдейт-ивенте в материал не забыть передать текущее время(float).

...

#13
13:20, 5 дек 2021

ёж
> Вина за это лежит на тех кто знакомясь с движком брезгуют изучением
> документации и исходников.
вы про то что надо изучать много месяцев,
а я хочу быстрый старт - за один вечер!
)))

> Позже удалю (ловите момент)
Правильно ли я сделаю что, когда напишу свой проэктик, то потом удалю тут все свои посты?
Если так делают все, то может как раз поэтому Урха еле дышит?
(

#14
14:55, 5 дек 2021

ёж
> Попробуйте глянуть
+100

Страницы: 1 2 Следующая »
Urho3DФорумЗАДАВАЙТЕ ВОПРОСЫ