·

Ciência da Computação ·

Geometria Analítica

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Recomendado para você

Texto de pré-visualização

Computação Gráfica Computação Gráfica Introdução ao OpenGL Introdução ao OpenGL Prof Rafael Vieira Prof Rafael Vieira THIS WORK IS LICENSED UNDER THE CREATIVE COMMONS ATTRIBUTIONSHAREALIKE 40 INTERNATIONAL LICENSE TO VIEW A COPY OF THIS LICENSE VISIT HTTPCREATIVECOMMONSORGLICENSESBYSA40 OR SEND A LETTER TO CREATIVE COMMONS PO BOX 1866 MOUNTAIN VIEW CA 94042 USA CREATED BY RAFAEL S T VIEIRA RAFASTVPROTONMAILCOM Histórico httpswwwlabrifrpersonrougierpythonopenglabitofhistory Python OpenGL for Scientific Visualization Copyright c 2018 Nicolas P Rougier NicolasRougierinriafr Referências Python OpenGL for Scientific Visualization Copyright c 2018 Nicolas P Rougier NicolasRougierinriafr httpswwwlabrifrpersonrougierpythonopengl The book of Shaders httpsthebookofshaderscom Learn OpenGL httpslearnopenglcom OpenGL Tutorial httpwwwopengltutorialorgbeginnerstutorialstutorial1openingawind ow Docs GL httpsdocsgl OpenGL Reference Pages httpswwwkhronosorgregistryOpenGLRefpagesgl4 Tipos de Dados Nome Tamanho Intervalo GLTRUE GLFALSE Boolean 1 bit 0 1 GLBYTE 8 bits 128127 GLUNSIGNEDBYTE 8 bits 0255 GLSHORT 16 bits 2152151 GLUNSIGNEDSHORT 16 bits 02161 GLINT 32 bits 2312311 GLUNSIGNEDINT 32 bits 02321 GLHALFFLOAT 16 bits variado normalsubnormal GLFLOAT 32 bits variado normalsubnormal GLDOUBLE 64 bits variado normalsubnormal Primitivas GLPOINTS GLPOINTS GLLINES GLLINES GLLINESTRIP GLLINESTRIP GLLINELOOP GLLINELOOP Primitivas GLTRIANGLES GLTRIANGLES GLTRIANGLESTRIP GLTRIANGLESTRIP GLTRIANGLEFAN GLTRIANGLEFAN A partir da versão 3 do OpenGL as primitivas GLQUADS GLQUADSTRIP e GLPOLYGON foram abandonadas Faces ou LOOPs São uma únião de segmentos de reta que formam um polígono São uma únião de segmentos de reta que formam um polígono simples e possuem uma ordem simples e possuem uma ordem A B D C Sentido antihorário Ordens sentido antihorário ABC BCA CAB Ordens sentido horário ACB BAC CBA Regra da mão direita OpenGL segue a regra da mão direita OpenGL segue a regra da mão direita Sentido antihorário é positivo ou cresce positivamente vetor cima httpsenwikipediaorgwikiRighthandrule Janela OpenGL Normalized Device Coordinates NDC Normalized Device Coordinates NDC 11 11 0 0 11 11 Todo conteúdo Exibível deve estar dentro deste Volume hexaedríco de 1 até 1 nas 3 dimensões Projeção Ortogonal sem Matriz Conversão de Escalas Conversão de Escalas Volume qualquer Volume qualquer para para NDC NDC u1 11 vmin maxmin u2 vmin maxmin1 u 2v2min maxmin minmax maxmin u 2v2minminmax maxmin u 2vminmax maxmin Pipeline Fixo httpsexpertizacscncsueduindexphpECE506CSCECE506Spring20122baz Dados são fornecidos iterativamente para a GPU e existe uma ordem fixa que as operações devemser executadas httpwwwpngallcommonitorpngdownload3796 Pipeline Variado GLSL httpsexpertizacscncsueduindexphpECE506CSCECE506Spring20122baz Dados são fornecidos primeiro a GPU e a ordem que as operações devemser executadas é relaxada Para acessar dados na GPU precisamos indicar que dados desejamos usar bind httpwwwpngallcommonitorpngdownload3796 GLSL OpenGL Shading Language h t t p s e n w i k i p e d i a o r g w i k i O p e n G L S h a d i n g L a n g u a g e Linguagem similar a linguagem C Tipos de dados Nome Tipo Intervalo bool escalar 0 1 int escalar varia de acordo comprecisão uint escalar Varia de acordo comprecisão float escalar Varia de acordo comprecisão double escalar Varia de acordo comprecisão vec2 vetor de 2 dimensões de acordo com o tipo vec3 vetor de 3 dimensões de acordo com o tipo vec4 vetor de 4 dimensões de acordo com o tipo mat2 matriz 2x2 de acordo com o tipo mat3 matriz 3x3 de acordo com o tipo mat4 matriz 4x4 de acordo com o tipo Letras sublinhadas podem ser adicionadas a frente de vec ou mat para criar um vetor ou matriz daquele tipo o tipo default é float ausência de letra Deste modo ivec2 é um vetor bidimensional com duas coordenadas inteiras Qualificadores dos tipos Letras sublinhadas podem ser adicionadas a frente de vec ou mat para criar um vetor ou matriz daquele tipo o tipo default é float ausência de letra Deste modo ivec2 é um vetor bidimensional com duas coordenadas inteiras Varying inout variável que será transmitida de um shader a outro Attribute variável acessível apenas no shader default Uniform variável que é fornecida pelo programa para gpu Precision quantidade de bits usadas para armazenar um tipo de dado lowp mediump highp A especificação do GLSL de acordo com a versão determina um mínimo de bits por exemplo 8 10 e 24 para lowp mediump e highp respectivamente mas isto pode ser mais de acordo com o dispositivo VBO Vertex Buffer Object Armazenam uma matriz de dados que podem ser Armazenam uma matriz de dados que podem ser Pontos ou Vértices Pontos ou Vértices Cores Cores Normais Vetores Normais Vetores Escalares Escalares Índices Índices Mapeamento de Texturas Mapeamento de Texturas VBO é o nome mais comummente usado mas também Podese ver EBO element buffer objects e IBO Index buffer objects que tentam atribuir uma finalidade única a um BO todos eles são criados com o mesmo comando VAO Vertex Array Object Armazena uma matriz de VBOs para Armazena uma matriz de VBOs para facilitar o acesso aos dados de um modelo facilitar o acesso aos dados de um modelo httpslearnopenglcomGettingstartedHelloTriangle Adicionar módulos para operações com Matrizes Numpy Numpy httpsnumpyorg httpsnumpyorg python m pip install numpy python m pip install numpy Pyrr Pyrr httpspyrrreadthedocsioenlatest httpspyrrreadthedocsioenlatest python m pip install pyrr python m pip install pyrr OpenGL Mathematics OpenGL Mathematics httpsglmgtrucnet099indexhtml httpsglmgtrucnet099indexhtml python m pip install pyglm python m pip install pyglm Pode usar outro módulo para lidar com matrizes estes são apenas os mais comuns Fim httpdaliafernandescomwpcontentuploads201411mafaldaduvidas2png rafaeltellesuecebr rafaeltellesuecebr Zap 996837234 Zap 996837234