Buscar

Tutorial_OpenGL

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

OVERVIEW
Tutorial de OpenGL� Iluminação, 
Animações, Sensores de Proximidade, 
Sensores de Colisão e Texturas
Introdução
OpenGL é uma biblioteca gráfica amplamente utilizada para criar ambientes 
gráficos interativos. Neste tutorial, exploraremos as seguintes estruturas 
em cenas com o OpenGL� iluminação, animações, sensores de proximidade, 
sensores de colisão e texturas.
ESTRUTURAS EM
CENA COM 
Aluna: Maria Izabel Nunes de França Matrícula: 20111693
1. Iluminação
A iluminação é uma característica essencial para criar cenas realistas 
e adicionar profundidade aos objetos. No OpenGL, você pode configurar 
vários tipos de fontes de luz.
A iluminação consiste em ser o processo de adicionar luz a uma cena 
para que os objetos sejam visíveis. No OpenGL, a iluminação é feita 
usando o pipeline de renderização. Esse pipeline é uma série de etapas 
que são executadas para gerar uma imagem da cena.
A iluminação é dividida em três tipos:
Passo�a�passo rápido para 
implementar iluminação na linguagem 
Python 
Iluminação em OpenGL com Python:
Resultado esperado para cada tipo de iluminação:
Iluminação ambiente: É uma iluminação uniforme que é aplicada a 
todos os objetos da cena, independentemente de sua posição ou 
orientação.
Iluminação difusa: É uma iluminação que é refletida pela superfície 
dos objetos. A intensidade da iluminação difusa depende da direção 
da luz e da orientação da superfície.
Iluminação especular: É uma iluminação que é refletida pela 
superfície dos objetos como um ponto brilhante. A intensidade da 
iluminação especular depende da direção da luz, da orientação da 
superfície e da rugosidade da superfície.
1. Primeiramente você irá importar as bibliotecas OpenGL.
2. Inicialize a janela.
3. Configure a iluminação habilitando�a com glEnable(GL_LIGHTING).
4. Configure uma fonte de luz com características como posição, 
ambiente, difusa e especular.
5. Ative a fonte de luz com glEnable(GL_LIGHT0).
6. Desenhe seus objetos OpenGL na função draw_objects.
7. Chame a função main para iniciar o programa.
2.Animações
Animações são mudanças na posição, orientação ou aparência de um 
objeto ao longo do tempo.
As animações podem ser usadas para criar efeitos visuais interessantes 
e envolventes. Elas podem ser usadas para fazer objetos se moverem, 
girarem ou mudar de forma. As animações podem ser criadas de várias 
maneiras, incluindo:
Passo�a�passo rápido para 
implementar animações 
Animações em OpenGL�
Animação por quadros: A maneira mais básica de animação. Ela 
envolve a criação de uma sequência de imagens que são exibidas em 
rápida sucessão para criar a ilusão de movimento.
Animação por interpolação: Essa forma de animação usa uma equação 
matemática para calcular os valores intermediários entre dois 
pontos. Isso permite que os objetos se movam de forma contínua.
Animação procedural: Já essa forma de animação usa um algoritmo 
para gerar os valores de animação. Isso pode ser usado para criar 
animações mais complexas.
1. Primeiramente você irá configurar sua IDE com o OpenGL. Instale 
OpenGL e suas bibliotecas para começar.
2. Você irá utilizar bibliotecas como GLUT para criar uma janela onde 
sua animação será exibida.
3. Defina algumas variáveis para controlar o estado da animação. Isso 
inclui informações como posição, rotação e escala dos objetos em sua 
cena.
4. Crie uma função de desenho que será chamada repetidamente para 
atualizar a cena. 
5. Dentro da função de desenho, atualize as variáveis de animação.
6. Dentro da função de desenho, desenhe os objetos com base nas 
variáveis de animação atualizadas.
Resultado esperado para animações:
7. Use um temporizador para controlar o ritmo da animação. Isso permite 
que você defina a taxa de quadros (FPS) da animação.
8. Crie um loop principal que chama a função de desenho repetidamente.
9. Caso queira, você pode adicionar eventos de teclado e mouse para 
interagir com a animação, pausar ou reiniciar.
3.Sensores de Proximidade
Os sensores de proximidade em OpenGL são utilizados para detectar 
quando objetos estão próximos uns dos outros na cena.
Os sensores de proximidade envolvem o cálculo da distância entre 
objetos e a detecção de colisões quando essa distância é menor que um 
limite predefinido.
Passo�a�passo rápido para 
implementar sensores de proximidade
Sensores de proximidade em OpenGL�
1. Confira se sua IDE esteja configurada com o OpenGL.
2. Crie estruturas de dados para representar objetos 3D que você irá 
verificar a proximidade. Essas estruturas devem incluir informações 
de posição e geometria dos objetos.
3. Crie uma função que verifica se dois objetos estão próximos com base 
em critérios específicos, como distância entre eles. Uma 
possibilidade é usar a distância euclidiana para essa verificação.
4. Utilize a função de detecção de proximidade para realizar ações 
específicas quando objetos se aproximam. Você pode usar alterações 
visuais ou efeitos especiais.
5. Para que ele atualize constantemente, coloque a função de detecção 
de proximidade no loop principal.
Exemplo em código de um sensor de proximidade em Python: 
Nesse exemplo, dois círculos são desenhados na tela, e a cor deles 
muda com base na proximidade. A distância entre os círculos é 
verificada, e a cor é definida como vermelha se eles estiverem próximos 
4.Sensores de Colisão 
Os sensores de colisão verificam se dois objetos estão colidindo. Para 
detectar colisões, podemos usar formas geométricas e algoritmos de 
detecção.
Passo�a�passo rápido para 
implementar sensores de colisão
Sensores de colisão em OpenGL�
Exemplo em código de um sensor de colisão em Python: 
1. Primeiro crie estruturas de dados para representar os objetos que 
podem colidir. Essas estruturas devem incluir informações como 
posição (x, y, z), tamanho, forma etc.
2. Decida qual técnica de detecção de colisão é apropriada para seus 
objetos. Uma técnicas comum é a de esferas.
3. Crie uma função que verifica se dois objetos estão colidindo com 
base na técnica escolhida. Você precisará de cálculos matemáticos 
para verificar a sobreposição de formas ou a proximidade dos 
objetos.
4. Utilize a função de detecção de colisão para obter alterações quando 
objetos colidem.
5. Coloque a função de detecção de colisão no loop principal do OpenGL. 
Ela precisa ser chamada a cada quadro para garantir que a detecção 
de colisão seja constante.
Nesse exemplo, a função colisao verifica se dois retângulos estão 
colidindo, e a cor dos retângulos muda com base na colisão.
5.Texturas
Texturas em OpenGL são usadas para mapear imagens ou padrões em 
superfícies 3D, tornando os objetos mais realistas. Texturas são muito 
utilizadas em jogos, simulações e aplicativos de gráficos 3D.
Passo�a�passo rápido para 
implementar texturas
Texturas em OpenGL�
Exemplo em código de textura em Python: 
1. Primeiro, você precisa ter uma imagem que servirá como textura. Você 
pode usar a biblioteca Python PIL (Pillow), para carregar uma imagem 
no formato suportado por OpenGL, JPG ou PNG.
2. Após carregar a imagem, você precisará convertê�la em dados de 
textura. Você terá que converter a imagem em uma matriz de bytes, 
para que o OpenGL possa usá�la como textura. A dimensão da imagem 
(largura e altura) são levadas em consideração.
3. Você deve configurar a textura antes de usá�la. Deve gerar um 
identificador de textura, a ativação da textura e a configuração de 
parâmetros.
4. Depois de configurar a textura, você carrega os dados da textura, 
que são os bytes da imagem convertida, no identificador de textura.
5. Agora você poderá aplicar a textura a um objeto 3D em OpenGL, como 
por exemplo um cubo. Você deve definir as coordenadas de textura 
para os vértices do objeto 3D
6. Após aplicar a textura, você pode realizar outras operações de 
transformação, como rotação ou translação, e, em seguida, renderizar 
sua cena em OpenGL.
Referências das imagens utilizadas 
opengl, textures have always the same size - Stack Overflow
OpenGL��textureproblem record - Programmer Sought
06.) Textures - OpenGL 3 - Tutorials - Megabyte Softworks (mbsoftworks.sk)
Modern OpenGL/C�� | How To Build A 3D Pyramid - YouTube
Iluminação OpenGL (Java) - YouTube
Aqui carregamos a textura, a aplicamos a um quadrado e renderizamos a 
cena. "exemplo_textura.jpg" deve ser trocado pelo caminho da imagem 
que você deseja usar como textura.
Alguns exemplos de textura:
https://stackoverflow.com/questions/14498062/opengl-textures-have-always-the-same-size
https://www.programmersought.com/article/26734561099/
https://www.mbsoftworks.sk/tutorials/opengl3/06-textures/
https://www.youtube.com/watch?v=EmHnBUG7yME
https://www.youtube.com/watch?v=GWGskgvajZQ

Outros materiais