Prévia do material em texto
COMPUTAÇÃO GRÁFICA TURMA: UNN0790108NNA Manaus/AM 2021 Antônio Candido Fernandes - 03106373 Italo Rener da Silva Azevedo - 03104323 Marcus Vinicius dos Santos Monteiro - 03175750 William Backsmann Patrício Borges - 03093351 Richard Clarindo dos Santos - 03100533 Trabalho solicitado pelo professor Diego da Silva Froner tal com objetivo de lançar nota parcial para a disciplina de computação gráfica. Manaus/AM 2021 Sumário FERRAMENTAS 6 Python 3.9 6 Novidades do instalador 6 Biblioteca Pygame 6 Biblioteca PyOpengl 7 Sub-pacotes 7 TESTE 8 ESCALA 8 ROTAÇÃO 8 REFLEXÃO 9 TRANSLAÇÃO 9 CÓDIGO DOS TESTES APRESENTADOS 10 CONCLUSÃO 12 INTRODUÇÃO A Computação Gráfica tornou-se mundialmente conhecida devido às indústrias cinematográficas e de entretenimento em geral. Desde os efeitos especiais mais simples desenvolvidos até meados doséculo passado, até a criação de filmes sem a utilização de atores fizeram com que a Computação Gráfica (ou seus resultados) fossem considerados um show a parte. Com os avanços dos recursos, algumas técnicas para a geração e tratamento de imagens encontraram outro campo de atuação. Neste trabalho serão apresentadas ferramentas que permitam que manipulemos objetos em espaços bidimensionais e tridimessionais Para permitir com que os conceitos teóricos sejam aplicados algumas instruções da biblioteca gráficaOpenGL serão apresentadas. Esta biblioteca permite manipular elementos gráficos 2 FERRAMENTAS · Python 3.9 É a versão principal mais recente da linguagem de programação Python e contém muitos novos recursos e otimizações. Novidades do instalador Esta é a primeira versão do Python a usar como padrão o instalador de 64 bits no Windows. O instalador agora também proíbe ativamente a instalação no Windows 7. Python 3.9 é incompatível com esta versão não suportada do Windows. Alguns dos novos recursos e mudanças principais no Python 3.9 são: PEP 573, Acesso ao estado do módulo a partir de métodos de extensão C PEP 584, Operadores sindicais em dit PEP 585, Genéricos de sugestão de tipo em coleções padrão PEP 593, função flexível e anotações variáveis · Biblioteca Pygame O Pygame foi originalmente escrito por Pete Shinners para substituir o PySDL depois que seu desenvolvimento foi interrompido. Tem sido um projeto da comunidade desde 2000 e é lançado sob o software livre GNU Lesser General Public License (que "prevê que o Pygame seja distribuído com software livre e comercial. Pygame é um wrapper Python para a biblioteca SDL, que significa Simple DirectMedia Layer. SDL fornece acesso de plataforma cruzada aos componentes de hardware de multimídia subjacentes do seu sistema, como som, vídeo, mouse, teclado e joystick. O pygame começou a vida como um substituto para o projeto PySDL paralisado. A natureza multiplataforma do SDL e do pygame significa que você pode escrever jogos e programas Python de multimídia ricos para todas as plataformas que os suportem. · Biblioteca PyOpengl PyOpenGL é a ligação Python de plataforma cruzada mais comum para OpenGL e APIs relacionadas. A vinculação é criada usando a biblioteca ctypes padrão e é fornecida sob uma licença de código aberto no estilo BSD extremamente liberal. Sub-pacotes O projeto PyOpenGL inclui uma série de subprojetos: PyOpenGL, o pacote "OpenGL" quando instalado, fornece subpacotes GL, GLES1, GLES2, GLES3, GLUT, GLU, GLE, WGL, EGL e GLX OpenGL_accelerate, um módulo acelerador codificado por cython para PyOpenGL, opcional, mas recomendado quando disponível O código para OpenGL_accelerate está no repositório PyOpenGL principal, mas é distribuído como um pacote Python separado e instalado como OpenGL_accelerate PyOpenGL-Demo, uma coleção de pequenas demonstrações independentes Você normalmente deseja executá-los a partir da distribuição de origem, já que não há nada instalado pelo pacote OpenGLContext, uma biblioteca de ensino e teste construída em cima do PyOpenGL (e muitas outras bibliotecas) Logo não precisa do OpenGLContext para usar o PyOpenGL TESTE · ESCALA Imagem original Função de escala sobre o cubo. Para a realização da escala sobre o cubo, nós utilizamos os seguintes valores em glScalef(2.5, 2.5, 2.5). · ROTAÇÃO Imagem original Função de rotação sobre o cubo Para a realização da rotação sobre o cubo, nós utilizamos os seguintes valores em glRotatef(20,0,0,1). · REFLEXÃO Imagem original Função de reflexo sobre o cubo Para a realização da reflexão foi utilizado a glRotatef(-90,0,1,0), onde é aplicado -90º em relação ao objeto no eixo Y.. · TRANSLAÇÃO Imagem original Função de translação aplicada sobre o objeto Para a aplicação da translação foram inseridos os seguintes valores glTranslatef(2.5,2.5,-10.0). CÓDIGO DOS TESTES APRESENTADOS import pygame from pygame.locals import * from OpenGL.GL import * from OpenGL.GLU import * vertices = ((1, -1, -1),(1, 1, -1),(-1, 1, -1),(-1, -1, -1),(1, -1, 1),(1, 1, 1),(-1, -1, 1),(-1, 1, 1)) arestas = ((0,1),(0,3),(0,4),(2,1),(2,3),(2,7),(6,3),(6,4),(6,7),(5,1),(5,4),(5,7)) def Cube(): glBegin(GL_LINES) for edge in arestas: for vertex in edge: glVertex3fv(vertices[vertex]) glEnd() def main(): pygame.init() display = (800,600) pygame.display.set_mode(display, DOUBLEBUF|OPENGL) gluPerspective(45, (display[0]/display[1]), 0.1, 50.0) glTranslatef(0.0,0.0,-10.0) glRotatef(0, 0, 0, 0) glScale(2.5,2.5,2.5) while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() quit() glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) Cube() pygame.display.flip() pygame.time.wait(10) main() CONCLUSÃO Após a sua rápida ascensão no mercado, o Python se difundiu como uma linguagem muito utilizada nas áreas de machine learning e inteligência artificial, mas sua versatilidade permite que suas aplicações cheguem muito mais além. Por possuir uma grande variedade de frameworks e bibliotecas à sua disposição, inclusive o Pygame, essa linguagem tornou-se essencial no currículo de conhecimentos de quem deseja tornar-se um programador. PyOpenGL é a ligação Python de plataforma cruzada mais comum para OpenGL e APIs relacionadas. A vinculação é criada usando a biblioteca ctypes padrão e é fornecida sob uma licença de código aberto no estilo BSD extremamente liberal. Pygame é um wrapper Python para a biblioteca SDL, que significa Simple DirectMedia Layer. SDL fornece acesso de plataforma cruzada aos componentes de hardware de multimídia subjacentes do seu sistema REFERÊNCIAS SITE: Python Brasil URL: https://python.org.br/instalacao-windows/ SITE: PyOpenGL for OpenGL Programmers URL: http://pyopengl.sourceforge.net/documentation/opengl_diffs.html SITE: Python Programming URL: https://pythonprogramming.net/opengl-rotating-cube-example-pyopengl-tutorial/ SITE: ECDD URL: https://ecdd.infnet.edu.br/guia-o-que-e-computacao-grafica/ SITE: Python URL: https://www.python.org/downloads/release/python-390/ SITE: Real Python URL: https://realpython.com/pygame-a-primer/ SITE: Pyopengl URL: http://pyopengl.sourceforge.net/