OpenGL Stencil Buffer, насколько хорошо они поддерживаются?

  • Насколько широко сейчас поддерживается буфер трафарета аппаратным обеспечением в OpenGL?

  • Это лучше / хуже, чем шейдеры?

  • Если оборудование не поддерживает его, будет ли оно эмулироваться в программном обеспечении?

К сожалению, я не смог найти точных данных по этому вопросу … Я хочу предположить, что, поскольку трафарет является старой технологией, он получил бы повсеместную поддержку. Тем не менее, будучи старой технологией, она может так же легко отказаться от нового оборудования с графическим процессором в пользу фрагментных шейдеров.

В моем сценарии я бы использовал 8-битный буфер трафарета в сочетании с 24-битным буфером глубины, который используется с VBO (если это влияет на что-либо). Если я использую буфер трафарета, те, у кого нет поддержки трафарета, не смогут играть в игру, которую я делаю, и, таким образом, беспокоюсь. Если бы они могли хотя бы подражать эффекту трафарета в программном обеспечении, хотя он не был бы идеальным, этого было бы достаточно, чтобы развеять мои страхи.

1

Решение

Буферы трафарета все еще находятся в спецификации OpenGL 4.4. Они описаны в разделе 9.1, а тесты трафарета — в разделе 17.3.5.

Вам гарантированы трафаретные буферы. Будь они сделаны на GPU или в программном обеспечении — это детали реализации. Любая машина, которая может работать с версией OpenGL, на которую вы нацелены, должна иметь возможность обрабатывать трафаретное тестирование на процессоре без проблем.

2

Другие решения

Насколько широко сейчас поддерживается буфер трафарета аппаратным обеспечением в OpenGL?

Буферы трафарета обычно поддерживаются графическим процессором с древних времен.

Это лучше / хуже, чем шейдеры?

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

Если оборудование не поддерживает его, будет ли оно эмулироваться в программном обеспечении?

Да, но не так, как хотелось бы: весь конвейер рендеринга вернется к чисто программному рендерингу. Тест трафарета реализован с помощью аппаратной функциональности и не может быть эмулирован «встроенным» программным обеспечением, которое реализует только тест трафарета, в то время как остальные были реализованы по-другому. Это просто не работает таким образом.

К счастью, каждый графический процессор поддерживает трафаретные тесты. Так что это не имеет никакого значения.

1

По вопросам рекламы [email protected]