O que é um OpenGL® VBO?

Ao usar as bibliotecas de gráficos de computador da Open Graphics Library® (OpenGL®) para programação de computadores, um objeto de buffer de vértice (VBO) é uma estrutura de dados que permite que um objeto tridimensional (3D) seja construído e armazenado na memória dos gráficos placa ou hardware gráfico. Isso permite que um OpenGL® VBO seja renderizado muito rapidamente e use muito menos recursos do sistema do que outras técnicas que usam desenho em modo imediato. Além dos ganhos de velocidade e da redução de sobrecarga de gráficos, um OpenGL® VBO também é uma estrutura de dados dinâmica - diferente da lista de exibição do OpenGL® - que pode ser alterada quando estiver na memória. O conceito de um OpenGL® VBO começou com fabricantes de hardware que originalmente incluíam - sob nomes diferentes - um tipo de funcionalidade semelhante à extensão das bibliotecas OpenGL® que posteriormente foi padronizada pelo OpenGL® Architecture Review Board (ARB).

Um OpenGL® VBO é basicamente uma combinação de dois outros tipos de estruturas de dados OpenGL®. Ele abrange a funcionalidade básica de uma matriz de vértices, porque as informações da geometria - incluindo as coordenadas, as normais e as cores dos vértices - podem ser armazenadas em uma matriz estruturada que pode ser passada ao OpenGL® para processamento. Ao contrário de uma matriz de vértices, no entanto, um OpenGL® VBO é armazenado no lado do servidor do renderizador e não precisa acessar constantemente o lado do cliente para obter informações sobre vértices.

Ao permitir que o VBO seja armazenado na memória gráfica, ele também assume algumas das propriedades de uma lista de exibição. A principal diferença é que um OpenGL® VBO pode ser modificado e uma lista de exibição não. Além disso, o VBO não é necessariamente copiado para a memória gráfica como seria uma lista de exibição; portanto, apenas uma estrutura de dados precisa estar presente na memória.

Quando um OpenGL® VBO é finalmente renderizado, a distância da memória gráfica em que está armazenada e a unidade de processamento gráfico (GPU) é muito pequena, permitindo uma rasterização muito rápida sem a necessidade de se mover primeiro pelo hardware do sistema mais lento. Em alguns casos, no entanto, o uso de VBOs não é suportado pelo hardware da placa de vídeo. Isso pode levar a problemas de programação que removem quaisquer benefícios adicionais do uso de uma VBO ou de um programa incompatível com algumas placas gráficas.

Existem alguns métodos que podem ajudar a otimizar como um OpenGL® VBO é tratado quando usado. Uma delas é fornecer dicas para a placa gráfica ou para o OpenGL®, para ajudar a determinar onde o VBO deve estar localizado na memória. Dependendo das dicas fornecidas, o VBO pode ser armazenado diretamente na memória gráfica da placa gráfica ou na memória principal de acesso aleatório (RAM) do sistema, se necessário.

OUTRAS LÍNGUAS

Este artigo foi útil? Obrigado pelo feedback Obrigado pelo feedback

Como podemos ajudar? Como podemos ajudar?