2016-09-15 1 views
1

TES shader предоставляет встроенную входную переменную gl_PrimitiveID​, которая является индексом текущего патча в серии патчей, обрабатываемых для этого вызова рисования.GLSL: количество примитивов в текущем вызове вызова

Как узнать общее количество исправлений в этом призыве на рисование, помимо установки равномерной переменной? И почему нет такого ввода? Кажется довольно логичным иметь что-то вроде gl_NumPrimitives встроенный, если у нас уже есть счетчик gl_PrimitiveID.

Мотивация: Я хочу индексировать 1D пробоотборник от 0.0 до 1.0 на основе gl_PrimitiveID​, так что первый примитив в обратном вызове соответствует 0.0, а последний соответствует 1.0.

ответ

2

Как узнать общее количество исправлений в этом призыве на рисование, помимо установки равномерной переменной?

Вы не можете назначить однородную переменную.

И почему нет такого входа?

Я не являюсь частью Хроноса, но предполагают, что:

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

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

+0

Хорошие баллы! И спасибо, что отпугивал меня от дальнейших исследований, как это сделать. – Sergey

Смежные вопросы