Resumo - É abordada
a animação 3D. Fala-se das várias formas
de criação de computação gráfica:
keyframing, motion capture e simulação. São
abordados os vários processos de rendering. Fala-se
dos programas existentes para animação 2D/3D
e das aplicações da animação
computacional na vida real. Contem um glossário com
palavras técnicas. Esta abordagem será útil
para quem gostar e estiver interessado nesta matéria.
Palavras chave - animação
2D, animação 3D, computação
gráfica, animação computacional, rendering,
motion capture, simulação, keyframing
Introdução
A computação gráfica é o conjunto
de algoritmos, técnicas e metodologias para o tratamento
e representação gráfica de informação
através da criação, armazenamento e
manipulação de figuras, utilizando-se computadores
e dispositivos periféricos gráficos. Os videojogos
representam um dos exemplos mais conhecidos de computação
gráfica, em que um micro-computador gera dinamicamente
imagens que são exibidas numa tela (monitor). As
imagens aparecem em movimento e o jogador pode assim interagir
com as mesmas, através de botões. A Computação
Gráfica "nasceu" junto às primeiras
máquinas electrónicas de computação.
Em 1950, foi utilizado pela primeira vez um display (tubo
de raios catódicos acoplado a um computador), controlado
pelo computador Whirlwind I no MIT (Massachusett Institut
of Tecnology), para a geração de imagens gráficas
simples. Assim surgia um novo ramo que teria uma importância
sempre crescente no mundo: a Computação
Gráfica (Animação Computacional).
Alguns anos depois, a introdução da caneta
fotosensível, permitiu identificar elementos no tubo
de raios catódicos e assim ter um meio de interagir
directamente com a imagem. Ainda na mesma época,
surgiram os primeiros traçadores controlados por
computadores digitais. Os progressos deste novo ramo na
ciência foram lentos durante algum tempo (década
de 50), pela inadequação dos computadores
existentes e pela não disponibilidade de dispositivos
gráficos. Também na década de 50, a
Força Aérea dos EUA implementou um sistema
de comando de voo (SAGE) baseado em Computação
Gráfica. Na mesma época, ainda houve o início
da utilização de alguns Periféricos
Gráficos, tais como os Terminais Gráficos
(1951), Plotters (1953), e Laghtpens (1958). No início
dos anos 60, iniciou-se o uso de raios catódicos
a cores. Em 1962, Ivan E. Sutherland, apresenta a sua tese
de doutoramento no MIT: Sketehpad: A Man-Machine Graphical
Communication System, o que lhe valeu o titulo de "pai
da Computação Gráfica moderna".
No seu trabalho, Sutherland descrevia um sistema gráfico,
com ferramentas de recursos de desenho 3D, e provava a viabilidade
do uso dos computadores para trabalhos de Drafting e Design
(desenho e projectos auxiliados por computadores). Este
sistema já tinha muitas características dos
sistemas de hoje. Por exemplo, o uso de dados estruturados
para o desenvolvimento mais efectivo ocorreu quando o assunto
se começou a tornar também objecto de interesse
na indústria, no principio da década de 60,
quando foi iniciada a implementação de alguns
sistemas para apoio a projectos de fabricação,
no sector automobilísticos e aeroespacial. Ainda
na década de 60, foram comercializados os primeiros
monitores vectoriais, oferecendo condições
para o surgimento dos primeiros pacotes CADCAM na área
de construção automobilística. No final
desta década, apareceram os monitores vectoriais
com tubos de memória. Com o impulso dado por estes
trabalhos, surgiram inúmeros projectos de pesquisa
e diferentes fabricantes de hardware para Computação
Gráfica. Na década de 70 surgiram no mercado
sistemas integrados, denominados Turn-key, que geralmente
se destinavam a auxiliar os projectos de engenharia. Com
o progresso tecnológico na fabricação
de memórias, surgiram em meados dos anos 70 os primeiros
monitores a varredura, trazendo novas possibilidades para
criar e visualizar verdadeiras imagens. Também foi
nos anos 70 que ocorreram os primeiros pacotes gráficos
e as primeiras conferencias do SIGGRAPH (Special Interest
Group on Graphics). Foi proposta por um comité essencialmente
Norte Americano do ACM SIGRAPH, em 1977, a primeira padronização
gráfica como o "Core Graphics System",
conhecido como CORE. O objectivo era propor, para as aplicações
em 2D e 3D, um padrão contendo um conjunto de funções
gráficas que, na sua utilização não
dependessem dos equipamentos gráficos envolvidos
na aplicação. No ponto final da década
de 70, foi formulado um outro padrão de gráficos,
chamado GKS (Graphic Kernel System), que deveria adaptar-se
melhor à grande diversidade dos equipamentos gráficos
e das aplicações potenciais, através
da introdução da noção de estação
de trabalho. O GKS foi adoptado pela ISO (International
Standards Organization) como norma internacional em 1985.
A introdução da GKS como padrão internacional
representou um avanço, porém, na sua versão
actual ele não possibilitasse o aproveitamento de
certos recursos disponíveis em novos equipamentos
gráficos. A proposta em estudo pela ISO de um padrão
GKS para aplicações gráficas em 3D,
deveria contribuir para expandir a sua aceitação.
A nível de padronização gráfica,
uma proposta relativamente recente foi feita pela ANSI (American
National Standard Institute) e está em estudo pela
ISO. Trata-se do PHIGS (Programmer's Hierarchical Interctive),
que cobre os aspectos de modelagem de objectos por hierarquias
(pontos não abordados pelo GKS), assim como os aspectos
gráficos em 3D. A partir dos anos 80, com a chegada
dos micro e dos seus aperfeiçoamentos constantes,
as aplicações da Computação
Gráfica, deixaram de ser reservadas aos especialistas.
Animação 2D
O impacto das técnicas 2D podem ser espectaculares.
Como exemplos de utilização destas técnicas
temos o filme 'ET', a cena onde o extraterrestre sai disparado
com uma bicicleta fazendo-se um close-up deste com a lua.
Outro exemplo será a remoção subtil
dos arames que suspendiam o super homem. Estas técnicas
contribuíram bastante para a animação
computacional, através do fornecimento de ferramentas
tais como blending (mistura), morphing, embutimento de imagens
gráficas em vídeo ou a criação
de padrões abstractos de equações matemáticas.
O morphing refere-se à acção de metamorfose
de um objecto para outro. No 'Black or White' de Michael
Jackson, os animadores criaram morphs de pessoas com aparências
faciais bem diferentes umas das outras, gerando-se um efeito
final bastante agradável. Infelizmente, o morphing
é muito trabalhoso porque os elementos chave de cada
imagem têm de ser especificados manualmente.
Se embutirmos objectos gráficos numa imagem, podemos
introduzir novos elementos numa cena que já existe.
Como exemplos temos os fantasmas do filme Gasparzinho, e
muitos dos dinossauros do Parque Jurássico foram
gerados por computador e depois embebidos no filme. Os objectos
poderão ser também removidos de uma cena.
Quando o autocarro no filme Speed sobrevoa uma fenda numa
ponte que estava parcialmente construída. Essa fenda
foi feita digitalmente retirando-se um pedaço de
estrada de uma ponte já construída. Tanto
o embutir como o de remover são mais difíceis
de serem realizadas se a câmera se encontrar em movimento.
As equações matemáticas são
muitas vezes usadas para criar sequências de movimento
abstractas. Os Fractais são exemplos bastante conhecidos
de padrões gerados a partir de funções
matemáticas. O Morphing e a criação
de imagens abstractas poderão ser generalizados para
utilização em 3D. Todas estas técnicas
de 2D poderão ser usadas sozinhas para a criação
de uma animação, ou então utilizadas
como um processo pós processamento para realçar
imagens geradas usando outras técnicas de 2D ou 3D.
Animação 3D
Quando são utilizados técnicas 3D, o animador
constrói um mundo virtual da qual as personagens
e os objectos se movem e interagem. Este usa este mundo
virtual para gerar imagens de uma animação.
A geração de uma animação necessita
de três passos decisivos: modelação,
animação e renderização.
Passo a explicar agora de uma forma sucinta como quase todas
as animações 3D são criadas.
Criação de uma Animação
|
Storyboards
Imensos desenhos de storyboard são
criados como planta para a acção e o
diálogo entre as personagens. Estas são
revistas várias vezes durante o processo de
desenvolvimento criativo.
|
|
Modelagem
Com auxílio de programas gráficos 3D,
são criados as personagens e os modelos 3D.
Estes modelos computacionais descrevem a forma geral
do objecto, bem como os controles que os animadores
irão utilizar para mover as personagens.
|
|
Animação
Qualquer uma das três técnicas possíveis
para a criação de uma animação
pode ser utilizada nesta fase - Keyframing, motion
capture ou simulação.
|
|
Sombrear
Utilizam-se programas de computador que descrevem
as características da superfície, incluindo
texturas, acabamentos e cores, são adicionados
a todos os objectos do cenário. Estes programas
designados por "shaders", podem simular
uma grande variedade de aparências, incluindo
lã, madeira, metal, tecido, vidro, cabelo e
pele.
|
|
Iluminação
Utilizando "luzes digitais", cada cena
é iluminada mais ou menos da mesma forma que
um palco é iluminado. Todos os tipos de iluminação
são tratadas para criar um ambiente familiar
com o intuito de realçar um determinado tipo
de humor para cada cena.
|
|
Renderização
Desenha a imagem final, calculando cada pixel da
imagem proveniente do modelo, animação,
sombreamento, e iluminação. As imagens
finais já renderizadas poderão levar
até cerca de 24 horas cada até estarem
acabadas. Uma vez renderizada, as imagens finais são
transferidos para filme, vídeo ou CD-Rom.
|
Dado que o storyboarding tem mais a ver com arte do que
com a intervenção directa dos computadores
não iremos abordar este assunto.
Modelação
|
Para poder criar movimento, o utilizador necessita
tanto de uma descrição estática
como de uma descrição dinâmica
do objecto. Uma forma comum de especificar esta informação
adicional é a de usar um modelo articulado.
Um modelo articulado consiste numa colecção
de objectos conectados através de junções
que se encontram localizados numa estrutura hierárquica
em forma de arvore (figura ao lado). A localização
de um objecto é determinado pela localização
dos objectos directamente acima deste na cadeia hierárquica.
Por exemplo, o movimento da junção do
cotovelo num modelo humano não irá somente
afectar a posição do antebraço
mas também a posição da mão
e dos dedos. O objecto no topo da hierarquia (ou a
raiz da arvore) pode ser movido arbitrariamente, afectando
a posição e orientação
de todo modelo.
Um segundo tipo de modelo utilizado na animação
é um sistema baseado em partículas ou
numa colecção de pontos. O movimento
das partículas pelo espaço é
determinado por um conjunto de regras. As leis da
física muitas vezes fornecem uma base para
o movimento obrigando assim que os objectos obedeçam
à gravidade e que colidam com outros objectos
se estes estiverem a partilhar o mesmo espaço
no mesmo ambiente ao mesmo tempo. Sistemas modelados
por esta base incluem um esguicho de água,
o fumo, etc.
|
|
|
Os objectos deformáveis são o terceiro
tipo de modelo, e incluem objectos que não
possuem junções articuladas bem definidas,
no entanto, são constituídos por uma
estrutura demasiado densa para serem representados
por um sistema de partículas. Devido à
vasta gama de objectos que podemos inserir neste modelo,
existem algumas formas fundamentais para se representar
objectos deformáveis, incluindo modelos volumétricos,
representações superficiais. Água,
ar, vestuário, e peixes estão entre
os sistemas modelados através de objectos deformáveis
com sucesso.
Qualquer um destes modelos pode ser utilizado para
descrever uma grande variedade de objectos, no entanto,
sistemas complexos requerem modelos híbridos
que combinam dois ou mais dos modelos referidos anteriormente.
Esta aproximação permite que cada parte
do sistema seja modelado à técnica mais
apropriada.
A figura do lado esquerdo mostra-nos um mergulhador
a entrar na piscina. O mergulhador é um modelo
articulado, a piscina é um modelo deformável,
o jacto de água é um sistema particular.
|
|
Keyframing
O keyframing provém da forma tradicional de animação,
o keyframing requer que um animador especifique um conjunto
de posições chave para os objectos que estão
a ser animados. O computador interpola para determinar as
frames que se encontram entre as frames chave. O algoritmo
de interpolação é um factor importante
na aparência final da acção. A forma
mais simples de interpolação, designa-se por
interpolação linear. Por vezes, esta interpolação
resulta dum movimento que tem um aspecto um pouco instável,
isto porque, as velocidades dos objectos em movimento são
descontínuos. Para corrigir este problema, outras
técnicas de interpolação, tais como
as splines, são usadas para produzir curvas interpoladas
suaves.
A especificação dos keyframes podem ser mais
fáceis com técnicas tais como a cinemática
inversa, que ajudam a colocação dos modelos
articulados permitindo ao animador especificar a posição
de um objecto e ter assim as posições dos
objectos, acima de si na hierárquica, calculadas
automaticamente. Como exemplo, temos a mão e o torso
de uma personagem animada que estarão em posições
especificas, a cinemática inversa (inverse kinematics)
permite ao computador calcular o angulo do cotovelo e do
ombro. Os produtos de animação comercial incluem
a cinemática inversa e rotinas de interpolação
desenhadas especificamente para a animação
humana. Estas ferramentas levam em consideração
factores de manutenção do balanço,
limitações dos ângulos das junções
e colisões entre os membros e o corpo. Embora estas
técnicas facilitem a animação, o keyframing
necessita sempre de um animador que conheça bem os
comportamentos do objecto.
Métodos Procedimentais
Tecnologicamente, não somos ainda capazes de gerar
acções automáticas para objectos arbitrários;
no entanto, algoritmos para movimentos específicos
podem ser programados. Estes algoritmos são designados
de métodos procedimentais, isto porque o computador
segue de uma forma sequencial os passos que se encontram
no algoritmo. Estes métodos possuem duas vantagens
principais sobre o keyframing: facilitam a geração
de acções similares, e podem ser utilizados
em sistemas que seriam demasiadamente difíceis de
simular à mão, tais como sistemas de partículas.
A Simulação faz referência a um método
procedimental que utiliza as leis da física, ou pelo
menos uma aproximação a essas leis, para gerar
movimento. O movimento simulado é inerentemente realístico
e para muitas aplicações isso é uma
vantagem. Infelizmente, a construção de uma
nova simulação é por vezes um processo
difícil necessitando de um conhecimento profundo
das leis da física.
Motion Capture
Tradicionalmente, as acções para uma animação
são criadas especificando a posição
dos objectos a cada instante do tempo. A especificação
manual possui uma desvantagem, a de ser muito trabalhosa,
e também requerer um grande talento para criar um
movimento convincente através de uma série
de poses individuais que quando juntas supostamente deverão
dar animação a um objecto. Embora os computadores
possam reduzir o trabalho através da interpolação
dos keyframes, a especificação manual do movimento
requer talento e treino.
A motion capture é diferente do processo de criação
de animação por observação.
Distingue-se por ter uma variedade de utilidades para além
da animação, tais como análises bio-médicas,
vigilância, análise de performances desportivas,
ou até como um mecanismo de input para a interacção
entre computador e humano. Muitos dos métodos utilizados
no motion capture têm as suas raízes em domínios
médicos ou bio-mecânicos.
O que é na realidade a captura? Num sentido, ao
apontar uma câmera a alguém consegue-se capturar
os seus movimentos. Podemos rebobinar a cassete e rever
o seu movimento. A distinção entre esta captura
e o motion capture (captura de movimento) é que a
segunda cria uma representação que destila
o movimento da aparência; codifica o movimento de
forma adequada às necessidades de processamento ou
análise que necessitamos. Esta definição
de motion capture é dependente do objectivo para
o qual vai ser utilizado.
O online motion capture é único na sua área.
Para produção offline de acções,
este método é apenas uma de várias
formas de criação de movimento para fins de
animação. Em termos de taxinomia de criação
de movimento, esta normalmente divide-se em três categorias:
Especificação manual, procedimental ou simulação,
motion capture.
Captação do Movimento
|
Motion capture utiliza sensores especiais designados
por trackers. Estes trackers registam o movimento
de um ser humano. Os dados gravados são depois
usados para gerar a animação.
Os passos necessários para a criação
de uma animação através da observação
são:
1. Planear a captação do movimento e
a sua posterior produção.
2. Capturar o movimento
3. "Limpar" os dados
4. Editar os movimentos
5. Mapear os movimentos em torno das personagens animadas.
|
|
A ordem dos passos 4 e 5 por vezes variam, dependendo nas
ferramentas. Por vezes, estes passos são iterados.
Aparelhos utilizados no Motion Capture
Uma variedade de métodos são usados para
"capturar" com sucesso uma acção.
O equipamento mais antigo de motion capture era constituindo
por armações mecânicas utilizados para
medir os ângulos das junções. Os primeiros
exemplares usavam correias goniométricas desenhadas
inicialmente para análises médicas. Mais recentemente,
a utilização da tecnologia mecânica
tem sido primariamente utilizada na criação
de marionetes, esses sistemas foram desenhados para seguir
a locomoção do ser humano requerendo que um
esqueleto mecânico fosse colocado no voluntário.
Existem implementações modernas desta técnica
utilizando alternativas menos incomodas.
Os aparelhos magnéticos usam transmissores para criar
campos magnéticos que geram um espaço, são
empregues sensores que determinam as posições
das junções e a orientação do
voluntário no interior do espaço criado. As
versões mais antigas possuíam vários
problemas: Os sensores requeriam cabos que afligiam os voluntários,
e existia um erro significativo nas leituras dos sensores,
os campos magnéticos eram limitados e havia interferência
nestes aquando da introdução de objectos metálicos.
O equipamento moderno consegue livrar-se de alguns dos inconvenientes
anteriores: versões wireless substituem os cabos
e sensores actualizados promovem um melhor desempenho e
robustez.
Sistemas de seguimento ópticos usam marcadores visuais
especiais no voluntário e um número de câmeras
para determinar a localização a 3D dos marcadores.
Tradicionalmente os marcadores são objectos passivos,
tais como esferas reflectoras, e as câmeras são
dispositivos monocromáticos de alta velocidade sintonizadas
para captar uma cor específica. Os sistemas ópticos
requerem várias câmeras para detectar um marcador
para depois poder triangular a sua posição.
Poderá haver a possibilidade de perda de um dos marcadores
de vista se houver oclusão do marcador por parte
de um objecto estranho.
O sistemas ópticos topo de gama por vezes utilizam
muitas câmeras (até 24) no esforço de
tentar minimizar o risco dos marcadores não serem
vistos por câmeras suficientes.
Um desafio de um sistema óptico é o facto
de embora estes poderem ver os marcadores, não possuírem
nenhum método para saber qual é qual. Ao contrário
do sistema magnético, onde cada marcador possui o
seu próprio canal de dados, um sistema óptico
tem de determinar a correspondência dos marcadores
entre frames. Tipicamente isto é feito com software
cujo processamento se baseia na continuidade de posições.
Edição de movimento e captura de movimento
As técnicas de motion capture (idealmente) deveriam
fornecer movimentos naturais - porquê a necessidade
de os mudar? Se está tudo a funcionar correctamente,
os dados do motion capture deveriam ser uma reflexão
exacta da realidade. No entanto, a discussão de como
deveremos modificar uma acção assim que a
temos parece ter sempre um grande papel na utilização
do motion capture. Um erro comum é a de pensar que
a importância da edição de movimento
provém do facto de que o motion capture é
imperfeito, e que são necessárias ferramentas
para efectuar uma limpeza aos dados gravados. Mesmo representando
um movimento na perfeição os dados do motion
capture por vezes necessitam de alterações
ao nível do movimento, razões que poderão
incluir :
· Reutilização:
os dados do motion capture gravam exactamente a acção
de um evento. Se quisermos reutilizar os dados para algo
ligeiramente diferente, digamos uma personagem diferente
ou um movimento ligeiramente diferente, necessitamos de
editar os dados.
· Criação de movimentos impossíveis:
dado que o motion capture grava acções reais,
alguma edição é necessária
para que acções impossíveis possam
acontecer.
· Imperfeições da realidade: o movimento
real não é perfeito. Voluntários
não chegam a atingir objectivos exactos e os movimentos
humanos repetitivos não são exactamente
cíclicos
· Mudança intencional: nem sempre podemos
prever que movimento poderemos vir a necessitar, e mesmo
que consigamos, alguém poderá mudar de ideias
quanto ao efeito final desejado.
· Adição de movimento "secundário":
Incorporação de tecidos moles ou de vestuário
numa personagem virtual.
Existem questões que tornam a operação
com o motion capture mais difícil de trabalhar do
que o movimento animado tradicional. Estas questões
transcendem a tecnologia usada na captura do movimento:
· Os dados recolhidos são
de certeza um factor inconveniente para editar. Sistemas
de motion capture fornecem tipicamente uma postura para
cada frame do movimento, e não somente os instantes
mais importantes do mesmo. Isto significa que muitos dados
têm de ser alterados para que uma edição
seja bem feita.
· Não existe nada para além dos dados
gravados para descrever as propriedades do movimento.
Há pouca coisa nos dados que indique quais as propriedades
importantes, e o que deverá ser mudado para afectar
o movimento. Nem existe nenhum animador que conheça
o porquê do movimento.
· Erros sensoriais ou outras falhas poderão
conduzir a imperfeições no movimento, necessitando
assim de uma limpeza. O que torna este problema um desafio
é o facto de não se possuir uma gravação
exacta daquilo que se passou (se houvesse, passavam-se
a usar esses dados em vez dos dados imperfeitos), é
difícil saber-se quando os dados estão incorrectos,
e ainda mais difícil saber como é que os
devemos substituir.
Visão Computacional e Motion Capture
Há um segmento crescente no grupo de computação
por visão que se encontra interessado no problema
da análise de imagens de seres humanos em locomoção.
As aplicações são variadas, indo desde
a vigilância, passando por inputs para interfaces
com utilizadores indo ate à análise bio-mecânica.
Tal como o motion capture tradicional este método
tem sido importado dos domínios anteriores para a
animação, a vídeo-análise oferece
um dispositivo atractivo para a criação de
movimento animado.
O potencial para motion capture baseado em visão
é enorme: vantagens que vão desde a tecnologia
de vídeo convencional ser mais acessível,
menos dispendiosa, estorvar menos aos voluntários,
e funcione numa maior variedade de ambientes do que os tecnologias
actuais. Se o vídeo padrão poder ser analisado,
metragens legadas a nós poderão ser usadas
para criar animação. No entanto, estas possibilidades
requerem que a tecnologia possa fornecer a fidelidade e
qualidade que as aplicações de animações
requerem.
Simulação
Ao contrário de keyframing e motion capture, a simulação
utiliza as leis da física para gerar o movimento
de figuras e outros objectos. Seres humanos virtuais são
normalmente representados como sendo uma colecção
de partes corporais. A parte inferior do corpo poderá
consistir do torso, as partes superior e inferior das pernas
e os pés, havendo junções rotativas
para as ancas, joelhos e tornozelos.
Quando os objectos são inanimados, tais como vestuário
ou água, o computador consegue determinar os seus
movimentos, obrigando-os a obedecerem a equações
de movimento derivadas de leis físicas. No caso de
uma bola a descer um monte. A simulação pode
calcular o movimento levando em conta a gravidade e forças
tais como a fricção que resultam do contacto
entre a bola e o chão. Mas pessoas possuem fontes
internas de energia e não são meramente objectos
passivos ou inanimados. Humanos virtuais, necessitam de
uma origem de comandos musculares e/ou motores, designado
por "sistema de controlo". Este software calcula
e aplica acções a cada junção
do corpo simulado para fazer com que a personagem execute
uma determinada acção.
Alguns sistemas de controlo usam maquinas de estado : algoritmos
implementados em software que determinam o que cada junção
deverá estar a fazer em cada acção,
e depois tal como um maestro de uma orquestra, assegura
que as junções executam as funções
no seu devido tempo. Correr, por exemplo, é uma actividade
cíclica que alterna entre uma fase onde uma perna
esta a fornecer suporte ao corpo, e outra fase quando nenhum
pé se encontra no solo. Durante a primeira fase o
tornozelo, o joelho e a anca da perna que está em
contacto com o solo tem de fornecer suporte e balanço.
Quando essa perna se encontra no ar as ancas têm de
se mover de forma a preparar-se para o próximo encontro
com o solo. A máquina de estados selecciona entre
os vários estados das ancas, escolhendo a acção
correcta para a fase corrente da corrida.
Associado a cada fase estão as leis de controlo
que calculam os ângulos desejados para cada uma das
30 junções simuladas no corpo humano. As leis
de controlo são equações que representam
como cada parte do corpo deverá se movimentar para
conseguir satisfazer uma determinada função
em cada fase da acção. Para mover as junções
até uma determinada posição, o sistema
de controlo calcula as acções apropriadas
com equações que agem como molas, puxando
as junções até aos ângulos desejados.
Essencialmente, as equações são músculos
virtuais que movem as várias partes do corpo para
as posições desejadas.
Como técnica de sintetização da locomoção
humana, a simulação possui duas potenciais
vantagens sobre keyframing e motion capture. Primeiro, simulações
podem ser facilmente utilizadas para produzir sequências
ligeiramente diferentes mantendo o realismo físico,
por exemplo, uma pessoa a correr a 4 metros por segundo
em vez de 5. Acelerando ou abrandando o playback de uma
animação poderá estragar a naturalidade
do movimento. A segunda vantagem é que a simulação
em real-time permite que exista interactividade, um factor
importante em ambientes virtuais e jogos de computador onde
personagens artificiais têm de responder a acções
de uma pessoa real. Em contraste aplicações
baseadas em keyframing ou motion capture seleccionam e modificam
movimentos de uma biblioteca de movimentos já computadas.
Um aspecto negativo da simulação, é
o conhecimento e a quantidade de tempo necessárias
para construir um sistema de controlo apropriado. Está-se
a construir actualmente bibliotecas que possam conter já
algumas acções pré programadas.
Outra dificuldade é a de adaptar sistemas de controlo
preconcebidas e adaptá-las a pessoas diferentes,
nomeadamente, utilizar a corrida de um homem adaptando-a
a uma criança.
Sombreado
O método sombrear adiciona um grau de sombra a cada
face de cada objecto. A sombra de cada face do objecto é
calculada com base no ângulo entre a face e o sol,
as faces são renderizadas com sombras mais leves
se estes estiverem virados para o sol, e progressivamente
mais escura à medida que estes se afastam do sol.
As faces do objecto que estão viradas do lado oposto
à do sol são renderizadas com um sombreado
ainda mais escuro, visto estes estarem já no interior
de uma sombra.
Rendering
A renderização é um processo que o
computador utiliza para criar uma imagem de um ficheiro
de dados. A maioria dos programas gráficos 3D não
são capazes de desenhar uma cena inteira com cores,
texturas, luzes e sombras enquanto este corre. Em vez disso
animador trata do mesh do objecto. Quando o animador estiver
satisfeito com o mesh (malha), ele renderiza a imagem.
|
O mesh
|
|
|
Imagem renderizada
|
|
Wire Frame
Isto não é na realidade um método
de renderização. A maioria dos programas 3D
representam os objectos por malhas (mesh). Num wire frame
toda secção do mesh é colorida com
uma cor mediana da textura, Isto torna-se útil quando
se querem aplicar efeitos especiais, ou então executar
uma espécie de ante estreia da imagem final. Para
levar o wire frame um passo em frente, alguns programas
executam um processo chamado de remoção de
linhas escondidas (hidden line removel). É tal e
qual uma renderização de um wire frame, exceptuando
o facto de que as partes da malha que não nos são
visíveis não são renderizados caso
a malha fosse sólida.
A renderização normalmente leva muito tempo.
O tempo que leva a renderizar uma imagem depende da qualidade
da renderização. Existem algumas qualidades
diferentes de renderização.
Flat Shading
Este é o método de renderização
mais rápido de todos. Alguns programas são
capazes de renderizar objectos "flat shaded" em
tempo real. Quando estamos a renderizar utilizando o método
flat shading, o computador cria uma cor média e depois
renderiza cada face com diferentes quantidades de preto
e branco adicionados para simular o sombreado. Com este
método os objectos têm aparência de serem
planos e irreais. Nenhuma textura é aplicada neste
modo.
Gourad
A renderização Gourad eleva a renderização
para mais um passo. O computador calcula os valores da cor
nos vértices de uma face e depois aplica o gradiente
à face para simular o sombreado. Este modo não
é muito mais lento que o flat shading e poderá
também ser renderizado em tempo real por um computador
mais potente.
Phong
O phong leva a renderização ainda mais um
passo em frente. Ele sonda todos os pixels na área
visível e tenta determinar uma cor correcta para
cada pixel. O phong leva em conta todas as luzes e texturas.
Muitas vezes este método é tão bom
quanto os programas de renderização de baixo
nível. Os resultados são bastante satisfatórios,
e o tempo necessário para renderizar não é
muito longa.
Ray Tracing
Esta é a melhor qualidade de renderização!
No entanto leva muito tempo, mas os resultados são
espectaculares. Tudo é renderizado, incluindo sombras,
luminosidade, reflexos e transparências. Também
faz outra coisa que outros renderizadores não fazem.
Dá à luz um atributo físico. Por exemplo,
a renderização de um lápis num copo
com água irá dar o mesmo efeito de deflexão
que a natureza nos dá: o lápis irá
parecer que está partido. Quando um raio simulado
de computador traça uma imagem, ele simula um raio
de luz real a sair de cada pixel do ecrã. Reflecte
e deflecte o raio de luz de uma forma semelhante à
da natureza.
Radiosity
Este método é relativamente recente. É
capaz de fazer algo que nenhum dos métodos de renderização
anteriores são capazes: descobre a relação
entre o cenário e todos os objectos presentes. Por
exemplo, na vida real, se pegarmos numa bola colorida e
a colocarmos num quarto branco, as paredes do quarto irão
reflectir um pouco da cor proveniente da bola, fazendo com
que as paredes assumam um tom colorido. Esta propriedade
não é possível com ray tracing, visto
que este não ressalta a luz de objectos mate, tal
como uma parede.
O radiosity produz resultados extremamente bons, mas infelizmente
existe um senão : o tempo de renderização.
Antes do computador começar a renderizar, tem de
resolver uma espécie de "modelo radiosity",
este modelo define a relação que o objecto
tem com as restantes dentro do mesmo cenário. Só
depois é que pode começar a renderizar
Nem todos os métodos de rendering foram aqui mencionados,
tendo sido escolhidos os mais importantes.
Programas
Segue-se uma lista de programas utilizadas no processo
de modelagem, animação, shading, iluminação,
e renderização.
Programas 2D:
- Softimage Toonz
- D-Paint
- Disney Animation Studio
Programas 3D:
- Alias
- Houdini
- Maya
- Renderman
- Wavefront
- Crystal Topas
- Hash's 3D Animation Pro
- Softimage
- Imagine
Outros:
- Adobe Photo Shop
- Adobe Premier
- Adobe After Effects
- Fractal Designs Painter
- Corel Photo-Paint
- Corel Draw
- Metroworks Code Warrior
- Freehand
- Director
Aplicações
Há algum tempo atras, era praticamente impossível
estudar certos tipos de fenómenos que fugiam à
percepção humana. Com a computação
gráfica e o aperfeiçoamento de técnicas
e métodos computacionais, estes podem ser visualizados,
modelados e estudados. Com esta potencialidade, a animação
computacional está a ser utilizada em várias
aplicações:
- Publicidade: o uso desta
técnica nesta área é muito frequente.
Antigamente, a animação era extremamente
difícil de fazer, demorando o profissional vários
dias a concluir o projecto. Com a computação
gráfica, a mudança de texturas, de luminosidade
e de cores é feita através de um simples
rendering. Até por vezes, a resolução
é tão alta que nem se consegue distinguir
se o que estamos a ver é real ou fantasia.
- Arqueologia: a arqueologia pode trazer-nos muita
informação acerca do passado. Os arqueólogos,
com expedições/escavações,
recolhem vários dados, usando-os para fazer um
modelo físico do local explorado. Ora, estes são
frageis e demoram tempo a serem feitos. Com a computação
gráfica, o modelo de um objecto pode ser feito
relativamente rápido, sendo feito uma digitalização
3D ao objecto, sem danifica-lo. Com isto, o arqueólogo
consegue recriar a cena original em que esteve, e visualiza-la
novamente sem no entanto estar presente.
- Arquitectura (DataCad): uma das razoes do desenvolvimento
da realidade virtual foi a sua utilidade para os arquitectos.
Assim, qualquer pessoa consegue antever o seu projecto
(uma casa por exemplo), sem no entanto estar construída.
Desta maneira, todas as falhas do projecto podem ser evitadas,
com um mínimo de gastos possíveis (no caso
da casa, só depois de construída é
que seriam vistos os defeitos desta). Um exemplo pode
ser a apresentação do novo estádio
municipal de Coimbra (visão geral) e das infra-estruturas
a construir (visão mais pormenorizada dos acessos
ao interior) para o EURO 2004.
Embora ainda muitos arquitectos
usem métodos convencionais, não permanecem
duvidas de que a criação de um modelo através
da animação computacional é muito
mais rápido e eficiente.
- Arte: esta é outra área onde a
animação 3D pode ser usada. A quantidade
de efeitos especiais que podem ser criados num computador
é muito maior do que aqueles possíveis num
papel. E ainda, o artista pode controlar a fonte de luminosidade
e a textura com simples cliques no rato. No entanto, ainda
existem coisas impossíveis de fazer com a computação
e que um artista consegue desenhar, mas é apenas
uma questão de tempo
- Química: a química baseia-se na
manipulação de moléculas e átomos,
objectos muito pequenos para serem observados a olho nu.
Assim, a computação gráfica apresenta-se
como uma ferramenta óptima para tal. Muito antes
de se conseguir visualizar um segmento de DNA humano,
o seu estudo já era possível. Em 1983, conseguiu-se
visualizar e simular o comportamento do vírus da
SIDA, por exemplo. Através de dados científicos,
foi criada uma imagem de síntese bastante geométrica
que representava o vírus de forma adequada aos
propósitos do estudo. Para alem da criação
de modelos a partir de dados existentes, podem ser criados
novos modelos moleculares e examinar a forma como estes
se comportariam na realidade. Da mesma maneira, a ligação
de milhões de moléculas seria um processo
demasiado moroso para ser feito à 'mão',
poupando-se tempo com a computação.
- Educação: os professores estão
sempre à procura de novas formas de educar os nossos
homens pequenos, as crianças. Se estas se estiverem
a divertir, a aprendizagem torna-se muito mais fácil.
E é com esta ideia que a animação
3D pode vir a ser útil, com o uso de vídeos.
Mas para alem dos alunos, os docentes também a
podem usar, para fazer demonstrações por
exemplo. Por exemplo, os matemáticos encontram
na computação gráfica uma poderosa
ferramenta de auxilio aos seus estudos. Esta permite a
montagem de imagens de superfícies previstas pelos
matemáticos e o estudo das suas deformações.
Ainda se pode obter representações visuais
de operações que estão a ser desenvolvidas
e paisagens a partir de equações matemáticas
com o uso da geometria fractal.
- Engenharia: o desenho assistido por computador
(Computer Aiding Design - CAD) está em alta na
engenharia. Este sistema é usado para projectos,
desenvolvimento e desenho final, estando tanto presente
em projectos de estradas como na fabricação
de automóveis e aviões (teste de resistência
da estrutura física bem como a eficiência
de equipamentos de segurança), entre outros. Trata-se
de uma ferramenta que automatiza as tarefas repetitivas
que consomem muito tempo. O utilizador informa o que deseja
realizar e o computador desenvolve com rapidez o pedido.
O primeiro software CAD para PC a operar inteiramente
a três dimensões foi o CADKEY. É uma
aplicação desenvolvida por engenheiros americanos
que tem recebido constantes prémios como o sistema
mais amigável e mais poderoso para uso profissional
de projectos em Engenharia Mecânica.
Outro projecto desenvolvido inteiramente em computadores
foi a construção do Boeing 777.
- Divertimento: desde o jogo mais simples ao mais
complexo, todos usem computação e animação
gráficas.
- Filmes: até agora, a animação
computacional tem sido popular por conseguir realizar
efeitos especiais. É por esta razão que
a sétima arte a adoptou. Filmes como 'O exterminador',
'Matrix' e 'X-Men' tiveram imenso sucesso graças
às três dimensões. Geralmente, a computação
gráfica é usada para realizar cenários
que seriam impossíveis ou extremamente difíceis
e perigosas de fazer na realidade, tais como explosões.
'Toy Story' foi o primeiro filme realizado inteiramente
a partir da animação computacional. Outro
filme, sem dúvida espantoso, foi o 'Final Fantasy:
The Spirits Within', com personagens e o ambiente tão
reais que quase que enganava. Aqui a computação
gráfica teve um grande crescimento com este projecto.
- Simulação de voo: uma vantagem
do uso desta técnica nesta área é
permitir que um formando (piloto) possa aprender e cometer
erros, sem por em causa a vida de outros. A outra são
os custos reduzidos (combustível) e rapidez (o
simulador pode usado continuamente) na formação.
O instrutor ganha também, ao conseguir apontar
mais facilmente os erros do seu aluno. Num simulador,
tudo pode ser replicado, desde prédios até
condições temporais. Um exemplo é
o Boeing 777, um dos aviões em que os pilotos,
na primeira vez em que voam com ele, já o sabem
pilotar.
- Ciência forense: os acidentes acontecem
constantemente e a qualquer momento e muitas das vezes
feridos ou ate mesmo mortos. A reconstituirão do
acidente pode ser importante para entender as causas deste.
É aqui que a animação computacional
entra, podendo o cenário ser observado de qualquer
angulo ou perspectiva (condutor, passageiro ou testemunha
ocular).
- Medicina: a área médica encontra
na computação gráfica uma poderosa
aliada. É possível simular o corpo humano
e obter conclusões a partir desta. Utilizando uma
combinação de dados, dentro deles dados
tomográficos (raio X), pode-se reconstituir tri-dimensionalmente
o cérebro humano, focalizando possíveis
distúrbios, tumores, etc., servindo como referencia
fundamental na realização de intervenções
cirúrgicas. Da mesma forma, os especialistas podem
treinar novas técnicas em pacientes virtuais e
o ensino da anatomia humana pode ser feita sem cadáveres.
A cirurgia plástica também ocupa um lugar
neste campo.
- Militar: quer para no exército, na marinha
ou na força aérea, é necessário
muito treino. O uso de equipamento muito valioso e caro
não pode ser feito de qualquer maneira. Assim com
a realidade virtual, os militares poderão aprender,
com um mínimo de custos e com máxima segurança.
- Multimedia
- Simulação: existem acontecimentos
que não podem ser testemunhados por ninguém,
ou por serem demasiados rápidos, ou por serem demasiados
pequenos, ou simplesmente, por estarem demasiado distantes.
No entanto, existem instrumentos (sensores) que captam
esta informação. Com estes dados introduzidos
no computador, a simulação pode ser criada,
sendo possível a alteração das variáveis
utilizadas. Por exemplo, a simulação de
ciclones, tufões, e deslocamentos de massas de
ar é possível através dos efeitos
causados por tais fenómenos.
- Exploração do espaço: o
ponto mais distante que o homem conseguiu atingir foi
a Lua. Mas a curiosidade é um dos maiores pecados
do homem. A ida de um homem a um planeta para conhecê-lo
demoraria muito tempo a ser realizada, existindo, por
isso, satélites, telescópios e outros instrumentos
que permitem observar o espaço. Com estes meios,
consegue-se obter a informação desejada.
Agora, a nossa preocupação é reproduzir
o cenário tal como ele seria se estivéssemos
lá. Este fenómeno é conseguido com
a animação computacional. O estudo de elementos
que possuem dimensões não definidas, como
o buraco-negro, um objecto extremamente maciço
que aprisiona tudo o que está próximo dele,
inclusive a luz também pode assim ser realizado.
A posição e o movimento de galáxias
podem ser avaliados através de simulações.
Esta técnica ainda é geralmente usada também
na projecção de novos satélites.
- Televisão: uma das dificuldades encontradas
na televisão nos anos anteriores era a emissão
imediata da informação que tinha acabado
de chegar à central. Assim, com a ajuda de modelos
pre-feitos, esta tarefa consegue ser atingida em poucos
minutos.
- Desenhos animados (cartoons): a elaboração
dos desenhos animados que nos fazem lembrar a nossa infância
pode ser muito facilitada com a computação
gráfica, para alem de aumentar a qualidade destes,
aproximando-se cada vez mais da realidade.
Conclusão
A Computação Gráfica é parte
da Ciência da Computação e da área
de estudo de alguns aspectos da comunicação
entre o homem e o computador. O aspecto principal abordado
pela Computação Gráfica é o
da comunicação visual no sentido "maquina-homem",
através da síntese de imagens em dispositivos
de saída apropriados.
Em vez de apresentar um resultado numérico na forma
de uma tabela com uma ou duas entradas, esse resultado é
apresentado na forma de gráfico em duas ou três
dimensões (2D ou 3D), facilitando assim a sua interpretação
pelo homem. A síntese de gráficos foi uma
das primeiras aplicações da Computação
Gráfica na época em que a computação
significava essencialmente o cálculo científico.
Com a diversificação das aplicações,
a Computação Gráfica tomou mais importância.
Novas técnicas foram introduzidas para síntese
de desenhos industriais, de plantas, a síntese de
imagens com realismo visual e até mesmo de sequências
de imagens para a realização de animação.
No processo de síntese, as imagens são criadas
a partir do modelo de um objecto ou de uma cena constituída
por vários objectos. Em muitas situações
o modelo é criado interactivamente através
do controle manual de dispositivos de entrada que permitem
a comunicação no sentido "homem-máquina".
Essa interactividade é o segundo aspecto abordado
pela Computação Gráfica.
Apesar de tudo, a Computação Gráfica
tem um enorme potencial não descoberto. O poder de
expressão desta ferramenta de geração
de imagens ainda não foi plenamente utilizado. O
seu amadurecimento resultará em novos recursos de
expressão visual. Esta área buscará
a consolidação destas diferentes ferramentas
de visualização.
Esta é uma necessidade premente, porque a falta de
uma linguagem própria e de recursos flexíveis
de produção tem sido uma barreira ao seu uso
em vários campos de aplicação. Sem
uma análise mais atenta, podemos dizer que isso se
deve ao desconhecimento da tecnologia ou ao alto custo dos
equipamentos. Essas duas razões devem certamente
ter influência. No entanto, uma observação
mais detalhada nos leva a concluir que os sistemas de visualização
atuais ainda não são capazes de atingir alguns
resultados obtidos pelos meios convencionais, nem consequentemente
de atender as necessidades de certas aplicações.
Para superar esses problemas a Computação
Gráfica deveria possibilitar o uso conjunto e simultâneo
de diferentes técnicas de visualização.
Essas técnicas deveriam privilegiar não apenas
o realismo fotográfico, mas também, aspectos
gráficos, aliadas com uma interface que permitisse
uma interacção simples e eficiente. Não
estamos falando sobre o uso do computador como um simples
substituto dos instrumentos convencionais, mas sim como
uma ferramenta de processamento gráfico. Os seus
recursos permitiriam não somente obter imagens de
alta qualidade com vários tratamentos, mas também
propiciariam a realização de experimentações
e simulações diversas com os modelos subjacentes.
Assim, passamos do Sketchpad até os dias atuais em
cerca de 30 anos. Uma evolução bastante rápida
aconteceu. Porém muito esforço ainda deve
ser feito para a Computação Gráfica
atingir a sua maturidade e ter identidade própria.
Dessa aventura devem participar cientistas, artistas e profissionais
de diversas áreas de aplicação, enfatizando
ainda mais o carácter multidisciplinar inerente à
Computação Gráfica.
Glossário
Anti-Aliasing - processo que ofusca as pontas agudas
de uma imagem de forma a disfarçar as pontas denteadas.
Depois de renderizar a imagem, algumas aplicações
usam o anti-aliasing automaticamente. O programa procura
as pontas de uma imagem, e depois borrata os pixels adjacentes
para produzir uma ponta mais suave.
Digitalizar - processo que converte um sinal continuo
(tal como som ou vídeo) em unidades distintas que
possam ser lidas por um computador ou qualquer outro dispositivo
electrónico. Existem várias formas de digitalizar
coisas, temos por exemplo o microfone que digitaliza som.
O scanner consegue digitalizar uma imagem. Uma câmera
digital é capaz de importar vídeo para o computador.
Face - uma face é uma colecção
de 3 ou mais vértices colados de forma a criar uma
superfície triangular. A maioria dos programas 3D
usam faces de 3 lados, mas alguns suportam faces de 4 lados.
Uma colecção de faces é designada de
malha (mesh). Cada face possui uma entidade designada por
normal. A normal define que lado da face é considerado
o interior de um objecto, e que lado é considerado
o exterior.
Fractais - fractais são imagens complexas
geradas por uma computador de uma única formula.
Muitas vezes são coloridas e tem um aspecto agradável
para a vista. Um fractal é criado usando iterações.
Isto significa que uma formula é repetida com valores
ligeiramente diferentes várias vezes seguidas, tomando
em consideração os resultados obtidos na iteração
anterior. No fim os resultados são convertidos num
gráfico. Nos fractais, as pequenas imagens que compõem
a imagem assemelham-se à imagem final.
Hierarquia - quando estamos a modelar uma personagem,
é por vezes útil estabelecer uma hierarquia
entre todos os objectos que constituem a personagem. Para
explicar aquilo que é a hierarquia consideremos um
modelo de um ser humano. Temos 5 dedos. Cada dedo está
conectado à mão. A mão está
conectada ao antebraço que por sua vez está
ligada ao braço. Finalmente este está ligado
ao torso. Se fossemos modelar um braço humano, provavelmente
utilizaríamos a mesma hierarquia.
Cinemática Inversa - se já tivermos
uma hierarquia estabelecida, alguns programas permitem tomar
partido de um processo designado de cinemática inversa
para posicionar e animar as personagens. Ao contrário
da hierarquia comum, na cinemática inversa, só
temos de puxar no objecto que se encontra no fundo da hierarquia
e as restantes junções seguirão. Isto
é possível porque o computador calcula a posição
dos objectos que se encontram mais acima na hierarquia de
acordo com restrições e outros parâmetros
especificados pela personagem.
Malha (mesh) - uma malha consiste numa colecção
de faces que descrevem um objecto. O objecto poderá
ser qualquer coisa, uma esfera, uma pirâmide, um pneu
ou ate um elefante. As faces estão organizadas de
tal forma que estes formam a superfície exterior
do objecto. Pode ser considerado como sendo a pele do objecto.
A malha normalmente aparece sobre a forma de um wireframe,
isto porque o wireframe mostra-nos as faces e o contorno,
não levando muito tempo para renderizar.
Morphing - é um método que faz com
que as imagens transitem. Também é uma dos
métodos mais complexos. Um morph tem a aparência
de duas imagens fundindo uma na outra de uma forma muito
fluida. Explicando termos técnicos, as imagens são
distorcidas e depois extinguidas de uma forma subtil.
Pixel - é o átomo de qualquer imagem
digitalizada. Corresponde ao elemento mais pequeno de ser
desenhado para um monitor. Cada imagem é composta
por uma grelha de pixels. Quando estes pixels são
"pintados" para o ecrã, eles formam a imagem.
A grelha de pixels designa-se por bitmap.
Real Time Rendering - renderizar em tempo real significa
uma actualização do ecrã com a imagem
já renderizada em vez de aparecer uma malha. Renderização
em tempo real é muitas vezes feita em modos de renderização
planos. Isto porque quanto mais complicada a renderização
maior a necessidade computacional, e daí não
se poder renderizar em tempo real. A renderização
a tempo real é o que torna possível a realidade
virtual.
Renderizar (rendering) - é um processo que
o computador utiliza para criar uma imagem de um ficheiro
de dados. A maioria dos programas 3D não são
capazes de desenhar toda cena enquanto esta corre com todas
as cores, texturas, luzes, e sombreado. Em vez disse o utilizador
trabalha com uma malha, uma representação
rude dos objectos. Quando o utilizador estiver satisfeito
com a malha, este renderiza a imagem.
|