Во всех гайдах, что я видел, меши в теневом проходе рендерятся точно также, как и в простом геометрическом проходе. Но я вот задумался... Теневому проходу нужен только атрибут позиции. Дак может включать только его?
Сейчас мой меш состоит из VAO, в который забинжены VBO {PNT...} и IBO. Для того, чтобы включить только конкретный атрибут, нужно либо создать еще один VAO, либо биндить все содержимое ручками.
Что думаете по этому поводу? Как будет максимально профитно?
d934
> Что думаете по этому поводу?
всё остально работает максимально быстро ? :)
если альфатест то и uv нужна
d934
> Теневому проходу нужен только атрибут позиции. Дак может включать только его?
Вроде как вендоры рекомендуют именно так и делать.
d934
А у вас один VB ? Или все атрибуты по разным VB лежат?
Если в одном - то без разницы.
Да, лишние *BO биндить не стоит.
В гл ничего не надо - слишком большой кост дро колла сведет на нет все "оптимизации".
А для нормальных гапи можно еще и геометрию оптимизированную сгенерить (только позиции, швы зашиты, все сабсеты склеены, etc.).
Wraith
Кост дроколла в OpenGL? Серьезно что ли?
Dampire
> Кост дроколла в OpenGL? Серьезно что ли?
вполне
Misanthrope
В таком случае что подразумевается под дроколлом не подскажешь? Потому что сам дрокол (который glDraw*) не стоит практически ничего, по сравнению со стейт чейнджами, которые как раз таки обычно нормально так оптимизируют в OpenGL (в том числе и redunant).
Wraith
> слишком большой кост дро колла сведет на нет все "оптимизации".
какие ваши доказательства ?
> А для нормальных гапи можно еще и геометрию оптимизированную сгенерить (только
> позиции, швы зашиты, все сабсеты склеены, etc.).
я так понял, в GL нельзя так сделать ?
Wraith
> В гл ничего не надо - слишком большой кост дро колла сведет на нет все
> "оптимизации".
Скорость дварвкола зависит от GAPI только на уровне больше/меньше микро-копирований структур внутри самого GAPI (процент очень маленький для x86). Основная работа дравкола это загрузка всех данных необходимых для отрисовки в видеокарту - а это прежде всего драйвер и сама видюха, а не GAPI.
d934
Для теневого прохода я бы упростил сами шейдеры если они имеют твою собственную специфику. И опционно отключал UV и остальное по необходимости.
Dampire
> Потому что сам дрокол (который glDraw*) не стоит практически ничего
а миллион дравколов ?
Misanthrope
> а миллион дравколов ?
миллион батчей в секунду ? :)
Пользуясь случаем, передаются привет Nvidia, у которых дрова мультипоточные.
Кроме того хотелось бы передать привет автоматическому батчингу дроколлов, которое делает драйвер, когда состояния не менялись.
И как результат передаются привет товарищам, ищущим стоимость дроколла в OpenGl и хочу пожелать им удачи в их начинаниях
Misanthrope
Попробуй, потом расскажешь. Заодно ботлнек замеришь где.
Тема в архиве.