Utilizador Discussão:Danielnicacio
Adicionar tópicoComputação Gráfica
[editar código]Conceituação
[editar código]A Computação Gráfica pode ser entendida como um conjunto de técnicas que permitem a geração de imagens a partir de modelos computacionais de objetos reais, objetos imaginários ou de dados quaisquer coletados por equipamentos na natureza. Costuma-se dividir a Computação Gráfica de acordo com a dimensão das entidades tratadas.
Objetos bidimensionais: Objetos descritos num plano cartesiano, por exemplo, são tratados e visualizados com processos diversos daqueles empregados na representação e visualização de objetos tridimensionais.
Dados coletados ou gerados a partir de simulações: Por exemplo, levam ao emprego de outros processos de visualização.
2008 - André Luis Marques da Silveira, Ambiente Design
Informações Históricas
[editar código]Algumas informações históricas foram extremamente importantes para formarem a visão atual de Computação Gráfica. Dentre elas, destacamos:
Anos 40 e 50
[editar código]- Elemento de lista com marcas
- Dois projetos militares norte-americanos incluem elementos básicos de Computação Gráfica:
- Whirlwind - construção de um simulador de voo
- SAGE - sistema de defesa aéreo contra ataques nucleares
- Em 1941 iniciam-se as emissões regulares de TV nos EUA
- Em 1947 os Bell Labs inventam o transístor
- Em 1950 Wiener publica o livro “Cybernetics and Society”, no qual se especulava sobre os efeitos dos computadores na sociedade
- Em 1950 Laposky cria as primeiras obras de arte com raiz tecnológica, usando para esse efeito um osciloscópio
- Em 1956 no MIT constrói-se o primeiro computador totalmente transistorizado
- Em 1957 é fundada a empresa de computadores Digital Equipment Corporation (vulgarmente conhecida por DEC)
- Em 1958 no MIT liga-se uma tela com capacidades gráficas ao computador de médio porte TX-1
Anos 60
[editar código]- Os computadores da época possuem alguns kbytes de memória, não existiam sistemas operacionais e nem dispositivos gráficos de saída
- Em 1960 é lançado o computador comercial DEC PDP-1
- Em 1961 no MIT é criado o primeiro jogo de computador (Spacewars) para o computador DEC PDP-1
- Em 1963 Sutherland apresenta um sistema de desenho interativo de primitivas gráficas 2D baseado em caneta luminosa
- Em 1963 Englebart inventa o dispositivo de interação “mouse”
- Em 1963 surge o primeiro sistema comercial de CAD (DAC-1)
- Em 1966 é lançada no mercado a console caseira de jogos Odissey
- É criada a empresa MAGI, pioneira na produção computacional de animação e feitos especiais
- Em 1967 Rougelet cria um simulador interativo de voo (NASA)
- Em 1968 é fundada a empresa INTEL
- Aparecem várias empresas da área da Computação Gráfica, com destaque para a Evans & Sutherland (estações gráficas de trabalho)
- Em 1969 Bushnell lança comercialmente a plataforma de vídeo jogos Computer Space (a precursora das máquinas de arcada modernas)
- A empresa MAGI produz, para a IBM, o primeiro anúncio comercial baseado em técnicas de Computação Gráfica
- Em 1965 Roberts cria um algoritmo de remoção de partes invisíveis de segmentos de reta e introduz a noção de coordenadas homogêneas na representação geométrica de objetos
- Bresenham desenvolve algoritmos eficientes para o desenho de primitivas geométricas 2D
- Em 1967 Apple cria algoritmos de cálculo de visibilidade, sombras e visualização 3D, e um ano depois inventa um método de cálculo de visibilidade precursor do método de traçagem de raios
- Em 1968 a Univ. do Utah convida D. Evans a formar uma secção de Computação Gráfica no departamento de Ciências da Computação
- Sutherland apresenta um novo dispositivo de visualização
- Em 1969 nos Bell Labs constrói-se a primeira matriz de pixels(cada pixel representado por 3 bits)
- A. Kay desenvolve, na Xerox PARC, a primeira interface gráfica com o usuário
- A década de 60 registou grande atividade na investigação fundamental da Computação Gráfica (algoritmos, métodos e técnicas)
- Surgiram as primeiras manifestações de arte computacional (Estutgard e Nova Iorque em 1965, Londres em 1968, etc)
- A investigação centra-se em grupos sediados em universidades americanas e surge uma massa crítica de pesquisadores
- A Computação Gráfica 2D desenvolve-se muito rapidamente e aparecem algoritmos fundamentais eficientes
- A Computação Gráfica 3D ainda é muito incipiente e não existem algoritmos de visualização satisfatórios
Anos 70
[editar código]- O computador mais avançado da época (IBM 360) possui 64 kbytes de memória, uma tela vectorial e uma caneta luminosa
- Em 1972 A. Kay, na Xerox PARC, produz o computador gráfico Alto
- Catmull produz curtas animações por via computadorizada
- Bushnell funda a empresa ATARI e lança o vídeo jogo Pong
Anos 80
[editar código]- É a década do computador pessoal (IBM PC e Apple Macintosh, incorporando um mouse e matrizes de pixels com telas onde a fonte varre os pixels (desaparecem a caneta luminosa e a tela vetorial)
- Em 1980 Carpenter mostra no SIGGRAPH animações 3D realistas com paisagens verosímeis geradas por métodos fractais
- A Disney usa técnicas de CG na produção do filme Tron (as animações foram criadas pelas empresas MAGI, Abel & Assoc., etc)
Anos 90
[editar código]- A plataforma dos inícios de 90 era a estação gráfica de trabalho SGI com 16 Mbytes de memória, matriz de pixels com 24 bits/pixel, suporte hardware para coloração Gouraud e visibilidade z-buffer (os computadores IBM PC ainda não possuíam hardware gráfico)
- Em 1991 Berners-Lee cria no CERN a World Wide Web
- O filme Terminator 2 (ILM) inclui um personagem computadorizado
- Em 1993 é produzido o filme Jurassic Park (ILM e S. Spielberg) e um ano depois recebe um Óscar de Efeitos Especiais
- Em 1993 a empresa Cyan lança o jogo 3D de personagem Myst, que em 1988 se transforma no jogo mais vendido
- Em 1995 a Pixar produz o filme animado comercial Toy Story
- A Sony lança o console de jogos Playstation
- Em 1998 a Pixar produz o filme A Bug’s Life e em 1999 Toy Story 2
- A ACM reforça o reconhecimento público das contribuições científicas dos investigadores da Computação Gráfica através de prêmios anuais de mérito (Achievement Awards do SIGGRAPH)
- Em 1992 surge o standard gráfico de programação OpenGL (SGI)
- A Univ. do Illinois desenvolve tecnologia de realidade virtual (CAVE)
- Em 1997 a Univ. de Chapell Hill cria um novo sistema computacional paralelo para produção interativa de imagens em cenas complexas
- Em 1997 a empresa NVIDIA começa a contratar investigadores para produzir hardware gráfico 3D para computadores pessoais IBM PC
- Os jogos 3D Myst, Doom, Quake e Riven ilustram convincentemente muitos avanços científicos e tecnológicos da Computação Gráfica
- Surgem empresas dedicadas à fabricação de hardware gráfico 3D para computadores pessoais IBM PC e Apple (ATI, 3dfx, NVIDIA, etc)
- Os consoles de jogos evoluem rapidamente e transformam-se em computadores especializados em jogos (Playstation e Nintendo64)
Anos 2000 e 2001
[editar código]- A plataforma mais comum para atividades em Computação Gráfica é o computador pessoal IBM PC com 512 Mbytes de memória, suporte hardware de coloração Phong, visibilidade z-buffer, mapeamento de texturas em tempo real e monitor de resolução elevada
- Em 2000 são lançadas no mercado os consoles de jogos Sega Dreamcast e Sony Playstation 2 (poderosos computadores gráficos)
- Em 2001 exibe-se o filme Shrek (DreamWorks), que recorre a novos métodos de síntese e animação de personagens “naturais”
- Em 2001 exibe-se o filme Pearl Harbour (Disney), repleto de efeitos especiais ultra realistas em sequências de combate aéreo e naval
- Em 1999 – Gforce 256 pela Nvidia
- Segundo a IDSA, 60% dos americanos com mais de 6 anos jogam vídeo games e esta indústria cresce a um ritmo 3 vezes superior ao das indústrias do cinema e do hardware
- 2001 – Xbox da Microsoft
- 2002 – Xbox LIVE – Jogos online
- Biblioteca OPENGL – aberta, programação em C/C++, suportada por placas gráficas
- DirectX – Microsoft + Nvidia, concorrente do OPENGL. Melhor Usabilidade
Cenário Atual
[editar código]- 3D pipelines – execução paralela, otimizada e programável (o programador escolhe a ordem de execução das camadas)
- Computação Heterogênea – GPGPU – processamento paralelo massivo
2002 - Costa, A. C. História da Computação Gráfica.
Áreas de Aplicação
[editar código]A computação gráfica está presente em diversas áreas, como:
- Artes : Para expressão artística utilizando os ambientes gráfico-computacionais como meio ou fim, tais como gravura digital, arte digital, web arte.
- Arquitetura e Design de produto: desenvolvimento gráfico dos projetos de forma visual e com a aplicação dos cálculos matemáticos para os testes dos projetos quanto a resistência, a variação de luz e ambientes.
- Jogos: Jogos são a maior aplicação da computação gráfica, e a grande motivação para seu desenvolvimento, resultando também no desenvolvimento e aprimoramento de equipamentos para este tipo de trabalhos, como placas de vídeo e processadores mais poderosos
- Cinema: para produção de efeitos especiais, retoques nas imagens do filme, e filmes de animação. Um dos primeiros filmes a utilizar efeitos em pessoas e elementos foi Exterminador do Futuro, o primeiro filme à utilizar efeitos especiais em animais foi Jurassic Park
- Engenharia: simulação de todas as espécies de eventos físicos, químicos dos materiais envolvidos nos projetos em elaboração
- Geoprocessamento : Para geração de dados relacionados a cidades, regiões e países.
- Medicina: Para análise de exames como tomografia, radiografia, e mais recentemente o ultra-som (que consegue gerar a partir deste uma imagem em 3D)
- Design visual: para o desenvolvimento de mídias visuais, desde a impressa (como propagandas em revistas e outdoors) quanto para o auxílio cinematográfico dos comerciais televisivos
2006 - Allan Brito, Blender 3D - Guia do Usuário
Dispositivos de Entrada/Saída
[editar código]Dispositivos de Entrada
[editar código]- Teclado: É o dispositivo mais comum de todos os computadores. Como dispositivo de entrada gráfico é utilizado quando nos valemos das teclas de função e de setas para movimentar um cursor sobre a tela de um monitor de vídeo.
- Mouse: É um dispositivo que consiste de uma pequena caixa, com rodas ou esferas em sua parte inferior. A medida que o usuário desloca o "mouse" sobre uma mesa este movimento produz rotações em suas rodas (ou esferas). Estas rotações são então convertidas e enviadas para o computador sob forma de números que definem o deslocamento do "mouse" em relação a sua posição anterior. Um "mouse" é, normalmente, utilizado para mover um cursor sobre a tela e permitir a criação de desenhos ou a escolha de opções em menus, entre outras funções. Para a escolha de opções ou marcação de pontos o "mouse" possui, em sua parte superior, um ou mais botões que ao serem pressionados também geram sinais para o computador.
- Trackball:pode ser considerado um "mouse" de cabeça para baixo através do qual o usuário gira diretamente uma esfera colocada dentro de uma pequena +caixa. Estes giros são tratados de forma idêntica ao que acontece com um "mouse" de esfera;
- Scanner:é um equipamento que disp¨e de sensores capazes de detectar as mudanças de coloração de uma superfície (desenhos e letras), transferindo ao computador uma matriz de pontos. Existem, basicamente, dois tipos de "scanners": "scanners de mesa" que se assemelham a uma máquina de xerox e "scanners de mão" que se assemelham a um mouse onde no lugar das rodas ou esferas temos um sensor de coloração.
- Mesa Digitalizadora:consiste de uma mesa e de um apontador (caneta ou mouse). A cada vez que o usuário toca a mesa com o apontador é informado ao computador a coordenada deste ponto dentro da mesa. Seu maior potencial é a capacidade de produzir coordenadas absolutas. Possuem características importantes de qualificação de um dispositivo de entrada, a saber: linearidade e repetibilidade.
Dispositivos de Saída
[editar código]- Impressoras matriciais:possuem um cabeçote onde estão montadas colunas de agulhas. Estas agulhas são pressionadas contra uma fita gerando imagens no papel.
- Impressoras a jato de tinta :possuem no cabeçote minúsculos tubos que jogam tinta sobre o papel. Utilizando-se tintas de várias cores obtém-se imagens semelhantes a fotografias, sendo esta sua grande vantagem.
- Impressoras a Laser:são as que possuem melhor qualidade de imagem em preto e branco. Funcionam de maneira semelhante as máquinas de xerox. A imagem é magnetizada por laser em um tambor sobre o qual é espalhado "tonner" que se concentra nos pontos magnetizados. Em seguida o tambor é pressionado sobre o papel que absorve a tinta. O grande problema das impressoras a LASER é que para poder gravar a imagem sobre o tambor é necessário que a mesma seja mapeada em memória.
- Monitores de vídeo:Dentre os dispositivos utilizados para a visualização de dados gráficos, certamente os monitores de vídeo assume papel de destaque devido a sua flexibilidade.
Fontes: inf.pucrs.br
Representação de Imagens
[editar código]Imagens Vetoriais
[editar código]Imagens vetoriais possuem esse nome porque os formatos são gerados a partir de vetores matemáticos, são criadas a partir de combinações matemáticas e geométricas entre a ligação de pontos e segmentos de linhas sobre um plano bidimensional. São empregadas para a definição e modelagens de objetos que serão representados pela imagem, na representação vetorial são usados como elementos básicos os pontos, as linhas, as curvas, etc.
Imagens Matriciais
[editar código]Na representação matricial, a imagem é descrita por um conjunto de células em um arranjo espacial bidimensional, uma matriz. Cada célula representa os pixels da imagem; Os objetos são formados usando adequadamente esses pixels; As imagens matriciais são também conhecidas como bitmaps. A representação matricial é usada para formar a imagem na memória e nas telas de computado
Fontes: treinaweb.com.br
Sistema de Coordenadas
[editar código]Em computação gráfica grande quantidade de dados são manipulados e esses dados são altamente quantificados em vários sistemas de coordenadas. Os dispositivos gráficos possuem um conjunto de pontos ou pixels endereçáveis e os padrões gráficos são produzidos ascendendo (ou pintando) e apagando esses pontos.
Coordenadas Cartesianas Bidimensionais
[editar código]As coordenadas são descritas por comprimento e largura. Os monitores, por exemplo, utilizam coordenadas cartesianas bidimensionais
Coordenadas Cartesianas Tridimensionais
[editar código]As coordenadas são descritas por comprimento, largura e profundidade.
Luz e Cores
[editar código]Sistema Visual Humano
[editar código]O sistema visual humano é o canal sensorial mais importante para a sobrevivência do ser humano. Os olhos são o segundo órgão mais complexo do nosso corpo. Sua conexão com o cérebro e a maneira com a qual ele influência a vidas das pessoas, seja pelas cores, formas ou luzes é significativa. Seu funcionamento é divido basicamente em:
- Córnea: é a cobertura externa que cobre a superfície anterior do olho, funciona como uma lente que permite que a imagem se forme na retina.
- Coróide: rede de vasos sanguíneos que servem como fonte de nutrição para o olho.
- Íris: contrai ou exapnde para controlar a quantidade de luz
- Cristalino: absorvem 8% da luz visível e também absorvem luzes infravermelho e ultravioletas.
- Retina: forma as imagens
- Cones: percebem as cores, visão diurna
- Bastonetes: distingue presença e ausência e luz e tons intermediários, visão noturna.
Fontes: hob.med.br
Luz
[editar código]Trata-se de uma energia/matéria eletromagnética que está dentro do campo de percepção visual. Ela é uma forma de energia que necessita ser produzida, seja por uma astro, uma lâmpada ou por compostos químicos (Bear et al, 2002). Segundo a física, a luz é ao mesmo tempo matéria e onda, definição complicada que até hoje gera controvérsias.
Isaac Newton foi o primeiro a propor que a luz era composta de pequenas partículas, os fótons, porém nos séculos seguintes experimentos de James Maxwell demonstraram que a radiação luminosa era composta de ondas. Isso gerou controvérsias até o século 19, quando, com o auxilio das teorias de Max Planck e Albert Einstein, descreveu-se novamente a luz como partículas, após o famoso experimento das placas de metal, no qual foram jogados fótons de luz e observado que esses refletiam na placa.
Fontes: hipnosecomneurociencias.com
Espectro Eletromagnético
[editar código]Espectro eletromagnético é uma escala de radiações eletromagnéticas. Nele estão representados os 7 tipos de ondas eletromagnéticas: ondas de rádio, micro-ondas, infravermelho, luz visível, ultravioleta, raios x e raios gama. As ondas se propagam à velocidade da luz e, com exceção da luz visível, são todas invisíveis a olho nu. Ondas de Rádio As ondas de rádio ficam numa das extremidades do espectro e são as que têm a frequência mais baixa e o comprimento mais longo.
- Micro-ondas: Logo a seguir às ondas de rádio, localizam-se as micro-ondas, as quais continuam com frequências baixas e menos compridas do que as ondas de rádio.
- Infravermelho: Já mais ao centro do espectro, o infravermelho localiza-se ao lado da luz visível. Assim, apesar de não poder ser visto a olho nu, o infravermelho pode ser visto através de equipamentos.
- Luz Visível: A luz visível, tal como o nome indica, é a única onda eletromagnética que pode ser vista a olho nu.
- Raios Ultravioleta: Do outro lado da luz visível localizam-se os raios ultravioleta. Apesar de não ser visível, os seus efeitos podem ser sentido. É o que acontece quando nos expomos ao sol.
- Raios x: Na sequência dos raios ultravioleta, estão os raios x, os quais também são invisíveis ao olho humano.
- Raios Gama: Na outra extremidade do espectro localizam-se as ondas que têm a frequência maior e o menor comprimento, os raios gama.
Fontes: todamateria.com.br
Cores
[editar código]Teoria das Cores
[editar código]Teoria das cores é o estudo sobre as cores, que vai desde a da fisiologia, ou seja, como ela é interpretada pelo nosso cérebro até a aplicação e utilização em peças de comunicação visual.
Na teoria das cores podemos entender como a cor age no ser humano e como podemos utilizar isso a nosso favor, manipulando as cores para passar uma determinada mensagem ou transmitir determinada sensação. Conhecer a teoria das cores é algo imprescindível para todo artista, designer, publicitário e todos que lidam com design, arte e comunicação visual
Fontes: chiefofdesign.com.br
Sistema de Cores
[editar código]Os sistemas de cores utilizados nos dias de hoje, são tentativas de padronização das tonalidades existentes da cartela de cores para facilitar o mercado em suas mais diferentes frentes de atuação. Como a cor é um sinal interpretado pelo cérebro (fisiológico), é comum haver discordâncias com relação a tonalidades e cores. Para o mercado, a padronização é inevitável e, por isso, diferentes tipos de sistemas de cores foram criados na tentativa de organizar as referências às existentes. Entre os mais famosos estão:
- RGB – Red, Green and Blue (Vermelho, Verde e Azul): Sistema criado para reprodução de cores em aparelhos eletrônicos e os diferentes modelos de tela. O RGB está presente em praticamente todos os dispositivos conhecidos atualmente, TVs, monitores de computador, telas de notebooks, câmeras digitais, escâneres, aparelhos celulares, etc. Essas cores foram escolhidas por serem primárias, tendo suas combinações originando outras cores e sua origem tem como base o triângulo de cores de James C Maxwell, matemático escocês do séc. XIX.
- CMYK – Ciano, Magenta, Amarelo (Yellow) e Preto (Black Key).: Sistema de cores utilizado em impressões, seja em impressoras domésticas ou gráficas profissionais, como, por exemplo, serigrafia, fotolito. Tem como suas cores principais as opostas ao sistema RGB: Ciano/Vermelho, Magenta/Verde e Amarelo/Azul. O preto se inclui ao sistema por mais de um motivo: primeiro, é produzido através da mistura das cores anteriores; textos finos impressos na cor preta não seriam possíveis na junção de cores; além disso, o custo de junção de três cores para preto versus somente o preto é muito maior.
Fontes: creativecopias.com.br
Gráficos 2D e 3D
[editar código]Modelagem 2D
[editar código]Introdução aos aspectos práticos e conceptuais da criação gráfica no conceito de bi dimensionalidade. Definição de espaço através do uso de linhas, planos superfície e polígonos. Estudo das formas de animação vectorial. O sistema estrutural de animação vectorial em Flash. A computação gráfica é a área da computação destinada à geração de imagens em geral — quer como forma de representação de dados e informação, quer como forma de recriação do mundo real. Ela pode possuir uma infinidade de aplicações para diversas áreas. Desde a própria informática ao produzir interfaces gráficas para software, sistemas operacionais e sites na Internet, quanto para produzir arte em animações e jogos. A produção multimédia integra variadas soluções de hardware e software para o desenvolvimento e armazenamento de todo o tipo de conteúdos orientados para as plataformas audiovisuais existentes, ferramentas 2D e 3D, essenciais em modelação e animação, visualização, animação de personagens, captura de movimento ou traking.
Objetos
[editar código]- Primitivas 2D, Splines, Nurbs curves, Texto
- Criação/modificação de objectos
- Noção de sub-object, hierarquia de modificadores
- Mo
Animação
[editar código]- Animação por keyframes
- Edição de keyframes
- Animação de sub-objectos
- Percursos animados
- Utilização da Track View
- Trajetória
- Controle de rotação
- Criação/animação de uma cena
- Uso de modificadores de animação
- Modificadores paramétricos
Por exemplo, em um programa de criação de desenhos através de linhas uma possível organização, um possível modelo, é o seguinte:
TYPE
LINHA2D = Record
xi, yi, (* Coordenada do ponto inicial *)
xf, yf : real; (* Coordenada do ponto final *)
End ;
É possível construir um sistema gráfico que manipula apenas imagens, ou seja, não guarde o modelo dos objetos que estão sendo criados. Porém, nestes casos surge o problema de que após a criação de uma entidade esta transforma-se em um conjunto de pontos sobre a superfície de exibição(tela). Com isto, após a criação não é mais possível saber, dado um determinado ponto na tela, a que entidade este pertence, e nem tão pouco alterá-la para, por exemplo, reduzir seu tamanho. Quando trabalha-se com modelos, pode-se tratar as entidades levando-se em conta seu tipo, e com isto, tanto determinar se um dado ponto pertence a ela ou não, quanto alterar propriedades como posição, tamanho ou orientação.
Etapas do processo de visualização
[editar código]A visualização 2D é uma processo que deve ser executado em três etapas: Instanciamento, Recorte e Mapeamento.
- Instanciamento:A etapa de Instanciamento permite que se crie cópias modelo. A partir de uma mesma entidade, diversas cópias podem geradas alterando a cada uma apenas as propriedades que forem necessárias. A estas cópias dá-se o nome de Instâncias.
- Recorte:A etapa de Recorte permite que se defina qual a região do desenho se deseja exibir.
- Mapeamento:A etapa de Mapeamento permite que se exiba em uma tela, ou em outro dispositivo, um conjunto de Instâncias com coordenadas totalmente diferentes daquelas nas quais a tela está definida.
Fontes: https://slideplayer.com.br/slide/2656507/
Modelagem 3D
[editar código]Relativo à computação gráfica, modelagem 3D é o processo de criar uma malha que represente um objeto tridimensional usando computadores e programas de computadores.
Texturização
[editar código]Após a modelagem 3D, a malha 3D deve aparentar como se composta de materiais e revestimentos verdadeiros. As texturas (ou materiais de superfície e revestimento) podem ser fotografias dos materiais que são atribuidos às superfícies da malhas, ou podem ser cores ou combinação de muitas texturas para simular caracteristicas com transparência, aspereza (roughness), reflexão difusa da luz (diffusion), reflexão especular ou reflexão de superfícies polidas (specular), iluminação ambiente, etc.
Iluminação
[editar código]Refere-se ao processo de colocar fontes de luz em um Cena 3D. Após a construção do modelo 3D e atribuição de materiais, para captar a imagen ou animação, fazem parte dos componentes de uma "cena 3D" não somente o modelo 3D texturizado, mas também cameras virtuais e luzes.
Animação
[editar código]É o processo de dar movimentos a cameras, luzes ou objetos que fazem parte da cena.
Compositing ou Mesclagem com Cenas Reais
É o processo de misturar ou mesclar um imagens estáticas (fotografia) ou video da vida real com objetos de uma Cena 3D. A foto-montagem é um exemplo disto, assim como o processo de "camera tracking" é também um exemplo com relação à animação 3D.
Computação Gráfica Tridimensional - CAD 3D
[editar código]Wire-frame e modelo renderizadoÉ a área da computação gráfica que se utiliza de programas de computadores para executar desenhos e modelos tridimensionais, e não somente desenhos planos como se obtem numa prancheta convencional de desenho. A grande revolução no desenho computadorizado se dá exatamente na computação gráfica 3D ou tri-dimensional, com a possibilidade visualizar dinamicamente o projeto antes que o mesmo seja construido, sem que para isto seja necessário construir modelos físicos ou maquetes em tamanhos reais ou reduzidos. Ao lado a maquete eletrônica de uma casa mostrada em wire-frame e depois de renderizada.
Maquete Eletrônica
[editar código]Maquete eletrônica em construção de equipamento industrial - Corte perspectivadoMaquete Eletrônica é um modelo computadorizado 3D (tridimensional vetorial), feito a partir de um projeto, utilizando os recursos de computação gráfica 3D para criação de perspectivas de diferentes pontos de vista, e com possibilidade de animações. Simulação de vôo em torno do projeto ou caminhar dentro. Se for o objetivo, é possivel simular automóveis e pessoas se movendo, portas se abrindo, etc. Uma maquete eletrônica, tecnicamente falando é uma malha tridimensional com atribuição de texturas (materias de acabamento) e iluminação.
Renderizar / Renderização
[editar código]Renderizar é fazer apresentação de um projeto, dar acabamento. Torna-lo apresentável com recursos de computação gráfica. Renderizar ou "colocar para renderizar" um modelo 3D refere-se também a "colocar" o computador para "trabalhar" e gerar imagens estáticas ou animações que já estão elaboradas. Ou seja, refere-se também à etapa de processamento.
Fly-By
[editar código]É o nome em inglês que se dá à simulação de vôo em torno do projeto, simulação conseguida através da maquete eletrônica.
Walk-Through
[editar código]Caminhar por dentro do projeto - É o nome em inglês que se dá à simulação de caminhar por dentro do projeto, simulação conseguida através da maquete eletrônica.
Modelagem 3D ou Tridimensional
[editar código]A atividade de modelar refere-se à construção tridimensional de um projeto, feita através de programas de computadores que permitem ver o projeto não somente em vistas planas, mas obter inúmeras vistas de vários ângulos e posições, a partir deste modelo matemático computadorizado. Em outras palavras, modelar em 3d é criar um modelo de um projeto para ser visualizado. Geralmente a modelagem 3D se refere mais a criação da forma e não se refere a colocação de texturas (materiais de acabamento) nem câmeras nem iluminação.
Wire-Frame
[editar código]Wire-Frame ou desenho de linhas, aramado ou em "arames" é uma estrutura tridimensional de linhas do projeto sem estar de forma "sólida", ou sem que estejam atribuidas faces aos planos definidos pelas linhas, e portanto, ainda não visualizados em modo sombreado, ou sem atribuição de cores e materiais de acabamento. Wireframe pode também ser definido como um modelo matemático se baseie conceitualmente em linhas e não em faces ou superfícies planas, e portanto não apresenta propriedades de massa. Como se vê na imagem ao lado, uma malha tridimensional e um wire-frame podem ser visualizados de vários ângulos, e são desenhos que possuem comprimento, largura e profundidade.
Malha Tridimensional - Mesh
[editar código]São modelos computadorizados 3D ou tri-dimensionais, constituídos de faces. Tendo as malhas disponíveis, a estas são atribuídos materiais de acabamento (texturas) e iluminação. Mesh é uma malha poligonal, que pode ser melhor entendida como um conjunto de inúmeras faces ou pequenos planos conetados entre sí que formam um modelo, uma espécie de pele ou casca. Geralmente é usado para representar superfícies irregulares, como terrenos com sua topografia, objetos de formas irregulares ou não, mas que não são formados por ângulos retos ou superfícies muito bem definidas. Um exemplo seria uma poltrona do tipo puf ou uma rede de dormir. O modelo mesh ou malha como explicado, é uma superfície composta de faces ou facetada, e não apresenta espessura, mas permite atribuir materiais de acabamentos ou texturas baseadas em imagens (mapas). Estes objetos não tem propriedade de massa atribuídos à eles.
Superfícies ou Surfaces
[editar código]Muitos objetos do mundo real tem formas que não obedecem à "Chamada geometria Euclidiana", ou seja, que não é baseada em ângulos e formas geometricamente precisas, e portanto não podem ser decompostas em poucas vistas planas.
Um exemplo de objetos produzidos pelo homem que possuem uma geometria mais complexa seria por exemplo uma taça, uma chícara, ou indo mais além um automóvel, um navio ou um avião. Se observarmos a natureza, vemos formas mais complexas ainda, como as plantas e sua folhagem.
Fontes: http://wiki.icmc.usp.br/images/e/e0/ViewingPipeline3D.pdf
Existem dois tipos de surfaces ou superfícies que servem para representar os mais diversos tipos de objetos ou superfíceis com formas mais complexas.
Superfície Procedural
[editar código]Superfícies procedurais, são superfícies que seguem um procedimento lógico para sua criação, ou seja, seguem um procedimento. Um exemplo disto é uma taça ou uma garrafa que na verdade é possui um perfil plano que rotaciona em torno de um eixo, criando portanto um volume previsível através da criação de seu perfil e também do eixo em torno do qual este gira. Os tornos mecânicos ou de marcenaria, são máquinas que criam peças seguindo um procedimento, ou seja criam objetos com superfícies de forma procedural. Em computação gráfica, ao se desenhar uma taça ou garrafa, o que acontece em verdade é a simulação de um torno, onde uma superfície de revolução é criada à partir de um contorno de linhas rotacionadas em torno de um eixo. Mas as surfaces procedurais podem seguir outros modelos de formatação de suas formas, como quatro linhas curvas que são indicadas para moldar uma superfície, como por exemplo uma abóbada ou uma rede.
Nurbs
[editar código]A sigla ou abreviação "Nurbs" refere-se à uma definição que vem do Inglês, "Non Uniform Rational Basis Spline" que traduzindo para o Português significa Spline Básico Racional Nao-Uniforme. Spline Básico também é abreviado e conhecido como B-Spline. O termo Nurbs, vindo do Inglês se proliferou, embora os dois principais criadores destes modelos de representação matemática e computadorizada fossem dois franceses ligados à industria automobilística. Trata-se de um sistema para representar formas complexas baseadas em "splines". Para entender o que é Nurbs, é preciso entender o que é Spline. O termo spline refere-se à uma curva que é definida matematicamente por dois ou mais nós ou pontos de controle. Modificando a posição destes nós ou pontos de controle, altera-se as curvas. Os programas que se utilizam de Nurbs permitem desenhar e projetar muitas formas de modo fácil e bem flexível através do controle de vértices ou nós, que por sua vez controlam a curvatura e a suavidade dos contornos. Matematicamente falando, as NURBS são funções paramétricas que podem representar qualquer tipo de curva ou superfície, ou seja, obedecem imediatamente as modificações feitas em seus parâmetros representados pelos nós.
Sólidos
[editar código]Modelos chamados sólidos, são representações computadorizadas de objetos com representações volumétricas exatas, assim como com suas propriedades físicas, como massa, centro de massa, etc. São bastante utilizados em programas para desenho mecânico e também para projeto baseado em modelagem paramétrica para engenharia e arquitetura.
Animação 3D
[editar código]A animação em 3D ou tridimensional é a que possibilita ver uma cena criada em computador, formada por vários objetos (sólidos, nurbs e malhas tridimensionais) de vários ângulos ou pontos de vista, pois se trata da criação de modelos num espaço tridimensional, possuindo comprimento, largura e profundidade. Matematicamente falando, os vetores não se restringem ao plano, e estão orientados por coordenadas espaciais X-Y-Z.
Fontes: https://www.impacta.com.br/blog/2017/09/06/computacao-grafica-como-criar-em-3d/
OpenGL
[editar código]A biblioteca OpenGL (Open Graphics Library) foi introduzida em 1992 pela Silicon Graphics), no intuito de conceber uma API (Interface de Programação de Aplicação) gráfica independente de dispositivos de exibição. Com isto, seria estabelecida uma ponte entre o processo de modelagem geométrica de objetos, situadas em um nível de abstração mais elevado, e as rotinas de exibição e de processamento de imagens implementadas em dispositivos (hardware) e sistemas operacionais específicos. A função utilizada pelo OpenGL para desenhar um ponto na tela, por exemplo, possui o mesmo nome e parâmetros em todos os sistemas operacionais nos quais OpenGL foi implementada, e produz o mesmo efeito de exibição em cada um destes sistemas. Atualmente, um consórcio independente é quem administra as especificações do OpenGL, chamado de Architecture Review Board (ARB).
É uma biblioteca gráfica de modelagem e exibição tridimensional, bastante rápida e portável para vários sistemas operacionais. Seus recursos permitem ao usuário criar objetos gráficos com qualidade próxima à de um raytracer, de modo mais rápido que este último, além de incluir recursos avançados de animação, tratamento de imagens e texturas.
Diversos jogos, aplicações científicas e comerciais têm utilizado OpenGL como ferramenta de apresentação de recursos visuais, principalmente com a adoção deste padrão por parte dos fabricantes de placas de vídeo destinadas aos consumidores domésticos. É possível encontrar na Internet diversos sites que tratam sobre OpenGL,
O mais popular é a sua página oficial: http://www.opengl.org/.
Neste endereço encontram-se disponíveis diversos artigos e links sobre o assunto, fóruns de discussão, informações sobre a evolução desse padrão, além de uma série de programas utilitários.
Todas as rotinas do OpenGL são implementadas em C, tornando fácil sua utilização em qualquer programa escrito em C ou C++.
Entre os recursos gráficos disponíveis pelo OpenGL, podem ser destacados os seguintes:
- Modos de desenho de pontos;
- Ajuste de largura de linhas;
- Aplicação de transparência ;
- Ativação/desativação de serrilhamento (aliasing);
- Mapeamento de superfícies com textura;
- Seleção de janela de desenho;
- Manipulação de fontes/tipos de iluminação e sombreamento;
- Transformação de sistemas de coordenadas.
- Transformações em perspectiva
- Combinação de imagens (blending)
As implementações do OpenGL geralmente provêem bibliotecas auxiliares, tais como a GLU (OpenGL Utility library), utilizada para realizar tarefas comuns, tais como manipulação de matrizes, geração de superfícies e construção de objetos por composição, e a OpenGL Utility Toolkit (GLUT), uma biblioteca que permite criar janelas, menus, manipular eventos, entre outras coisas, independentemente do sistema operacional utilizado. Aplicações escritas em OpenGL/GLUT podem ser compiladas em Windows ou Unix, sem necessidade de alterações em seus códigos.
Estrutura básica de um programa
[editar código]Programas criados com OpenGL podem se tornar bastante complicados diante do volume de operações que podem ser realizadas. Entretanto, a estrutura básica de um programa é simples e semelhante a programas escritos somente em C.
Callbacks são rotinas responsáveis em tratar eventos (interação do usuário, por exemplo). A seqüência de operações, definida na função principal, normalmente é composta de:
- Abra uma janela gráfica
Lembre-se que as funções do OpenGL são independentes do sistema operacional utilizado. Logo, você terá que utilizar uma ou mais bibliotecas auxiliares que permitam abrir uma janelas na tela do computador, tais como GLUT, WGL (para Windows), glX (para o sistema XWindow), AGL (para Apple) ou PGL (para OS/2).
- Prepare OpenGL para desenhar na janela
Defina como OpenGL irá desenhar nesta janela, por exemplo, se será utilizado double buffering ou single buffering, e se as imagens serão geradas utilizando mapa de cores indexado ou diretamente no formato RGB.
- Defina o sistema de coordenadas e o estado inicial do OpenGL
Indique as características do sistema de coordenadas a ser utilizado, por exemplo, os limites inferior e superior dos eixos coordenados. Defina as fontes de luz existentes, cores para desenho de polígonos, modos de preenchimento de superfícies etc.
- Loop:
Trate os eventos de mouse e teclado; Mude a cena com base nos eventos ocorridos; Redesenhe a cena com OpenGL.
Compilando programas que utilizam OpenGL - Windows (Dev-C++)
[editar código]O Dev-C++ utiliza o compilador MinGW (Minimalist GNU For Windows - Veja o link http://www.mingw.org). Sua instalação é simples não ocupa muito espaço (menos de 30M).
Para compilar um programa OpenGL você deve:
- 1:Criar um projeto vazio New / Project / Empty Project;
- 2:Digitar o seu código fonte;
- 3:Na barra de menu do Dev selecionar Project / Project Options;
- 4:Na opção Further object files or link options escrever: -lglut32 -lglu32 -lopengl32
- 5:Remover as linhas #include <gl.h> ou #include <glu.h> do código fonte, deixando apenas o #include <gl/glut.h>;
- 6:Compilar e executar.
Fontes: http://www.ciceromoraes.com.br/blog/?p=2599
Projeção Geométrica
[editar código]- Uma projeção é uma representação bidimensional de um objeto tridimensional;
- Existem várias técnicas e tipos de projeção, cada uma delas adequada a um tipo de aplicação;
- A mais importante dela é a projeção Perspectiva, pois ela simula a projeção feita pelo olho humano quando este capta a imagem de um objeto.
Elementos Básicos
[editar código]- Plano de projeção: Superfície onde será projetado o objeto.
- Onde ele será representado em 2D;
- Raios de projeção: São as retas que passam pelos pontos do objeto e pelo centro de projeção;
- Centro de projeção: É o ponto fixo de onde os raios de projeção partem.
Classificação
[editar código]As classificações dependem das relações entre o centro de projeção, o plano de projeção (onde o objeto aparece como 2D) e as direções das linhas. ou raios de projeção.
Projeções Paralelas
[editar código]- O centro de projeção é localizado no infinito
- Todas as linhas de projeção são paralelas entre si;
- São tradicionalmente usadas em engenharia e desenhos técnicos;
- Em alguns casos preservam as dimensões do objeto;
- Não produzem imagem realista
Projeções Perspectivas
[editar código]- Todos os raios de projeção partem do centro de projeção e interceptam o plano de projeção com diferentes ângulos;
- Representam a cena vista de um ponto de observação a uma distância finita;
- Os raios projetores não podem ser paralelos.
- Baseiam-se no número de pontos de fuga da imagem projetada;
- São mais realísticas na representação de objetos;
- Não reproduzem as verdadeiras medidas do objeto;
Câmara sintética
[editar código]Um dos componentes fundamentais no processo de visualização 3D, é o observador virtual. Este observador define de que local deseja-se que a cena 3D seja exibida.
A existência desse observador deve-se ao fato de que um conjunto de objetos no universo 3D, visto de diferentes lugares tem, para quem observa, diferentes coordenadas para cada posição.
A posição da câmera é dada por um ponto (x,y,z) em relação ao mesmo universo onde será posicionado o objeto e sua orientação é dada por um vetor. Como a imagem obtida é estática, se faz analogia com uma foto, podendo-se dizer que foi obtida uma fotografia quando a câmera estava numa dada posição direcionada para o objeto. A partir destas observações chega-se ao conceito de câmera sintética.
Algoritmo da Câmera Sintética
- Posicionar e orientar sistema de referência da câmera
- Recorte dos objetos que estão atrás da câmera
- Recorte das imagens dos objetos que estão fora dos limites laterais, superior e inferior da visão da câmera.
- Projeção das geometrias dos objetos que estão na frente da câmera sintética.