Até agora, em nossa série de artigos sobre OpenGL, sempre enviamos dados de vértices para o processador gráfico e produzimos apenas pixels para serem desenhados em framebuffers. E se quisermos recuperar os vértices depois de serem passados pelo vertex e geometry shaders? Nesse artigo, veremos uma forma de fazer isso, conhecida com feedback de transformações.
Continuar lendo OpenGL – Feedback de transformações
Tag: OpenGl
OpenGL – Geometry shaders
Até agora em nossa série sobre OpenGL, usamos
Continuar lendo OpenGL – Geometry shaders
OpenGL – Framebuffers
Nos artigos anteriores de nossa série sobre OpenGL, vimos diferentes tipos de buffers que o OpenGL oferece: cor, depth e stencil. Esses buffers ocupam a memória de vídeo da mesma forma que qualquer outro objeto OpenGL, mas até agora temos pouco controle sobre eles além da especificação de formatos de pixel quando criamos o contexto OpenGL. Essa combinação de buffers é conhecida como
Continuar lendo OpenGL – Framebuffers
OpenGL – Buffers adicionais: depth e stencil
Até agora, nesta nossa série sobre OpenGL, houve apenas um tipo de buffer de saída usada por nosso exemplos, o buffer de cores. Nesse artigo, discutiremos dois tipos adicionais, o buffer de depth e o buffer de stencil. Para cada um deles um problema será apresentada e resolvido em seguida com esse buffer especifico.
Continuar lendo OpenGL – Buffers adicionais: depth e stencil
OpenGL – Transformações
Como esse artigo tem como foco programação gráfica, não cobrirá boa parte da teoria por trás de matrizes. Apenas a teoria que é aplicada para gráficos computacionais será considerada e será explicada do ponto de vista de um programador. Se quiser aprender mais sobre esse tópico, esses videos da KhanAcademy são uma boa introdução sobre o assunto.
Continuar lendo OpenGL – Transformações
OpenGL – Aplicando texturas
Como no case dos VBOs e VAOs, texturas são objetos que precisam ser gerados primeiro pela chamada á uma função. Não deve ser uma surpresa nesse ponto como essa função é chamada.
GLuint tex;
glGenTextures(1, &tex);
OpenGL – Desenhando polígonos
Ao aprender OpenGL, você decidiu que queria fazer todo trabalho você mesmo. Isso inevitavelmente significa que você será jogado no fundo, mas uma vez que tenha entendido o essencial, verá que fazer as coisas da
Continuar lendo OpenGL – Desenhando polígonos
OpenGL – Criando um contexto para desenho de polígonos
Antes que você possa começar a desenhar coisas com o OpenGL, precisa inicializa-lo. Isso é feito pela criação de um contexto, que é essencialmente um estado de máquina que armazena todos os dados relacionados à renderização de sua aplicação. Quando a sua aplicação é fechada, o contexto é destruído e tudo que ele armazena é apagado da memória.
Continuar lendo OpenGL – Criando um contexto para desenho de polígonos
Mapeamento de textura no OpenGL
Uma das ferramentas mais poderosas em gráficos de computador é o mapeamento de texturas. O mapeamento de texturas aplica uma imagem a uma superfície. Modelar uma superfície complexa frequentemente não é uma tarefa prática por causa do nível de detalhes necessário e por ser difícil renderizar esses detalhes de forma acurada. Ao invés disso, o mapeamento de texturas permite que um polígono simples aparente ter uma superfície complexa.
Continuar lendo Mapeamento de textura no OpenGL
OpenGL Vertex Buffer Object (VBO)
A extensão GL_ARB_vertex_buffer_object tem por objetivo aumentar a performance do OpenGL ao prover os benefícios do vertex array e do display list, ao mesmo tempo que evita os aspectos negativos de suas implementações. O Vertex buffer object (VBO) permite que arrays de vértices sejam armazenados na memória gráfica de alta performance do lado do servidor e promove transferência eficiência de dados. Se o objeto do buffer é usado para armazenar dados de pixels, é chamado Pixel Buffer Object (PBO).
Continuar lendo OpenGL Vertex Buffer Object (VBO)