3 Mundos Virtuais
Codigo 2 Exemplo de arquivo VRML da primitiva Box #VRML V2.0 utf
3.5 Visualizac¸˜ ao de Cenas Complexas
Um mundo virtual ´e definido atrav´es da composic¸˜ao de cenas que, por sua vez, podem estar compostas de in ´umeros objetos. Na tentativa de reproduzir a realidade ou a imaginac¸˜ao do criador, estes objetos podem ser demasia-
damente complexos. Conseq ¨uentemente, a explorac¸˜ao e entendimento deste
mundo ficam prejudicados, pois se gasta tempo na renderizac¸˜ao destes objetos (ver Capitulo 1).
Esta sec¸˜ao tem relac¸˜ao direta com o sec¸˜ao anterior, pois a usabilidade ´e tamb´em questionada aqui. Se for grande o tempo gasto na renderizac¸˜ao dos objetos que comp˜oem o mundo, a medida que o usu ´ario explora o mundo o seu entendimento como um todo ou de partes dele ser ´a prejudicada. No mundo “real”, n˜ao esperamos os objetos que est˜ao `a nossa volta fiquem “prontos” para serem vistos.
Na tentativa de resolver os problemas acima citados, foram desenvolvidas algumas t´ecnicas; as principais ser˜ao explicadas nas pr ´oximas sec¸˜oes.
3.5.1 Algoritmos de Culling
Algoritmos de Culling evitam que os objetos que n˜ao estejam vis´ıveis ao usu ´ario sejam renderizados. Estes algoritmos evitam o overhead(sobrecarga) gerado desnecessariamente pelo motor gr ´afico na visualizac¸˜ao de objetos que n˜ao ser˜ao vistos (Kofler 2002). Os principais algoritmos de Culling s˜ao:
Back-face Culling: este algoritmo faz com que as geometrias que comp˜oem as faces de tr ´as dos objetos (que n˜ao s˜ao vistas) n˜ao sejam renderizadas. Occlusion Culling: este algoritmo envolve a interac¸˜ao dos dois algoritmos ci- tados anteriormente, e adiciona mais um m´etodo, o de n˜ao renderizar os objetos que estiverem por tr ´as de outros.
A Figura 3.19 (obtida de Cohen-Or et al. 2000) ilustra o funcionamento dos trˆes algoritmos mencionados: os objetos e faces em pontilhado n˜ao ser˜ao renderizados.
Figura 3.19: Algoritmos de cullings
3.5.2 N´ıveis de Detalhamento
N´ıveis de Detalhamento, do inglˆe Levels of Detail (LOD), ´e o termo usado para se referir `a possibilidade de usar diferentes representac¸˜oes de um mesmo
objeto, cada uma com um n´ıvel de complexidade distinto. O sistema de
visualizac¸˜ao seleciona uma representac¸˜ao particular de cada objeto (Constan- tinescu 2000). Constantinescu (2000) apresenta as principais t´ecnicas de selec¸˜ao de LODs, as quais s˜ao descritas a seguir:
Culling: baseados em certos crit´erios (como apresentado anteriormente) s˜ao removidos objetos ou partes deles.
ponto correto para ocorrer esta troca sem causar uma mudanc¸a abrupta percept´ıvel de objetos pelo usu ´ario.
Tamanho: leva em considerac¸˜ao a incapacidade do olho humano para perce-
ber detalhes de objetos pequenos. Pequenos objetos s˜ao desenvolvidos com poucos detalhes e grandes objetos com uma maior riqueza de de- talhes. Esta t´ecnica ´e geralmente utilizada com a t´ecnica da Distˆancia, pois objetos distantes do observador ser˜ao apresentados em tamanho re- duzido.
Excentricidade: leva em considerac¸˜ao a capacidade do olho humano em n˜ao
perceber objetos fora do centro do campo de visualizac¸˜ao. Desta forma, os objetos que est˜ao fora do centro de visualizac¸˜ao s˜ao apresentados com menos detalhes.
Profundidade de Campo: a representac¸˜ao de um objeto ´e selecionada base-
ada na capacidade do olho humano em focar tendo como referˆencia a profundidade. Objetos que est˜ao fora do campo de profundidade ser˜ao apresentados com poucos detalhes.
Velocidade: esta t´ecnica ´e baseada na capacidade limitada do olho humano
em fixar-se em objetos que se movem. Objetos que se movem muito r ´apido aparecem borrados. Nestes casos, os objetos s˜ao apresentados com poucos detalhes. Se a velocidade diminui, o objeto ´e apresentado com um n´ıvel de detalhamento maior.
Taxa fixa de quadro: navegando em um ambiente, a taxa de quadros (ou fra- mes em inglˆes) ser ´a maior, e portanto os objetos que comp˜oem o ambiente
s˜ao apresentados com menos detalhes.
H ´a tamb´em as t´ecnicas de gerac¸˜ao de LODs, as quais podem ser usadas sozinhas ou em combinac¸˜ao com outras, e para algumas destas t´ecnicas h ´a v ´arios algoritmos. As principais t´ecnicas s˜ao (Constantinescu 2000):
Modelos de Iluminac¸˜ao: atrav´es do uso de diferentes t´ecnicas de iluminac¸˜ao,
os detalhes dos objetos podem ser aumentados (ou ressaltados) e diferen- tes n´ıveis de detalhamento podem ser obtidos. Entretanto, estas t´ecnicas requerem grande poder de processamento.
quada.
Simplificac¸˜ao Poligonal: como o pr ´oprio nome diz, as t´ecnicas enquadradas
aqui simplificam a geometria poligonal dos objetos distantes, pequenos ou partes dos mesmos que n˜ao s˜ao importantes, sem uma perda signifi- cativa do conte ´udo visual (Luebke 2001). A Figura 3.20, obtida de Erik- son (2000), ´e um exemplo de objetos gerados pela simplificac¸˜ao poligonal. O primeiro coelho apresentado (da esquerda `a direita) ´e o objeto original,
as vers˜oes conseq ¨uentes do objeto s˜ao simplificac¸˜oes do objeto anterior.
A Figura 3.21 apresenta, para este exemplo, os LODs do coelho que s˜ao lidos de acordo com a posic¸˜ao do usu ´ario ao coelho, al´em da vers˜ao origi- nal do coelho que tamb´em ´e lida (ou selecionada) se o usu ´ario encontra-se
pr ´oximo a ele; sabendo que a Distˆancia 1>Distˆancia 2 >Distˆancia
3 >Distˆancia 4.
Figura 3.20: Exemplo de LOD
Em VRML, a linguagem usada neste trabalho, LODs s˜ao implementados
atrav´es do n ´o LOD, onde cada vers˜ao (campo level) ´e selecionada de acordo
com a distˆancia ao observador (definido no camporange). A sintaxe do n ´o LOD
em VRML ´e apresentada no C ´odigo 4. O campo center especifica um novo
sistema de coordenadas que deve ser tomado como referˆencia. A construc¸˜ao de cada vers˜ao ´e feita manualmente pelo programador, causando um esforc¸o
adicional; por isto ´e dif´ıcil encontrar mundos VRML com LODs dos objetos
presentes. Este trabalho gera automaticamente os LODs dos objetos, solucio- nando o problema da gerac¸˜ao manual dos LODs pelo programador.
Um exemplo do n ´oLOD ´e apresentado no C ´odigo 5. Neste exemplo, quando
o usu ´ario estiver a uma distˆancia menor que 10, ele ver ´a uma esfera; a partir da posic¸˜ao 10 o usu ´ario ver ´a uma esfera de raio menor que a original.
Distância 1 Distância 2 Distância 3 Distância 4
Figura 3.21: LOD selecionado para cada posic¸˜ao do usu ´ario em relac¸˜ao ao objeto (coelho).
Codigo 4 Sintaxe do n ´oLOD de VRML