Russian Qt Forum
Ноябрь 22, 2024, 13:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сдедать QSGNode невидимым  (Прочитано 2336 раз)
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« : Апрель 11, 2019, 19:18 »

Всем привет.

Вопрос спецам по OpenGL:

Имею класс, производный от QQuickItem, который имеет несколько дочерних QSGNode узлов.
Каждый из этих узлов отрисовывает в QQuickItem::updatePainNode() некие линии по точкам,
которые передаются в вертексный шейдер. Каждый узел QSGNode содержит как вертексный,
так и фрагментный шейдер. Мне нужно например скрывать некоторые узлы QSGNode...

Вопрос: как это делать? Просто не заполнять, т.е очищать точки у вертексного шейдера
когда мне надо скрыть каляку-маляку? Улыбающийся или как-то с прозрачностью бороться, например,
пытаться подменять цвет на прозрачный? Как правильно это делается?
Записан

ArchLinux x86_64 / Win10 64 bit
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Апрель 12, 2019, 05:54 »

...скрывать некоторые узлы QSGNode...
Без понятия что это. поэтому пардон если не в тему. Но по-любому OpenGL рисует "примитивы" (фейсы, напр точки, линии, тр-ки). Шейдер имеет "вертексы" (точки на которые эти примитивы ссылаются), но сами примитивы ему неизвестны, это задается вызывающим, напр ф-цией glDrawElements. Поэтому "выбрасывать точки" катит только если сами примитивы - точки. С прозрачностью еще хуже по той же причине. Правильным выглядит выкинуть те примитивы которые нужно скрыть. Часто их называют "индексы", доступ к ним в любой системе должен быть, ищите (если уж связались с этой какашкой)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 22.