Definindo um objeto 3D com o formato de arquivo OBJ

O formato de arquivo OBJ é um dos formatos de arquivo mais populares para armazenar modelos 3D. Ele é amplamente utilizado na indústria de jogos, animação e design de produtos. O formato OBJ é um arquivo de texto simples que contém informações sobre a geometria do modelo, como vértices, normais e coordenadas de textura. Neste artigo, discutiremos a estrutura do formato de arquivo OBJ, suas seções e instruções, e mostraremos como criar uma função em C++ que lê um arquivo OBJ e retorna um array de vértices que pode ser usado para renderizar o modelo 3D usando OpenGL.

Continuar lendo Definindo um objeto 3D com o formato de arquivo OBJ

Definindo uma textura para um objeto 3D com o formato de arquivo MTL

O formato de arquivo MTL é usado para definir as texturas de um objeto 3D em um modelo 3D. Ele é geralmente usado em conjunto com o formato de arquivo OBJ, que define a geometria do modelo.

Continuar lendo Definindo uma textura para um objeto 3D com o formato de arquivo MTL

OpenGL – Geometry shaders

Até agora em nossa série sobre OpenGL, usamos vertex e fragment shader para manipular os vértices em pixels na tela. Desde o OpenGL 3.2 existe um terceiro tipo de shader que se posiciona entre o vertex e o fragment shader, conhecido como geometry shader. Esse shader possui a habilidade única de criar uma nova forma geométrica usando a saída do vertex shader como entrada.
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 framebuffer padrão e como vimos, um framebuffer é uma área da memória que pode ser renderizada. E como fazemos se quisermos renderizar um resultado e fazer algumas operações adicionais nele, como algum pós-processamento como visto em jogos modernos?
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