Fundamentos de Computação Gráfica e Design de Jogos

Classificado em Tecnologia

Escrito em em português com um tamanho de 27,74 KB

O que é a Computação Gráfica?

É a área da computação que estuda o processo da síntese de imagem por computador, de forma a permitir uma comunicação ou interação pessoa-máquina mais fácil.

Áreas de Aplicação da Computação Gráfica

Podemos encontrar a Computação Gráfica em todas as áreas. A evolução histórica inclui:

  • Visualização (Imagem)
  • Visão por Computador (Imagem => Contexto)
  • Computação Gráfica (Contexto => Imagem)

Pioneiros e Modelos Clássicos

  • Henry Gouraud – Modelo elementar da iluminação
  • Phong Bui-Tong – Modelo de reflexão especular

As Raízes da Computação Gráfica

Evolução contínua, abrangendo:

  • Efeitos especiais em filmes
  • Filmes de animação
  • Jogos de computador
  • Placas gráficas
  • Dispositivos móveis

Plataformas

  • Arcade
  • Computador
  • Consolas
  • Dispositivos móveis

Processo de Desenvolvimento de Jogos: Etapas

  1. Planeamento
  2. Desenho (Design)
  3. Implementação
  4. Testes
  5. Produção

Desenho e Conceção de Jogos

Fases principais: Game Idea, Game Proposal, Game Design.

Game Idea
  • Como transformar uma boa ideia num bom jogo.
  • Escrever a ideia numa frase.
  • Importante saber quem é o jogador e o que ele faz.
  • O processo de conceção de um jogo é mais do que uma simples ideia: é construir um jogo desafiante e divertido.
Documentos Essenciais
  • Game Proposal / Game Concept
  • Game Design Document (GDD)
  • Technical Design Document
Game Proposal

Documento utilizado para "vender" a ideia do jogo, incluindo:

  • A ideia e a história
  • Género do jogo
  • Gameplay
  • Cenário
  • Tipo de plataformas
  • Público-alvo
  • Plano e orçamento estimado
Game Concept

Uma versão mais detalhada do Game Proposal.

Game Design (Conceção do Jogo)
  • Design do Jogo: Conceção geral.
  • Mecânica do Jogo: Regras que definem o gameplay.
  • Storytelling e Narrativa: Permite ao jogador formar a sua própria história.
  • Interatividade: Imersão no jogo.

Documento de Design (GDD)

Define o Gameplay, incluindo:

  • As regras, ações e movimentos que o jogador pode ou não fazer.
  • Desafios e obstáculos que o jogador deve ultrapassar.

O jogo é um universo artificial baseado em regras. Fórmula: Desafios + Ações = Gameplay.

Tipos de Gameplay

Não existe uma fórmula universal.

Storytelling e Narrativa
  • Cada jogo conta uma história.
  • A narrativa é a parte da história contada pelo autor ao jogador (parte não interativa do jogo).
Interatividade
  • A forma como o jogador joga o jogo.
  • O Game Designer define a interação entre todos os objetos do jogo.
  • A interface com o jogo permite a imersão.

Elementos do Documento de Design

  • Narrativa: Qual é a história.
  • Papel (Quem sou eu): Quem é o jogador e quais são os seus objetivos.
  • Local (Onde estou): O mundo onde o jogo se desenrola.
  • Modo de Interação: A forma como o utilizador interage com o mundo.
  • Perspetiva: A forma como o utilizador vê o mundo.
  • Gameplay: O que posso fazer.
Definição de Personagens (GDD)

Inclui:

  • Nome, Background, Descrição física
  • Personalidade, Comportamento, Características únicas
  • Capacidade, Expressão física, Animações, Sons
  • Inventário, Estado inicial

Processo de Síntese de Imagem

  1. Modelagem: Objetos representados por modelos geométricos.
  2. Transformação e Instanciação: Para um referencial comum (Translação, Rotação, Alteração de Escala).
  3. Visualização: Recorte 3D (eliminar objetos não visíveis); Projeção (depende da posição e orientação do observador).
  4. Renderização: Wireframe (modelo de arame); Remoção de faces ocultas; Coloração das faces; Iluminação e texturas.

Sistemas de Coordenadas

Sistemas de Coordenadas 2D (Cartesianas)

O sentido do eixo dos Z (em sistemas 3D) é dado através do polegar de uma mão agarrada a este eixo e com o dedo indicador referindo o ângulo dos X para o eixo dos Y.

Tipos de Sistemas de Coordenadas 3D

  • Mão Direita: (VRML, OpenGL e XNA)
  • Mão Esquerda: (DirectX e Unity)

Representações de Coordenadas (Cartesianas)

  • Coordenadas de Modelação (Locais): Especificação de objetos individuais.
  • Coordenadas Universais (Mundo): Posicionamento dos objetos na cena.
  • Coordenadas Normalizadas: Cubo definido entre a origem do referencial e o ponto (1, 1, 1).
  • Coordenadas do Dispositivo: Dependentes das características do dispositivo.

Representações 2D

  • Ponto: Coordenadas cartesianas (x, y), vetor 2D.
  • Reta: Equação cartesiana e equações paramétricas.
  • Linha (Segmento de Reta): Linha reta que une dois pontos P(x1, y1) a P(x2, y2).
  • Retângulo: Definido por ponto inicial e final, ou ponto inicial, largura e altura, ou polígono definido por 4 pontos.
  • Polyline: Lista de pontos.
  • Polígono: Lista de pontos (o último liga-se ao primeiro).
  • Circunferência: Centro e raio, equação cartesiana, equações paramétricas.
  • Elipse: Centro, valores de 'a' e 'b', equação cartesiana, equações paramétricas.

Curvas (Pontos de Controlo)

As curvas são definidas através de pontos de controlo:

  • Interpolação: A curva passa pelos pontos de controlo.
  • Aproximação: A curva não passa pelos pontos de controlo.

O controlo da forma da curva pode ser:

  • Controlo Local: A alteração de um ponto de controlo afeta apenas uma pequena parte da curva.
  • Controlo Global: A alteração de um ponto de controlo afeta toda a curva.

Representações 3D

Taxonomia de Representações 3D

  • Representação por Fronteira (B-rep): Poligonal, Superfícies Paramétricas.
  • Representação Volumétrica: Construção (exemplo: Sweep, CSG), Decomposição (exemplo: Octree, BSP).
Representação por Fronteira Poligonal
  • Ponto (Vértice): Coordenadas cartesianas (x, y, z) e Vector 3D.
  • Polígono Simples: Triângulo, Quadrilátero.
  • Malhas Poligonais.
Métodos de Definição de Polígonos
Polígonos Definidos Explicitamente
Cada polígono é representado por uma lista de vértices. Desvantagens: Desperdício de memória, desenho repetido de arestas, difícil deslocamento de arestas.
Polígonos Definidos por Apontadores para Tabelas de Vértices
Vantagens: Vértices guardados em memória uma única vez, facilidade na alteração da localização dos vértices. Desvantagem: Difícil encontrar arestas comuns entre polígonos.
Polígonos Definidos por Apontadores para Tabelas de Arestas
Vantagem: A tabela de arestas permite determinar facilmente relações de vizinhança entre polígonos.

Representação Volumétrica: Construção

Representação Sweep

Permite a construção de objetos 3D através do deslocamento de uma figura 2D no espaço 3D. O Sweep consiste em:

  • Translação: Deslocamento de uma figura 2D segundo uma direção e distância.
  • Rotação: Rotação de uma figura 2D à volta de um eixo, segundo uma porção angular.
Métodos Geométricos de Construção de Sólidos (CSG)

CSG (Constructive Solid Geometry) utiliza:

  • Primitivas Elementares: Paralelepípedos, cilindros, pirâmides, cones, prismas, esferas.
  • Operadores de Conjuntos: União, Interseção, Diferença (para combinar primitivas).

Representação Volumétrica: Decomposição

Os objetos são representados como um conjunto de elementos sólidos simples.

  • Octrees: A região do espaço 3D é dividida em 8 octantes.
  • BSP (Binary Space Partitioning): A região do espaço é dividida em duas partições por um plano colocado em qualquer posição e orientação.

Modelação Hierárquica

Exemplo: Braço robotizado, construído a partir de três símbolos:

  • Base (Cilindro)
  • Braço (Paralelepípedo)
  • Antebraço (Paralelepípedo)

Utiliza Transformações Geométricas.

Transformações Geométricas 2D

As transformações geométricas 2D permitem alterar a posição, orientação, tamanho e forma dos objetos num determinado plano.

Translação

Deslocamento dos objetos segundo um determinado vetor (adição a cada coordenada das distâncias de translação). O par de distâncias denomina-se vetor de translação.

Alteração de Escala

Alteração do tamanho de um objeto (multiplicação das coordenadas x e y por constantes).

  • Fator de multiplicação: Reduz o objeto, aumenta o objeto.
  • Pode ser um fator de escala uniforme.

Rotação

Deslocamento circular de um objeto sobre a origem.

Coordenadas Homogéneas

Muitas aplicações gráficas envolvem sequências de transformações geométricas. As transformações podem ser representadas por:

  • Coordenadas Homogéneas: Permitem combinar as matrizes M1 e M2 numa única matriz de dimensão superior a 3x3. (Necessário representar vértices por vetores com 3 elementos; normalmente utiliza-se h=1).
  • Equações Gerais de Transformação: As transformações compostas ou não podem ser representadas de uma forma geral.

Composição de Transformações

Com as transformações básicas em coordenadas homogéneas, é possível representar qualquer sequência de transformações por uma única matriz de transformação composta.

  • Concatenação de Matrizes (Multiplicação): A operação que representa a composição de transformações. É associativa, mas geralmente não é comutativa.
Composição de Transformações Básicas
  • Translação: Composição de translações; Translação inversa.
  • Alteração de Escala: Composição de escalamentos; Escalamento inverso.
  • Rotação: Composição de rotações; Rotação inversa.
Transformações Relativas a um Ponto de Referência

Alteração de Escala Relativa a um Ponto de Referência:

  1. Transladar os objetos para que o ponto de referência coincida com a origem.
  2. Realizar a alteração de escala.
  3. Deslocar o ponto de referência para a posição anterior.

Rotação em Relação a um Ponto de Referência:

  1. Transladar os objetos para que o ponto de referência coincida com a origem.
  2. Rodar os objetos.
  3. Deslocar o ponto de referência para a posição anterior.
Outras Transformações 2D
  • Reflexão: Produz uma imagem espelhada de um objeto em relação a um determinado eixo.
  • Shear (Cisalhamento): Causa a distorção de um objeto segundo uma determinada direção.

Transformações entre Sistemas de Coordenadas

Frequentemente é necessário converter as coordenadas que descrevem objetos num referencial para outro (ex: passagem de coordenadas de modelação para coordenadas universais).

Para obter a matriz de transformação, dado um novo sistema coordenado (definido por um ponto de origem e um vetor unitário por eixo), desloca-se o novo referencial de forma a coincidir com o antigo (Translação para a origem).

Transformações 3D

Coordenadas Homogéneas 3D

Num espaço 3D, a representação em coordenadas homogéneas envolve a utilização de vetores de dimensão 4.

Translação 3D

Deslocamento dos objetos segundo um determinado vetor (adição a cada coordenada das distâncias de translação). Propriedades: Transformação da inversa.

Alteração de Escala 3D

Alteração do tamanho de um objeto (multiplicação das coordenadas x, y, z por constantes). Propriedades: Transformação da inversa, Composição de alterações de escala.

Alteração de Escala em Relação a um Ponto de Referência 3D

  1. Translação do ponto de referência para a origem.
  2. Alteração da escala.
  3. Translação do ponto de referência da origem para a sua posição inicial.

Rotação 3D

Deslocamento circular de um objeto sobre um determinado eixo. Propriedades: Transformação da inversa, Composição de rotações.

Algoritmo de Rotação em Torno de um Eixo Arbitrário
  1. Aplicar uma translação para que o eixo passe pela origem do referencial.
  2. Aplicar rotações para que o eixo de rotação coincida com um dos eixos coordenados.
  3. Realizar a rotação desejada sobre o eixo coordenado escolhido.
  4. Aplicar as rotações inversas para colocar o eixo na sua orientação original.
  5. Aplicar a translação inversa para colocar o eixo na sua posição inicial.

Reflexão 3D

Produz uma imagem espelhada de um objeto em relação a um determinado plano.

Shear (Cisalhamento) 3D

Causa distorção de um objeto segundo uma determinada direção.

Transformações entre Sistemas de Coordenadas 3D

Frequentemente é necessário converter as coordenadas que descrevem objetos num referencial para outro (ex: passagem de coordenadas de modelação para coordenadas universais).

Para obter a matriz de transformação, dado um novo sistema coordenado (definido por um ponto de origem e um vetor unitário por eixo), desloca-se o novo referencial de forma a coincidir com o antigo (Translação para a origem).

Posicionamento da Câmara

A câmara é posicionada por defeito na origem do referencial, apontando no sentido negativo do eixo Z. Para alterar o ponto de vista, desloca-se a câmara. Reposicionar a câmara é equivalente a transformar os objetos da cena para o novo referencial da câmara (mudança de sistemas de coordenadas).

Projeções Geométricas Planares

Dividem-se em:

  • Projeção Paralela: Projetantes paralelas.
    • Ortográfica (Projetantes perpendiculares ao plano de projeção): Axonométrica e Vista (plano de projeção paralelo aos planos principais).
    • Oblíqua.
  • Projeção Perspetiva: Projetantes convergentes. Divide-se em:
    • Três pontos de fuga
    • Dois pontos de fuga
    • Um ponto de fuga

Recorte 3D (Clipping)

Janela (Viewport)
Define a parte da cena projetada que se pretende visualizar (área retangular definida no plano de projeção).
Planos de Recorte Frontal e Posterior (Near/Far Planes)
Definem a profundidade mínima e máxima da cena a ser visualizada (planos paralelos ao plano de projeção).
Volume de Visualização
Volume do espaço da cena que é visualizado, definido pela Janela e pelos Planos Frontal e Posterior.

Normalização da Projeção

Distorção do volume de visualização para transformá-lo num cubo com centro na origem e faces a uma distância unitária do centro (Volume de Visualização Canónico). Isto é alcançado com uma projeção ortográfica.

Cálculo da Visibilidade (Determinação de Superfícies Visíveis)

Método para determinar quais as porções de um conjunto de objetos de uma cena que são visíveis para uma determinada especificação de visualização.

Tipos de Algoritmos de Visibilidade

Algoritmos do Espaço Imagem
Determinam qual o objeto da cena que é visível para cada pixel da imagem.
Algoritmos do Espaço Objeto
Comparam os objetos da cena entre si para eliminar os objetos ou porções destes que não são visíveis.

Técnicas Eficientes para Algoritmos de Visibilidade

  • Coerência: Coerência de objeto, de face, de aresta, de aresta implícita, de linha de varrimento, de área, de profundidade, entre frames.
  • Eliminação de Faces Posteriores (Backface Culling): Polígonos cuja normal aponta para o lado oposto ao observador podem ser eliminados, pois pertencem a uma zona do objeto tapada pelos restantes polígonos.
Implementação de Backface Culling
  • OpenGL: Aplicado a polígonos, liga o processo de eliminação de faces e indica qual a face a ser eliminada (faces posteriores).
  • Unity (Shader): Definido no shader com opções:
    • Desligar (cull off)
    • Não visualizar faces viradas para a câmara (cull front)
    • Não visualizar faces viradas para a câmara por defeito (cull back)

Algoritmos do Espaço Imagem

Z-Buffer
Buffer com a mesma dimensão do frame buffer onde são armazenados valores da coordenada Z para cada pixel. Se o valor Z de um novo ponto for mais próximo do observador do que o valor Z-Buffer existente, os valores de Z e intensidade são substituídos. (A variação de Z depende da implementação).
Ray Casting
Determina as superfícies visíveis traçando raios de luz imaginários do observador para os objetos. O valor do pixel é a cor/sombreado do objeto cuja interseção está mais próxima do plano de visualização.
Algoritmo de Linha de Varrimento (Scan Line)
Linhas de varrimento percorridas da esquerda para a direita. Para cada pixel: se não houver polígono, usa-se a cor de fundo; se houver múltiplos polígonos, calcula-se o valor Z para cada um e usa-se a cor/sombreado do polígono mais próximo.

Algoritmos do Espaço Objeto

  • Algoritmo de Robert: Determinação de linhas visíveis (objetos devem ser poliedros convexos).
  • Algoritmo de Appel: Determinação de linhas visíveis (baseado no número de polígonos orientados para o observador que ocultam um ponto).
  • Algoritmo de Atherton: Determinação de faces visíveis.

Algoritmo do Pintor

Pinta os objetos numa ordem decrescente da distância ao ponto de vista do observador (pinta primeiro o fundo e depois os objetos mais próximos).

Problemas: Várias faces ocultas, faces mutuamente ocultas.

Iluminação

Luz

Onda eletromagnética, forma de energia, espectro visível.

Tipos de Fontes de Luz

  • Luz Pontual: Raios emanam uniformemente em todas as direções a partir de um único ponto. Varia com a distância e direção. (Ex: Lâmpada).
  • Luz Direcional: Raios vêm sempre da mesma direção (Ex: Luz solar). Uma face é sempre iluminada se estiver orientada em relação aos raios de luz.
  • Spot Light (Foco de Luz): Mistura de luz pontual e direcional. Raios emitidos em forma de cone apontado para uma direção. (Ex: Abajur).

Conceitos de Cor e Reflexão

  • Cor da Superfície: Depende da fonte de iluminação, do ambiente e das propriedades dos materiais.
  • BRDF (Bidirectional Reflectance Distribution Function): Modela como uma superfície reflete a luz.
  • Modelos de Cor: Aditivos (RGB); Subtrativos (CMY).
  • Atenuação Atmosférica: A atmosfera atenua a intensidade da luz em função da distância, causando dispersão devido a múltiplas reflexões.
  • Iluminação Global: Inclui luz direta (da fonte) e luz indireta (refletida por outras superfícies).

Modelos de Iluminação

Modelo Físico
Muito complexo e computacionalmente pesado.
Modelo Elementar: Luz Ambiente
Modela a combinação da reflexão nas diversas superfícies como iluminação uniforme. A intensidade da luz ambiente é constante em todas as direções, resultando em brilho uniforme, independentemente do ponto de vista do observador.
Modelo Elementar: Reflexão Difusa (Cor do Material)

A intensidade da luz refletida varia consoante a orientação e distância em relação à fonte de luz. Ocorre em superfícies baças ou rugosas, resultando em brilho uniforme, independentemente do ponto de vista do observador. A intensidade da luz refletida é dependente da distância à fonte de luz.

Modelo Elementar: Reflexão Especular

A luz de uma fonte pontual é refletida segundo uma direção, cujo ângulo em relação à normal da superfície é simétrico ao ângulo de incidência. A intensidade da luz refletida depende da posição do observador e da distância à fonte de luz.

Refração

Quando a luz incide num objeto transparente, além da reflexão, parte da luz passa pelo objeto por refração (refração difusa, refração especular). A direção é dependente do ângulo de incidência e do material.

Sombreado (Shading)

Sombreado Constante (Flat Shading)

Calcula-se a iluminação para apenas um ponto de cada face, aplicando-a a todos os pontos da mesma. Pressupõe:

  • Fonte de luz localizada no infinito.
  • Ponto de vista posicionado no infinito.
  • A face é a própria superfície (não é uma aproximação de uma superfície curva).

Sombreado Interpolado

Interpola o valor da intensidade de uma face a partir dos valores dos seus vértices.

Algoritmo de Gouraud

Estende o conceito de sombreado interpolado, interpolando valores de iluminação dos vértices, tendo em conta a superfície a aproximar.

  1. Determina o vetor normal à superfície de cada vértice.
  2. Cálculo da intensidade de cada vértice usando o modelo de iluminação.
  3. Intensidade de cada ponto dada por interpolação linear das intensidades dos vértices ao longo das arestas, segundo um conjunto de linhas de varrimento.
Algoritmo de Phong (Sombreado)

O cálculo da iluminação é efetuado para cada ponto a calcular (pixel).

  1. Determina o vetor normal à superfície para cada vértice da malha poligonal.
  2. Interpolar as normais dos vértices ao longo das arestas.
  3. Calcular o vetor normal em cada ponto por interpolação dos vetores normais da extremidade da linha de varrimento e calcular a sua intensidade usando o modelo de iluminação.

Detalhes em Superfícies

  • Polígonos de Detalhe: Devem ser complanares com a superfície; não necessitam ser considerados para o cálculo de visibilidade.
  • Mapeamento de Texturas.

Mapeamento de Rugosidade (Bump Mapping)

Utilizado para superfícies rugosas, altera a normal à superfície de cada elemento de acordo com uma matriz de desvios.

Visualização (Áreas de Crescimento da CG)

A visualização é uma área de aplicação da Computação Gráfica em grande crescimento.

  • Visualização Volumétrica: Gera representações para dados volumétricos (ex: dados meteorológicos, oceanográficos e médicos).
  • Visualização de Informações: Visa auxiliar na análise de dados financeiros, mineração de dados, estudos de mercado ou gestão de redes de computadores.

Planos de Recorte (Near/Far Planes)

  • Near Plane: Distância entre a posição da câmara e a base menor do cone de visualização.
  • Far Plane: Distância entre a câmara e a base maior do cone de visualização.

Representação 3D: Malha de Polígonos

É a forma mais comum de representar modelos 3D. Define-se um conjunto de vértices no espaço (geometria) e como esses vértices devem ser ligados para formar polígonos fechados, chamados de faces (topologia), que podem ser triângulos ou quadrados. O armazenamento é usualmente realizado através de vetores de estruturas, matrizes ou listas.

Superfícies Paramétricas

Usadas para trabalhar com superfícies suaves na modelagem de objetos de forma livre. Uma representação comum são os patches paramétricos bicúbicos, que calculam as coordenadas de todos os pontos de uma superfície curva através da definição de 16 pontos de controlo e três equações (uma para x, y e z).

A partir dos pontos de controlo, são usadas três funções para calcular os valores intermédios (resultantes de uma interpolação). Sempre que um ponto de controlo é alterado, os pontos da superfície devem ser gerados novamente.

Tipos Principais de Projeções

Projeção Paralela Ortográfica
As projetantes são paralelas entre si, passam pelos vértices e intersetam o plano a 90 graus. Não há alteração nas medidas do objeto. A construção é simples (consiste em omitir uma das componentes de cada vértice).
Projeção Perspetiva
As projetantes emanam de um único ponto (centro de projeção) a uma distância finita do plano. É mais utilizada, pois representa melhor a realidade.

Transformações Geométricas (Revisão)

Consistem em operações matemáticas realizadas sobre vértices que permitem alterar uniformemente o aspeto de um modelo. Estas alterações não afetam a estrutura do desenho.

Tipos Fundamentais
  • Translação: Usada para definir a posição de um objeto ou cena (trocar o objeto de lugar).
  • Rotação: Usada para rotacionar um objeto ou cena em torno de um eixo.
  • Escala.

Modelos de Iluminação Local

A cor de cada ponto é definida pela intensidade luminosa que chega diretamente de uma ou mais fontes de luz.

Reflexão Difusa

Ocorre na superfície da maioria dos objetos não emissores de luz. Deve-se à interação molecular entre a luz incidente e o material. Exemplo: Um objeto azul iluminado por luz branca absorve os raios "brancos" e reflete apenas o "componente azul".

Reflexão Especular

Superfícies polidas exibem pontos de brilho (reflexão da própria fonte de luz). Esta reflexão é denominada Reflexão Especular, e a cor do brilho é geralmente a mesma da fonte de luz.

Entradas relacionadas: