Conceitos de Buffers – co-tutorial de programação em CG

Conceitos de Buffers é um tutorial que ajuda a programadores que querem trabalhar com Computação Gráfica (CG).

Este tutorial tem como objetivo introduzir o que é buffers e tipos que ele pode ser representado, muito útil para quem esta fazendo um trabalho e precisa saber qual perfomance quer chegar.O que é um buffer? Ele é uma armazém de dados e informações temporários.Como é que um buffer trabalha? Um buffer assim como um armazém possui lugares que servem para depositar\guardar os objetos. Estes lugares que são especificos são chamados de slots que são identificados por indices (números inteiros).

Um conjunto de slots fazem um vetor. Um vetor é um aglomerado de posições que servem para armazenar. Imagine um vetor como uma trem, cada vagão possui um lugar (slots).
Agora voltemos, se o buffer é um vetor. Como os dados são trabalhados? Todos os dados tem um modo de trabalhar dentro do vetor, não que o funcionamento seja diferente, mas o produto final sim.

O que quero dizer, uma imagem por exemplo no buffer precisa ter um slot para a imagem em si e para as cores. Isso logicamente, aumenta o tamanho da memória a ser utilizada e diminui a performance.

Solução

Use uma memória alternativa do seu computador, se for fazer uma imagem com trilhões de cores para cada polígono, use um pendrive, um cd-RW,DVD-RW para trabalhar e depois exportar a imagem final que não precisará deste tratamento todo.

Quais são os tipos de buffers?

Buffer de cor (Buffer Color,RGB Buffer,RGBA Buffer,BW Buffer) – São responsáveis por alocar as cores dentro de uma espaço para serem utilizadas alternadamente. O que são cada dentro do parênteses.

Buffer Color – Buffer de cor.
RGB Buffer – Buffer da tabela RGB (RED\GREEN\BLUE)
RGBA Buffer – Buffer que trabalha com o efeito alpha (Transparência aplicada á cores e tenuacidade\claridade)

BW Buffer – Buffer que trabalha com a tabela monocromática. Não Enganar com um conceito, monocromático não é só preto e branco, são todos os projetos que trabalhar com uma cor só sem interferência de uma terceira, mesmo que uma tonalidade da primeira. Black and White Buffer

Buffer de profundidade – Ele é o espaço\distância que um pixel está da tela. Em suma ele nunca se distancia. O que acontece é subtração de suas dimensões. Também pode ser conhecido pelo termo Buffer-Z ou pelo nome em inglês Depth Buffer.

Como é feito?

Sabemos que o pixel em medidas convertidas pode ser o cm. E digamos que temos um objeto de 1 metro. Cada cm é uma parte do todo,correto? Então pense num objeto com 10 Pixels (unidade abreviada – pxl). Cada pixel recebe um valor que o diminue de tamanho proporcionalmente. E são armazenados em cada slot esta mudança.

Exemplo prático: Imagine que você está com uma máquina de fotografar(Digital), e quer tirar uma foto de um ambiente. Fazer aqueles ambientes panorãmicos para fazer giros de 360°. O que você vai fazer, bater a foto.

E a máquina? Cada foto é armazenada num buffer interno dela, conhecida como memória. Quando você passar para o computador, cada foto não vem separada uma da outra? Isso é slot. Cada foto tem uma imagem diferente, se você juntar forma o ambiente que você viu.

O buffer trabalha deste jeito. Cada pixels estará diferente em cada slot. Quando houver processamento, cada slot é exibido de dentro do buffer da forma que foi armazenada.

Dúvidas? Poste aqui.

Buffer de restrição ou Stencil Buffer – Possui funções para bloquear ou criar interferência na imagem.

Buffer de aglutinação\aglomeração ou acumulação (Acumulation Buffer) ele serve de adição de dados para exibição. Por exemplo:

Digamos que você tem uma animação, e esta animação possui 100 objetos na tela, cada um destes 100 objetos será armazenado em uma apenas slot. Menos memória? Necas.

Cada slot ao receber tantas informações, irá criar sub-slots que arranjam mais memória. Na computação não existe compensação ao pensar assim, todos os dados devem estar armazenado num slot. Se ele não estiver “fundido” serão dois objetos. E como na física, nenhum objeto pode assumir o mesmo lugar, exceto na física quântica (Mas isso é outra história).

Bem, acho que é um bom entendimento sobre buffers, eu próprio acabo estudando assim também. E vou passar abaixo como simular um buffer português estruturado para o entendimento de todos.

Posso ajudar em implementação deste código em C. Demais linguagens não tenho conhecimento a sintaxe.

 

CÓDIGO SIMULAÇÃO BUFFER – NOMES DE EDITORES GRÁFICOS:

Código:

Algoritmo NOMES DE EDITORES GRÁFICOS
Var // Campo de variáveis
Prog,Buffer[5] : caracter
I : inteiro
Inicio
// A variável Prog insere os programas apartir de um usuário externo.
// Buffer possui 5 slots para armazenar do tipo caracter.
// I é um controlador de slots, se quiser o valor do slot 3 antes do 1 e 2.Repita

Por favor insira uma nome de programa.
Insira Prog.nome
Para I de 1 ate 5 faca
Buffer[I] <- Prog.nome
fim para

ate que I=5

fim algoritmo

 

 

 

 

Deixe um comentário