Um pouco de vocabulário
Resolvi escrever um pouco sobre o vocabulário usado no desenvolvimento de games. Isso é importante para que vocês não fiquem perdidos quando eu começar a abordar conceitos mais complexos. Preferi criar uma lista de tópicos para facilitar referências futuras.
API: vocês devem ter ouvido (ou lido) essa sigla diversas vezes. Application Programming Interface ou, em bom português, Interface de Programação de Aplicativos. API é um conjunto de funções, classes (no caso da orientação a objetos) e estruturas de dados disponibilizados em bibliotecas e/ou pelo próprio sistema operacional em uso e que auxiliam o desenvolvimento de aplicações mais complexas. As APIs normalmente tratam de tarefas repetitivas ou contém estruturas de dados que são largamente utilizadas como forma de tornar sua implementação transparente aos desenvolvedores. Na imensa maioria das vezes, são bibliotecas altamente abstratas, com os mais diversos usos. Exemplos de APIs “da moda” incluem as APIs do Google, que provêm acesso aos serviços da empresa (outro ponto importante, as APIs “prestam” serviços às aplicações que as utilizam) ou a própria API do Windows, que disponibiliza acesso aos recursos do sistema operacional, como o sistema de janelas.
API Gráfica: API gráfica é toda API especializada em prestar serviços relevantes à aplicações de computação gráfica. Em geral implementam os principais algoritmos da área da forma mais otimizada disponível na indústria. Seu principal uso é facilitar a comunicação das aplicações com o Hardware que realiza o desenho na tela (placa de vídeo) e com os recursos disponibilizados por tais hardwares, como shaders e sistemas de partículas. As duas principais APIs gráficas utilizadas na indústria são o OpenGL (Open Graphics Library) e o Direct3D. Muitos confundem o Direct3D com o DirectX. Na verdade o Direct3D é parte integrante do DirectX, que é, por sua vez, uma API muito maior que trata não só da geração de imagens (através do Direct3D), como também da geração e reprodução de áudio e vídeo, tratamento de inputs (entradas) do usuário e outputs (saídas) para o usuário, tratamento de aplicações em rede. O DirectX é um conjunto de várias APIs reunidas no intuito de facilitar o trabalho com aplicações interativas, principalmente jogos.
Renderização (Rendering): É o processo pelo qual se gera, através da execução de softwares especializados (e normalmente instruções em hardwares especializados), imagens a partir de um modelo definido virtualmente. Um modelo definido virtualmente é, em geral, um objeto do mundo real que possui uma representação “dentro” do computador, isto é, está definido através de seus pontos e/ou segmentos de reta.
Rasterização: É o processo de conversão de imagens descritas de forma vetorial em uma imagem descrita por uma matriz de pixels (dots – pontos) de modo que possa ser aprensetada em um monitor.
Pipeline de Renderização: É o processo de transformação de modelos descritos em um sistema de coordenadas tri-dimensional (chamado de sistema de coordenadas do universo ou do mundo) em uma imagem raterizada (que sofreu o processo de rasterização). O pipeline de renderização inclue alguns passos principais, a constar: Transformações do Modelo (é a etapa em que os modelos são posicionados e/ou rotacionados usando o sistema de coordenadas do mundo, é o processo de descrição da cena que se deseja renderizar), Transformação de Câmera (nesta etapa os dados dos objetos no sistema de coordenadas do mundo são convertidos para o sistema de coordenadas da câmera, levando em conta a posição e orientação da mesma no mundo), Transformação de Projeção (nesta etapa os dados obtidos na tranformação de câmera são traduzidos em uma imagem vetorial, ou seja, uma imagem bi-dimensional descrita por vetores) e, por fim, a Rasterização (já descrita).
Shader: Shader é um conjunto de instruções que interferem nas etapas do pipeline de renderização. Normalmente são utilizados para criar efeitos nas imagens geradas ou torná-las mais realistas (ou ambos). Shaders podem interferir em praticamente todas as etapas do processo de renderização, podendo, inclusive, modificar a malha dos objetos descritos.
Malha: É uma estrutura geométrica composta por linhas, normalmente orientadas que descrevem um objeto do mundo real.
Os conceitos acima são alguns dos principais (e foram os que lembrei de cabeça) e, a partir de agora, espero que você fique um pouco mais confortável com a computação gráfica. Se você possui alguma outra dúvida ou deseja entender melhor algum conceito, me mande um email ou escreva um comentário.
Grande abraço a todos!
Dúvidas, sugestões e reclamações – raphaelbaldi@raphaelbaldi.com.




