Computação Gráfica TeCGraf Marcelo Gattass DI/PUC-Rio Roberto Beauclair LNCC Áreas da Computação Gráfica processamento de imagens IMAGENS IMAGENS visualização visão DADOS DADOS processamento de dados Profissionais da CG • Usuários – • Customizadores – • adaptam programas existentes Programadores de aplicações – • usam para produzir desenhos e imagens desenvolvem AutoCAD, Corel, ... Desenvolvedores de ferramentas – desenvolvem OpenGL, DirectX, ... O curso n Objetivo l n Apresentar a Computação Gráfica para alunos que pretendam desenvolver ferramentas e programas técnico-científicos Programa resumido l Sistemas de interface com usuários, sistemas gráficos, curvas, transformações geométricas, rasterização, clipping, pick, imagens, ray tracing, projeções, modelo de câmera, iluminação, visibilidade. Modelos Quantitativos Inflação ICV/DIEESE 6 4 2 0 Mar Destino do R$ da Gasolina Abr Mai Jun Indices de Inflação em Jul95 6 4 2 0 IPC-r IBGE IPC-r IBGE ICV IGPM DIEESE FGV Distribuidor Refinador Revendedor Subsídios Impostos Modelos Discretos Organogramas Classes de OO Geometry Area Curve Polygonal Arc Point Petrox Bezier ... Modelos Geométricos MG RECON Com que programar? Delphi VisualBasic Java VisualC++ DirectX GDI CanvasDraw PHIGS RenderWare IUP/lua ToolBook HOOPS Xlib ?? Motif GKS OpenGL QuickDraw ? Histórico das ferramentas u u u u u u 1985-GKS 1988-PHIGS 1990-PEX 1991-GL 1993-OpenGL 1996-Direct 3D u u u u u u 1984-Macintosh 1987-XWindow v.11 1988-Motif 1990-Windows 3.0 1993-Visual Basic v.3 1996-Java Requisitos das ferramentas Fáceis para programadores leigos n Facilitem a comunicação entre programas n Acesso a diferentes bancos de dados n Gerem programas eficientes n Gerem programas portáteis n Ferramentas atuais Visual Basic, Delphi, ... þ Fáceis para programadores leigos þ Facilitem a comunicação entre programas þ Acesso a diferentes bancos de dados ý Gerem programas eficientes ý Gerem programas portáteis Modelo do Programador I 1985 Sistema Gráfico MetaFile Usuário Dispositivos Computador Programa TécnicoCientífico Programas da década passada Título ou Mensagens ÁREA DE TRABALHO Captura de Dados Menu Opção 1 Opção 2 Opção 3 Opção 4 Opção 5 Opção 6 Opção 7 Opção 8 Retorne Editor Gráfico de Reticulados Meta-arquivos n CGM n DXF (AutoDesk) n DGN (Intergraph) n Postscript n WMF Modelo do Programador II 1990 Sistema de Interface Sistema Gráfico Usuário Dispositivos MetaFile Computador Programa TécnicoCientífico Programa do início dos anos 90 Interactive FEA - Dam File Geometry Mesh Analysis Result New Open ^F12 Save shF12 Exit alF4 Dialog Box Label: xxx Label: yyy Ok Cancel xxx yyy zzz Help Área de Trabalho Área de mensagens Building Editor Modelo do Programador III (IUP/CD) 1993 Sistema de Interface Nativo Sistema Gráfico Usuário Filtros Dispositivos clipboard ger. de impres. Programa TécnicoCientífico MetaFile Imagens Solução do TeCGraf para IU CENPES/ SEPROC IUP.lib CD.lib IUP.lib Programa de Aplicação CD.lib IUP.lib CD.lib IUP.lib CD.lib Motif e X11 Windows e GDI Macintosh e QuickDraw otk e DOS Software Practice & Experience, Jul96 AnaSeTe Análise Sequencial de Testemunhos (versões Mac, Win95 e Motif do editor) Análise Sequêncial de Testemunhos (versão Mac) Filtro de imagens BMP n PCX n GIF n TIF n RGB (SGI) n RAS (SUN) n Modelo do Programador IV (G3d) 1993 Sistema de Interface Nativo Sistema Gráfico 3D/2D Usuário Dispositivos clipboard ger. de impres. MetaFile Programa TécnicoCientífico Filtros Imagens G3d biblioteca de funções 3D n OpenGL like n usa bibliotecas nativas n implementa 3D sobre CanvasDraw n Zbuffer e Gouraud shading n BSP para exportação e impressão n Solução do TeCGraf para 3D Programa de Aplicação G3d.lib OpenGL G3d.lib Direct3D vesa X11 G3d.lib 3DR QuickDraw GDI G3d.lib CD meta-arquivo imagem CENPES/SEPROC clipboard Modelo do Programador V Sistema de Interface Sistemas Gráficos Usuário SGED Dispositivos clipboard ger. de impres. Programa TécnicoCientífico Filtros Imagens MetaFile Computador HED/HPS-tree n Gerenciadores de estruturas de dados que representam sub-divisões do espaço l regiões, faces, arestas, vértices Garantem consistência n Consultas topológicas eficientes n Consultas geométricas eficientes n Multi-resolução de modelos geometria subdivisões sub-regiões malha Multi-resolução Multi-resolução geométrica geométrica Modelo do Programador VI Sistema de Interface Programa TécnicoCientífico Sistemas Gráficos SGED Usuário Dispositivos clipboard ger. de impres. MetaFile Filtros SGBD Imagens BD Computador Motivação n Associar informações contidas em bancos de dados (via ODBC), com dados espaciais. DB Informações DBGraf n Acesso a bancos de dados Baseado em ODBC n Simples (6 rotinas em C) n Camada que abstrai o BD n Pode ser implementado em qualquer BD/SQL n Modelo do Programador VII dados Outros Programas (ex. XY++, Editor, V3d ) Sistema de Interface SGED Dispositivos clipboard ger. de impres. MetaFile figuras imagens sons Programa TécnicoCientífico Sistemas Gráficos Usuário textos SGBD BD Rede Heterogênea ... Filtros Imagens Modelo de Programação VIII dados Outros Programas (ex. XY++) figuras imagens ... Programa TécnicoCientífico Interact Sistemas Gráficos SGED Dispositivos clipboard ger. de impres. MetaFile SGBD BD Filtros Imagens Rede Heterogênea sons Sistema de Interface Usuário textos Customização de programas “Hoje até carro tem que vir no gosto do freguês” (ditado popular) VBA n Tcl/tk n Modelo do Programador IX Customização Outros Programas (ex. XY++) dados textos figuras imagens sons ling. config. Sistema de Interface ... Programa TécnicoCientífico Interact Sistemas Gráficos Usuário Dispositivos Filtros SGED SGBD clipboard ger. de impres. MetaFile BD Imagens Customização no TeCGraf n Linguagem Lua •Software •SoftwarePractice Practice&&Experience, Experience,Jun96 Jun96 •DrDobb’s, •DrDobb’s,Dez96 Dez96 Embutida l Extensível l Sintaxe simples e clara (Pascal “like”) l Alto poder de descrição de dados l Suporta OO l Especializações de lua para as ferramentas n Especializações para as aplicações n Modelo do Programador X Outros Programas (ex. XY++) Customização dados textos figuras imagens sons Sistema de Interface Interact Sistemas Gráficos Usuário SGED Dispositivos clipboard ger. de impres. Objetos Visuais MetaFile ... Rede Heterogênea ling. config. Programa TécnicoCientífico SGBD BD Filtros Imagens Modelo do Programador Outros Programas (ex. XY++) Customização dados textos figuras imagens sons Sistema de Interface Interact Objetos Visuais Sistemas Gráficos Usuário SGED Dispositivos clipboard ger. de impres. MetaFile Programa TécnicoCientífico SGBD BD ... Sistema de Objetos Distribuidos Filtros Imagens Rede Heterogênea ling. config.