Skip to main content

Что такое OpenGL® VBO?

При использовании библиотек компьютерной графики Open Graphics Library® (OpenGL®) для компьютерного программирования объект буфера вершин (VBO) представляет собой структуру данных, которая позволяет создавать трехмерный (3D) объект и сохранять его в памяти графики. карта или графическое оборудование. Это позволяет очень быстро рендерить OpenGL® VBO и использовать гораздо меньше системных ресурсов, чем другие методы, использующие рисование в непосредственном режиме. В дополнение к увеличению скорости и уменьшению накладных расходов на графику, OpenGL® VBO также представляет собой динамическую структуру данных - в отличие от списка отображения OpenGL® -, которую можно изменять, когда она находится в памяти. Концепция OpenGL® VBO фактически началась с производителей оборудования, которые первоначально включили - под разными именами - функциональность аналогичного типа, как расширение библиотек OpenGL®, которое позже было стандартизировано OpenGL® Architecture Review Board (ARB).

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

Позволяя VBO храниться в графической памяти, он также приобретает некоторые свойства списка отображения. Основное отличие состоит в том, что OpenGL® VBO можно изменить, а список отображения - нет. Кроме того, VBO не обязательно копируется в графическую память, как список отображения, поэтому в памяти должна присутствовать только одна структура данных.

Когда OpenGL® VBO наконец-то визуализируется, расстояние от графической памяти, в которой он хранится, и графического процессора (GPU) очень мало, что позволяет очень быстро растеризоваться без необходимости сначала перемещаться по более медленному системному оборудованию. Однако в некоторых случаях использование VBO не поддерживается аппаратными средствами видеокарты. Это может привести к проблемам программирования, которые устранят любые дополнительные преимущества от использования VBO или программы, которая будет несовместима с некоторыми видеокартами.

Существуют некоторые методы, которые могут помочь оптимизировать обработку VBO OpenGL® при использовании. Одним из них является предоставление подсказок для видеокарты или OpenGL®, чтобы помочь определить, где VBO должен быть расположен в памяти. В зависимости от предоставленных подсказок VBO может быть сохранено непосредственно в графической памяти на графической карте или может быть сохранено в основной оперативной памяти (RAM) системы, если это будет сочтено необходимым.