This project is read-only.

Capturing Data From Graphics Hardware


Unfortunatelly, this page is available only in Portuguese.


Para capturar os valores diretamente da saída dos processadores de vértices é utilizada a extensão NV_Transform_Feedback. Para os de fragmentos, a extensão EXT_Framebuffer_Object.
  • NV_Transform_Feedback

A extensão NV_Transform_Feedback foi introduzida pela NVIDIA na sua família de placas GeForce8. Esta extensão fornece um novo modo de execução à OpenGL, chamado transform feedback, que salva os atributos dos vértices das primitivas processadas pelo programa. Os valores destes atributos são escritos na memória da placa, no transformfeedbackbuffer. É possível capturar a saída de processadores de vértices, de geometria e de funções fixas de processamento de vértices. Esta captura ocorre antes do processo de clipping.

Query objects são utilizados para indicar para a aplicação quando os resultados da captura já estão disponíveis e quantas primitivas foram processadas e escritas no buffer. Para ler os dados do buffer é utilizada a função glMapBuffer, que atribui estes valores à um vetor de GLfloats. A extensão também provê métodos para descartar o que foi rasterizado no modo transform feedback, de forma que, é possível capturar os atributos dos vértices sem renderizar a cena.

A utilização desta função pode ser dividida em duas etapas principais: (i) operações realizadas ao iniciar o programa OpenGL e (ii) operações realizadas a cada renderização da cena. A Figura 1 e a Figura 2 apresentam a expansão detalhada destas duas etapas, mostrando as operações de cada uma delas e as respectivas funções OpenGL.

etapa11.jpg etapa12.jpg
  • EXT_Framebuffer_Object

Esta extensão permite definir outros destinos de renderização que não os buffers providos à OpenGL pelo sistema de janelas. Estes novos destinos são chamados framebuffer-attachable images. Estas framebuffer-attachable images são anexadas ao framebuffer OpenGL como se fossem um buffer padrão (color, depth e stencil). Quando uma framebuffer-attachable images é anexada ao framebuffer, ela é usada como fonte e destino das operações de fragmentos, assim, é possível fazer renderização offline.

Texturas são utilizadas como framebuffer-attachable images e o uso é similar ao uso tradicional de texturas. Como é possível ter mais de uma framebuffer-attachable images, esta extensão também introduziu a noção de framebuffer objects, que é um GLObject que contém, entre outras informações, o conjunto de imagens do framebuffer.
Assim como para a extensão NV_Transform_Feedback, a utilização desta função pode ser dividida nas etapas: (i) operações realizadas ao iniciar o programa OpenGL e (ii) operações realizadas a cada renderização da cena. A expansão detalhada destas duas etapas e respectivas funções OpenGL é apresentada nas Figura 3 e 4.

etapa21.jpg etapa22.jpg

Last edited Nov 30, 2008 at 9:46 PM by bellaver, version 3

Comments

No comments yet.