Capítulo 3 Primeiros Passos em OpenGL Função Desenha Função Teclado Função Inicializa Programa Principal...

Documentos relacionados
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA DEPARTAMENTO DE INFORMÁTICA APLICADA

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos

Prof. Fernando V. Paulovich 3 de agosto de SCC Computação Gráca

Introdução à Computação Gráfica. Claudio Esperança Paulo Roma Cavalcanti

Introdução à Computação Gráfica

INF1339 Computação Gráfica Tridimensional. Waldemar Celes. 2 de Agosto de 2010

Geração Procedural de Terrenos em GPU

Computação Gráfica. Prof. André Yoshimi Kusumoto

Computação Gráfica. Agostinho Brito. Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte

Visualização por Computador: Teoria, Prática e Aplicações

Implementação de um Ambiente para Modelagem de Objetos 3D com uso de Sweeping. Ednilson José ALUNO. Prof. Dalton Solano dos Reis ORIENTADOR

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora

Bruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais

DESENVOLVIMENTO DE UM SOFTWARE DE GERAÇÃO E VISUALIZAÇÃO DE NANOESTRUTURAS

OpenGL. Licenciatura em Computação Computação Gráfica - Aula 2 (atualizada em 03 ago. 2017)

OPENGL. Matheus Fuhrmann Stigger [1] e Bruna Cavallero Martins

Resumo. Computação Gráfica: Uma Proposta de Plano Pedagógico. Áreas Correlatas. Definição. Uma Visão Integrada da C.G.

Interatividade. Limitado Reativa Coativa. Alargado Coativa Proativa

Professor: Laboratório de Programação com Games. Anselmo Montenegro Conteúdo: - Introdução. Instituto de Computação - UFF

Daniel Pereira prof. Dalton S. dos Reis

INF2610 Renderização em Tempo Real. Waldemar Celes. 23 de Março de 2017

Introdução à Computação Gráfica

CIV2802 Sistemas Gráficos para Engenharia

Engenharia Informática Computação Gráfica

OpenGL. Soraia Musse

OpenGL. Licenciatura em Computação Computação Gráfica - Aula 2 (atualizada em 15/08/2018)

CG com OpenGL. Paulo Gandra de Sousa Sistemas Gráficos e Interactivos Instituto Superior de Engenharia do Porto

Computação Gráfica e Processamento de Imagens. - Sistemas 3D (conceitos básicos) Prof. Julio Arakaki

LISTA DE ATIVIDADES Semestre Letivo 2018/1

António Costa. Paulo Roma Cavalcanti

Comparação entre as bibliotecas gráficas. OpenGL e Direct3D. Aluno:Alexandre Otto Strube Orientador: Paulo César Rodacki Gomes

Introdução a OpenGL. Renato Rodrigues Oliveira da Silva Danilo Medeiros Eler

EDITOR DE MALHAS FERROVIÁRIAS EMF

COMPUTAÇÃO GRÁFICA COM WEBGL

Computação Gráfica OpenGl 01

Materiais e UVW Map Renderizar com Rhino parte #03

Plano de Ensino de Disciplina Ciência da Computação 2º / 2016

Flávio André. Prof. Dalton Solano dos Reis

Engenharia Elétrica Computação Gráfica - Aula 2 (atualizada em 22/04/2018)

Computação Gráfica Introdução

Prof. Fernando V. Paulovich 3 de maio de SCC Computação Gráca

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Teclado Virtual. MAC0420/MAC5744 Introdução Computação Gráfica. IME Instituto de Matemática e Estatística USP Universidade de São Paulo

Desenvolvimento de um Motor Gráfico de Apoio a Ambientes Lúdicos Educacionais

Computação Gráfica - OpenGl 02

Terceira Edição Revisada e Ampliada. Allan Brito. Novatec

Um Sistema de Animação Baseado em Movimento Capturado

Instruções Gerais. Enunciado

Rendering de Polígonos. Determinação de Superfícies Visíveis. Back Face Culling. Back Face Culling. Back Face Culling. Back Face Culling.

1) DADOS DA OBRA: Programando em Java 2 Teoria e Aplicações Rui Rossi dos Santos 2004 Axcel Books (

Desenho de uma matriz de retângulos Serve de base para o exercício das cores

Computação Gráfica - 09

Computação Gráfica - 13

PEF 5743 Computação Gráfica Aplicada à Engenharia de Estruturas

Pipeline de Visualização 3D

Blender 3D jogos e animações interativas Allan Brito

PROMOB - FORMAÇÃO CONTEÚDO PROGRAMÁTICO. - Desenho Arquitetônico

Sumário. Introdução Câmera sintética Window-to-Viewport Exercício. 29-May-13 Leandro Tonietto!2

Computação Gráfica - 09

Instituto Tecnológico de Aeronáutica. Prof. Carlos Henrique Q. Forster Sala 121 IEC. Luiz Felipe Simões Hoffmann

Implementação de uma biblioteca gráfica multiplataforma utilizando OpenGL e GLFW.

Computação Gráfica. Representação e Modelagem

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 2. Introdução a OpenGL

Programação Gráfica Cap 2

SketchUp: Tutorial I INTERFACE. Criado em: 16 de Julho de 2017, por Pedro Rodrigues

AULA 2 Planos Vistas e Temas

Lista de exercícios. 4) Defina o conceito de função de eficiência luminosa. (Victor)

INTRODUÇÃO A OPENGL. Computação Gráfica

Apresentação da Disciplina

vértices dessas células. Exemplos de malhas estruturadas e não-estruturadas são apresentados na Figura 2.

Enquadramento e Conceitos Fundamentais

Introdução Capítulo 1: Um Olhar sobre as Funcionalidades e Interface do Microsoft Excel

VISEDU-CG: Aplicação Didática para Visualizar Material Educacional, Módulo de Computação Gráfica

OpenGL 3.* INF Rendering em Tempo Real. Waldemar Celes Departamento de Informática, PUC-Rio

Técnicas de renderização com textura

Plano de Aula - Photoshop CS6 - cód Horas/Aula

FX Canvas2D: uma API de jogos bidimensionais para auxiliar na aprendizagem de programação

Introdução Interfaces Módulos de modelagem

Computação Gráfica - 13

Programa Analítico de Disciplina CIV180 Projeto Assistido por Computador

3.1 Linha de Produção Utilizada

Rendering 2D com OpenGL e interface gráfica em Qt

Protótipo tipo de um ambiente virtual distribuído

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

Introdução Prática à Programação em OpenGL

Shading (sombreamento) & Smooth Shading

Introdução a Programação de Jogos

Técnicas de Mapeamento

Professor: Computação Gráfica I. Anselmo Montenegro Conteúdo: - Introdução. Instituto de Computação - UFF

Sumário. Capítulo 1 Introdução 29. Capítulo 2 Utilizando Objetos 59

4ª Edição Revisada e Ampliada Allan Brito

Desenho Técnico sem Prancheta com AutoCAD 2010

Renderização Fácil com o DataCAD

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 1. Apresentação

Photoshop CS5 Plano de Aula - 24 Aulas (Aulas de 1 Hora).

1.5 PROGRAMAÇÃO DE JOGOS EM AMBIENTE DE REA LIDADE AUMENTADA AMBIENTES INTEGRADOS DE DESENVOLVIMENTO DE JOGOS 19

Sistemas Gráficos e Modelos Cap 1

Transcrição:

Sumário Prefácio...15 Capítulo 1 Introdução...17 Capítulo 2 Instalação...22 2.1 Visão Geral das Bibliotecas OpenGL...22 2.2 Bibliotecas Necessárias para Execução...24 2.3 Bibliotecas Necessárias para Compilação...24 2.3.1 Instalação no Visual C e no Visual Studio...25 2.3.2 Instalação no Dev-C++...25 2.3.3 Instalação no Linux...27 2.4 Configuração dos Ambientes de Desenvolvimento...27 2.4.1 No Visual C...27 2.4.2 No Visual Studio.NET...32 2.4.3 No DEV-C++... 37 2.4.4 No Linux...40 2.5 Bibliotecas Adicionais...40 2.5.1 No Visual C e no Visual Studio.NET...40 2.5.2 No Dev-C++... 41 2.5.3 No Linux...42 2.6 Arquivos Adicionais para Execução dos Exemplos deste Livro...43 Capítulo 3 Primeiros Passos em OpenGL...44 3.1 Função Desenha...44 3.2 Função Teclado...45 3.3 Função Inicializa...45 3.4 Programa Principal...45 Capítulo 4 Padronização dos Nomes das Funções e Tipos de Dados...49 Capítulo 5 GLUT GL Utility Toolkit...53 5.1 Funções de Inicialização da GLUT...54 5.2 Funções para Tratamento de Eventos...56 5.3 Estrutura Básica de um Programa...58 5.3.1 Programa Principal...58 5.3.2 Callback de Redesenho da Janela...59 5.3.3 Callback de Redimensionamento da Janela...60 5.3.4 Callback de Teclado...60 5

6 OpenGL Uma Abordagem Prática e Objetiva 5.3.5 Callback de Mouse...63 5.4 Criação e Uso de Menus...64 5.5 Alterando o Tamanho e a Posição da Janela...66 Capítulo 6 Máquina de Estados...67 Capítulo 7 Definição do Espaço de Trabalho...72 7.1 Visualização Bidimensional...72 7.2 Visualização Tridimensional...77 7.2.1 Câmera Sintética...78 7.2.2 Projeção...79 7.2.3 Funções OpenGL... 81 Capítulo 8 Desenhos Bidimensionais...86 8.1 Primitivas Gráficas...86 8.2 Cores e Estilos de Traçado de Primitivas...98 8.3 Exibição de Texto... 105 8.4 Desenho de Curvas Paramétricas... 108 Capítulo 9 Transformações Geométricas... 113 9.1 Translação, Rotação e Escala...113 9.1.1 Translação...114 9.1.2 Escala...117 9.1.3 Rotação... 120 9.2 Matriz de Transformação... 124 9.3 Escopo das Transformações... 129 9.4 Transformações Hierárquicas... 133 Capítulo 10 Animação... 137 10.1 Introdução... 137 10.2 Animação em 2D... 138 10.3 Animação em 3D... 141 Capítulo 11 Operações de Zoom e Pan... 144 11.1 Zoom... 144 11.1.1 Implementação do Zoom em 2D... 144 11.1.2 Implementação do Zoom em 3D... 146 11.2 Pan... 149 Capítulo 12 Imagens em OpenGL... 154 12.1 Imagens Monocromáticas (Bitmaps)... 154 12.2 Imagens Não-Monocromáticas... 157 12.2.1 Desenhando Imagens... 158 12.2.2 Copiando Imagens... 160 12.3 Modos de Armazenamento...161 12.4 Modos de Transferência... 163

Sumário 7 12.5 Modos de Mapeamento... 166 12.6 Operação de Zoom... 168 Capítulo 13 Desenhos Tridimensionais... 171 13.1 Primitivas Gráficas em Três Dimensões...171 13.2 Objetos Predefinidos da GLUT... 178 13.3 Carregando e Desenhando Objetos... 180 13.4 Desenhando Superfícies Paramétricas... 184 Capítulo 14 Realismo... 189 14.1 Conceitos... 190 14.1.1 Remoção de Superfícies Escondidas... 190 14.1.2 Fontes de Luz... 193 14.1.3 Modelos de Reflexão... 194 14.1.4 Modelos de Tonalização... 196 14.2 Iluminação e Tonalização em OpenGL... 197 14.3 Um Exemplo Simples...203 14.4 Vetores Normais...205 14.5 Descrição de Cores...213 14.5.1 Conceitos...213 14.5.2 Funções OpenGL... 215 14.6 Uso de Múltiplas Fontes de Luz...217 14.7 Materiais... 225 14.8 Sala 3D...231 14.8.1 Definição e Carga dos Objetos...231 14.8.2 Desenho das Paredes... 233 14.8.3 Desenho do Chão e do Teto... 237 14.8.4 Desenho das Mesas... 238 14.8.5 Desenho do Quadro-Negro... 240 14.8.6 Desenho do Céu...241 14.8.7 Iluminação e Desenho das Lâmpadas... 242 14.8.8 Desenho dos Objetos sobre as Mesas... 244 14.8.9 Função Principal de Desenho... 246 14.8.10 Navegação... 247 14.8.11 Funções para Salvar/Restaurar a Câmera...251 14.8.12 Inicialização e Programa Principal... 252 Capítulo 15 Blending... 255 15.1 Funções de Mistura... 255 15.2 Transparência... 257 15.3 Efeitos Atmosféricos...263 15.3.1 Definindo a Função de Neblina...263 15.4 Suavização de Linhas e Polígonos... 267

8 OpenGL Uma Abordagem Prática e Objetiva 15.5 Incluindo Transparência e Neblina no Programa Sala3D... 270 15.5.1 Definição, Carga dos Objetos e Inicialização... 270 15.5.2 Desenho dos Vidros...271 15.5.3 Função Callback de Teclado... 272 15.5.4 Função Principal de Desenho... 272 Capítulo 16 Mapeamento de Texturas... 274 16.1 Texturas Unidimensionais... 274 16.2 Texturas Bidimensionais...280 16.3 Modo de Repetição da Textura...287 16.4 Modos de Interpolação e Mipmaps...288 16.5 Modos de Aplicação de Textura...294 16.6 Geração Automática de Coordenadas de Textura...295 16.7 Sphere Mapping e Cube Mapping...299 16.7.1 Sphere Mapping...299 16.7.2 Cube Mapping... 302 16.8 Matriz de Textura...306 16.9 Incluindo Texturas no Programa Sala3D...308 16.9.1 Definição, Carga dos Objetos e Texturas...308 16.9.2 Desenho das Paredes, Chão e Teto...309 16.9.3 Desenho do Céu...310 16.9.4 Função Principal de Desenho... 311 Capítulo 17 Técnicas para Otimização do Rendering... 313 17.1 Razões para Baixo Desempenho em Aplicações OpenGL...313 17.2 Avaliando o Desempenho de uma Aplicação...315 17.3 Dicas para Otimizar o Processo de Desenho...318 17.4 Display Lists...319 17.5 Vertex Arrays... 324 17.6 Comparação dos Métodos... 330 17.7 Otimizando o Programa Sala3D...331 Capítulo 18 Buffers... 334 18.1 Tipos e Configuração... 334 18.2 Color Buffer... 336 18.3 Depth Buffer... 339 18.4 Stencil Buffer...340 18.5 Accumulation Buffer...344 Capítulo 19 Seleção de Objetos... 348 19.1 Considerações Iniciais...348 19.2 Modo de Seleção...348 19.3 Modo de Feedback... 355

Sumário 9 Capítulo 20 OpenGL e Outras Linguagens de Programação... 360 20.1 C++...360 20.2 Java...364 20.2.1 Instalação e Configuração...364 20.2.2 Exemplo...365 20.3 C#... 370 20.3.1 Instalação e Configuração... 370 20.3.2 Exemplo... 372 20.4 Python... 376 20.4.1 Instalação e Configuração... 376 20.4.2 Exemplo... 377 Capítulo 21 Programação de Shaders... 381 21.1 Linguagens para Programação de Tonalização... 381 21.2 Pipeline Convencional e Pipeline Programável...382 21.3 OpenGL Shading Language...384 21.3.1 Tipos de Dados...385 21.3.2 Qualificadores de Variáveis...386 21.3.3 Operadores Especiais...387 21.3.4 Programa de Vértice...389 21.3.5 Programa de Fragmento...391 21.4 Funções para Interface com GLSL... 397 21.4.1 Compilação e Ligação GLSL... 397 21.4.2 Envio de Valores a GLSL...402 21.4.3 Inicialização da GLSL...403 21.4.4 Utilização do Programa GLSL...405 Apêndice A Guia Rápido de Referência... 407 A.1 Funções GLUT de Inicialização...408 A.2 Funções GLUT para Registrar as Funções Callback...409 A.3 Funções GLUT para Menus... 411 A.4 Funções GLUT para Manipulação de Janelas...412 A.5 Funções GLUT para Desenho de Primitivas Gráficas...412 A.6 Funções OpenGL para Desenho de Primitivas Gráficas...414 A.7 Funções GLUT e OpenGL para Exibição de Texto...418 A.8 Funções OpenGL Relacionadas com Variáveis de Estado...419 A.9 Funções OpenGL, GLU e GLUT para Visualização...421 A.10 Funções OpenGL para Aplicação de Transformações Geométricas... 423 A.11 Funções OpenGL para Cor, Iluminação e Tonalização... 424 A.12 Funções OpenGL Relacionadas aos Buffers... 427 A.13 Funções OpenGL para Manipulação de Imagens e Bitmaps...428 A.14 Funções OpenGL para Mapeamento de Textura...431

10 OpenGL Uma Abordagem Prática e Objetiva A.15 Funções para Trabalhar com Blending... 435 A.16 Funções OpenGL de Otimização...436 A.17 Funções OpenGL e GLU para Seleção...440 A.18 Funções para Interface com OpenGL Shading Language... 441 Apêndice B Biblioteca de Estruturas e Funções Auxiliares... 446 B.1 Constante e Estruturas de Dados...446 B.2 Formato de Arquivo OBJ...448 B.3 Funções para Carregar e Liberar Objetos e Materiais... 450 B.4 Funções para Desenhar Objetos...451 B.5 Funções para Otimização do Processo de Rendering... 456 B.6 Funções para Cálculo e Exibição de Desempenho... 457 B.7 Funções para o Processamento do Vetor Normal... 457 B.8 Funções para Rotacionar um Vértice ao Redor de um Eixo... 458 B.9 Função para Carga e Ajuste de Texturas... 459 Bibliografia... 461 Referências... 461 Outras Fontes de Consulta...462 Links...463 Descrição, Bibliotecas, Tutoriais e Documentação sobre OpenGL...463 Descrição, Bibliotecas, Tutoriais e Documentação sobre GLUT...465 Descrição, Documentação e Tutoriais sobre OpenGL Shading Language 465 Toolkits de Interface Gráfica para Usar com OpenGL...465 Java e OpenGL...466 Python e OpenGL...466 C# e OpenGL... 467 Desenvolvimento de Jogos e Aplicações Gráficas... 467 Modeladores, Modelos de Objetos e Texturas... 467 Índice Remissivo... 469