3 Sistemas gráficos
Um sistema gráfico é um sistema computacional com capacidade de processar dados para gerar imagens em um dispositivo de exibição. Em sistemas interativos, a interação com os modelos de dados gráficos se dá através de um ou mais dispositivos de entrada. Assim, de maneira geral, um sistema gráfico é composto pelos seguintes componentes:
- Dispositivos de entrada: teclado e dispositivos apontadores como mouse, touch pad, touch screen, graphics tablet, trackball, joystick, gamepad, entre outros.
- Processadores: CPU (central processing unit), GPU (graphics processing unit) e seus subsistemas (controladores, memórias e barramentos) necessários ao processamento dos modelos de dados e conversão em representações visuais;
- Dispositivos de saída: monitores e telas de LCD (liquid-crystal display), OLED (organic light-emitting diodes), CRT (cathode-ray tube) ou plasma, entre outros dispositivos de exibição.
A definição de um sistema gráfico com esses componentes é bastante geral e pode incluir tanto as estações gráficas de alto desempenho equipadas com várias GPUs, quanto os computadores pessoais sem GPU dedicada. Pode incluir também os consoles de videogames, smartphones, smartwatches, smart TVs, GPSs, entre outros dispositivos com poder computacional suficiente para produzir saída em um dispositivo de exibição (figura 3.1).
Em sistemas gráficos atuais, o papel principal do processador gráfico é realizar a conversão de primitivas geométricas em uma imagem digital. Por exemplo, para visualizar na tela um segmento de reta definido por dois vértices, o processador deve gerar um conjunto de pixels que aproxime o aspecto do segmento visto pelo observador. Esse processo de determinar a cor dos pixels da imagem pode ser tão simples quanto avaliar a equação de uma reta \(y=mx+b\) para um conjunto discreto de valores de \(x\) em coordenadas na tela, ou tão complexo quanto gerar uma imagem fotorrealista de uma cena virtual composta de milhares de objetos.
Nos sistemas gráficos mais simples, sem aceleração de gráficos em hardware, a CPU é responsável por todo o processamento gráfico e não há distinção entre a memória da CPU e a memória de processamento gráfico. Em sistemas com GPU, a GPU pode estar localizada na placa mãe do computador, integrada com o chip da CPU (como o Intel HD Graphics comum nos computadores com processador Intel), ou situada em uma placa de vídeo com memória dedicada. Em sistemas de alto desempenho, várias GPUs dedicadas podem ser combinadas para dividir a carga de processamento usando tecnologias como a SLI da NVIDIA e CrossFire da AMD. Também é comum sistemas que combinam GPUs dedicadas e GPUs integradas, em diferentes configurações.
Em todos os sistemas gráficos, a saída é uma imagem digital armazenada em uma área de memória chamada de framebuffer. Essa área de memória é utilizada pelo controlador gráfico para atualizar o dispositivo de exibição (figura 3.2).
O restante do capítulo está organizado como a seguir:
- A seção 3.1 descreve as duas principais formas de representação de gráficos utilizadas em CG: a representação vetorial e a representação matricial;
- A seção 3.2 apresenta conceitos e tecnologias relacionadas aos dispositivos de entrada e saída dos sistemas gráficos;
- A seção 3.3 descreve conceitos fundamentais do uso de framebuffers.
- A seção 3.4 apresenta uma atividade prática de um primeiro programa que renderiza primitivas com o OpenGL.