Quando chamarmos esse arquivo no Geomview, você irá provavelmente precisar desabilitar
a caixa associada (via painel de aparência), caso contrário você pode não
estar apto a ver os pontos.
4.4 Como posso tornar os pontos mais facilmente visíveis?
Por padrão, a espessura de linhas e pontos no Geomview é 1. Essa espessura pode
estar ok para a maioria das linhas, mas faz com que cada ponto ocupe somente uma
pixel na tela do computador. Você pode mudar a espessura das linhas e dos pontos
adicionando um rótulo de aparência no topo de seu arquivo geométrico que se parece
com isso:
appearance
linewidth 4.
Nesse caso, temos aumentado nosso tamanho de linha/ponto para 4 e quaisquer pontos
que tivermos em nosso arquivo irá agora aparecer como pequenos discos. Você pode também mudar
a largura da linha usando o painel Appearance. O que Geomview faz atualmente
é tratar cada ponto como um polígono de muitos lados que aproxima-se de um disco.
Se você deseja que os pontos como objetos sólidos tridimensionais, tais como
pequenas esferas, você pode usar um método completamente diferente para representá-
los: um objeto INST com múltiplas transformações. Isso permite a você especificar uma
aparência geométrica arbitrária para ser usada para representar pontos. Por
exemplo, o seginte arquivo representa os três pontos (1.5, 2.0, 0.1),
(1.0, 0.5, 0.2), e (0.5, 0.3, 0.2) usando pequenos cubos:
INST
geom {
OFF
8 6 12 # VFA
-0.05 -0.05 -0.05 # V0
0.05 -0.05 -0.05 # V1
0.05 0.05 -0.05 # V2
-0.05 0.05 -0.05 # V3
-0.05 -0.05 0.05 # V4
0.05 -0.05 0.05 # V5
0.05 0.05 0.05 # V6
-0.05 0.05 0.05 # V7
4 0 1 2 3 # F0
4 4 5 6 7 # F1
4 2 3 7 6 # F2
4 0 1 5 4 # F3
4 0 4 7 3 # F4
4 1 2 6 5 # F5
}
transforms
1 0 0 0 0 1 0 0 0 0 1 0 1.5 2.0 0.1 1
1 0 0 0 0 1 0 0 0 0 1 0 1.0 0.5 0.2 1
1 0 0 0 0 1 0 0 0 0 1 0 0.5 0.3 0.2 1
#
# these are the matrices:
#
# 1 0 0 0 1 0 0 0 1 0 0 0
# 0 1 0 0 0 1 0 0 0 1 0 0
# 0 0 1 0 0 0 1 0 0 0 1 0
# 1.5 2.0 0.1 1 1.0 0.5 0.2 1 0.5 0.3 0.2 1
O objeto OFF entre "geom {" e "}" é o cubo. As três linhas
após a palavra "transforms" are 4x4 transforms, one for each point. Note
that you can use any valid OOGL expression for the geometry; for
example, if you want to use small dodecahedra to represent points, you
could repace the above OFF object with the following, which references
the dodecahedron object in the file dodec.off (distributed with
Geomview), scaling it by 0.05:
INST
geom {
INST
geom { < dodec.off }
transform
.05 0 0 0
0 .05 0 0
0 0 .05 0
0 0 0 1
}
transforms
1 0 0 0 0 1 0 0 0 0 1 0 1.5 2.0 0.1 1
1 0 0 0 0 1 0 0 0 0 1 0 1.0 0.5 0.7 1
1 0 0 0 0 1 0 0 0 0 1 0 0.5 0.3 0.2 1
Esteja ciente de que quanto mais complicada geometria você usa para seus pontos,
mais tempo irá demorar o Geomview para atualizar a janela. Isso pode ser
importante se você está pensando em trabalhar com um grande número de pontos, nesse caso
você deve conduzir-se na direção de aparências de ponto muito simples o usar o método de
mostrar pontos no formato VECT.
4.5 Como posso colocar texto em uma cena?
Você tem duas opções:
- Você pode usar o módulo externo Labeler (rotulador-versão SGI), que fornece a você uma GUI para
digitar texto e selecionar fonte: ou vetor ou uma versão
poligonalizada de uma fonte instalada. Todavia, você precisa posicionar o texto em uma cena
tridimensional, ou manualmente ou com algum outro módulo como o módulo
Transformer (SGI).
- Você pode usar o programa utilitário de linha de comando hvectext de fones vetoriais de
Hershey, que permite a você especificar uma posição para o texto.
Feito isso você deve chamar o arquivo resultante no Geomview.
Se você não precisa que o texto seja um objeto tridimensional na cena, você pode
criar uma imagem
http://www.geomview.org/FAQ/answers.shtml#images ou um arquivo postscript
http://www.geomview.org/FAQ/answers.shtml#ps
da cena e então usar um editor de imagens como o Illustrator,
Showcase, ou o XPaint3 para colocar o texto.
4.6 O Geomview faz visualização de volume?
Não, Geomview é pensado para fazer visualização de superfícies. Você pode ou
criar uma isosuperfície e então vê-la usando o Geomview, ou usar umpacote de
visualização de volume. O toolkit vtk livre http://www.vtk.org/
de visualização tem suporte extensivo para visualização de volume, como faz também
os pacotes comerciais como AVS http://www.avs.com, Iris Explorer
http://www.nag.co.uk/Welcome\_IEC.html, or IBM Data Explorer
. http://pic.dhe.ibm.com/infocenter/dataexpl/v8r2/index.jsp. O Volvis
http://labs.cs.sunysb.edu/labs/vislab/volvis/ é um software livre especificamente para
visualização de volume.
4.7 Pode o geomview fazer mapas de textura?
Sim, no release 1.6 e mais novos, mas somente na versão OpenGL, não na
versão X11.
4.8 Por que Geomview não lê meu arquivo OFF?
Isso é devido provavelmente um interpretação diferente de como um OFF deve
ser escrito. Geomview indexa vértices iniciando em zero, enquanto alguns outros
programas comprovadamente iniciam em um. O seguinte programa na linguagem C irá converter
um arquivo OFF no formato texto puro indexado a partir da unidade em um arquivo OFF indexado a partir do zero.
4
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void) {
char s[256];
int v, f, i, n, t;
gets(s);
if (strcmp(s, "OFF")) {
fprintf(stderr, "not an OFF\n");
exit(1);
}
puts(s); gets(s); puts(s);
sscanf(s, "%d %d %d", &v, &f, &i);
for (i=0; i!=v; ) {
gets(s);
if (strlen(s)) {
puts(s); i++;
}
}
for (i=0; i!=f; i++) {
scanf("%d", &n);
printf("\n%d", n);
for (v=0; v!=n; v++) {
scanf("%d", &t);
printf(" %d", t-1);
}
}
printf("\n");
return 0;
}
4.9 Como posso colocar movimento em uma sequência de arquivos do Geomview/OOGL?
Você pode tentar usando o Animator, um módulo externo que é distribuído
com todas as versões do Geomview. Com Animator, você pode dizer ao Geomview para
ler uma sequência de arquivos OOGL e então exibir essa sequência
avançando, voltando e também em passo de quadro usando interfaces semelhantes ao
VCR5.
Para usar o Animator clique na entrada Animator no navegador de módulos externos
do Geomview. Se o Animator não aparecer no navegador, então o Geomview
provavelmente não foi instalado adequadamente. Para mais informação sobre
Animator leia o painel info disponível através do programa ou a
página de manual (digitando "man animate").
5 Saída
5.1 Como posso criar uma animação de vídeo (MPEG/ QuickTime/animated GIF)?
Existem muitas variantes dessa quetão:
- primeira variante
> Gostaria de gravar uma sequ\^encia de arquivos instant\^aneso no formato ppm de um \'unico
> objeto no formato off enquanto esse objeto est\'a sendo rotacionado para converter a sequ\^encia
> em um filme. O \'unico m\'etodo que conhe\c{c}o \'e rotacionar o objeto
> lentamente com o mouse, parar omovimento, e gravar cada quadro
> individualmente. Existe um m\'etodo mais r\'apido e autom\'atico, tal como
> um acript de comandos. Se existe, voc\^e tem um exemplo de script de comando que possa
> ser modificado?
Duas opções:
- segunda variante
> Tenho usado Geomview para ver filmes com ferramentas de anima\c{c}\~ao. como posso
> converter aquele filme para ooutro formato de anima\c{c}\~ao (e.g. um GIF
> animado) de forma que possa coloc\'a-lo em uma web page, vis\'ivel para
> algu\'em sem Geomview?
É verdade que StageTools irá fazer isso e muito mais também. Mas
existe também um caminho muito fácil de fazer isso diretamente dentro do módulo
Animator: a função Command irá executar um comando GCL após
cada quadro. Então para pegar automaticamente instantâneos a cada quadro, você deverá
pressionar o botão Command e digitar alguma coisa como
(snapshot c0 /tmp/foo\%03d.rgb)
no campo de texto. Então quando você pressionar play você irá ver que agora
agitação uma vez que o Animator éstá gravando uma imagem offf para o disco de cada vez. Você pode
desejar habilitar o botão de rádio "Once" de forma que o Animator pare após
executar cada quadro uma única vez. Então você pode usar seu programa
escolhido para criar um gif animado ou filme do quicktime a partir desso pacote
de arquivos de imagem. Por exemplo, nos SGIs você pode fazer isso com o
"mediaconvert".6
5.2 Como posso gravar uma figura de exatamente o que vejo em uma janela de câmera?
Garanta que a janela de câmera que você deseja seja a janela ativa no momento da foto, então selecione
o item "Save" do menu "File" no painel principal (ou use a tecla de atalho
" > "). No painel que aparece, existe uma caixa de eopção que é ajustada para
Command por padrão. Selecione uma das opções de instantâneo, insira o
nome do arquivo na entrada Selection, e clique "OK".
Na versão SGI, você tem três escolhas de instantâneo de imagem: SGI screen,
PPM screen, e PPM software. Ambas as opções screen literalmente gravam os
os pixels de tela em um arquivo, ou no formato SGI (também chamado RGB) ou em formato PPM. A
opção PPM software irá reler a imagem em um espaço temporário de armazenagem fora da tela
usando o software de releitura a partir da versão X vanilla do Geomview.
Dessa forma, pode não ser idêntica pixel a pixel a imagem gravada em relação à imagem que você vê.
Na versão X11, você tem somente as opções PPM.
5.3 Como posso fazer um verdadeiro arquivo PostScript que seja bom em múltiplas resoluções ao invés de apenas converter um bitmap em um PostScript?
Garanta que a janela de câmera que você deseja seja a janela ativa no momento da foto, então selecione
o item "Save" do menu "File" no painel principal (ou use a tecla de atalho
" > "). No painel que aparece, existe uma caixa de eopção que é ajustada para
Command por padrão. Selecione a opção PostScript snapshot, insira o
nome de arquivo na entrada Selection, e clique "OK".
Esse método tem vantagens e desvantagens, comparado ao método de gravar um
bitmap de imagem. A vantagem é que o resultado é independente da resolução
- você pode imprimir em uma impressora de alta resolução e não ver qualquer aresta
quadriculada. As desvantagens são que nosso releitor PostScript não pode fazer
sombreamento suave e usa o algorítmo de painter para remoção de superfícies
escondidas. Essa última observação significa que objetos que se interseptam e algumas outras
cenas de condicionamento hostíl irão ser desenhadas incorretamente, ou mesmo que objetos
próximos irão ser desenhados atrás de objetos distantes. Muitas vezes funciona, mas não
sempre.
5.4 Por que meu instantâneo PostScript está péssimo?
Veja a resposta anterior.
5.5 Como fazer uma imagem de alta qualidade com RenderMan?
Se você tem o Photorealistic Renderman (um prodto comercial da Pixar), ou
o BMRT (Blue Moon Rendering Toolkit, uma implementação de domínio público), você
pode criar imagens de alta qualidade com transparência e iluminação
mais precisa nas versões SGI e X11. Paa fazer isso, traga o painel Save
e selecione "RMan [->tiff]" a partir das opções de gravar. Insira um nome de arquivo
e clique "Ok". Aparecerá um janela de shell e mude o diretório para onde
você gravou o arquivo. Digite "render /nomearquivo/" (onde /nomearquivo/ é o nome
do arquivo que você gravou). Quando terminar, você irá ter uma imagem de alta qualidade
em "/nomearquivo/.tiff". Para criar uma imagm de alta resolução (para
reduzir arestas quadriculadas), edite o arquivo que você gravou. Deve existir uma linha
adiante das quinze linhas a partir do topo que inicia-se com "Format", i.e.
"Format 450 450 1". Os primeiros dois números são a resolução da
imagem criada. Modifique esses dois números para aqueles que você gostaria (você deve manter a razão
enre os números originais para evitar distorção), então reler o arquivo novamente.
6 Questões específicas do X
6.1 Como posso aumentar a velocidade da versão X11?
Veja a discursão de opções de renderização na questão seguinte.
6.2 O que fazem os controles Z-Buffer e Dithering no painel de câmeras?
Esses controles permitem a você mudar como a versão para X11 redesenha objetos.
A caixa de verificação dithering, que somente aparece quando executando em um display de
oito bits, permite a você habilitar ou não a mistura de cores. Dithering é o
método pelo qual Geomview utiliza umpequeno conjunto de cores (abaixo de 217) para
mostrar qualquer cor que você desejar. Isso é feito pela colocação de pixels de pequenas quantidades
de cores diferentes próximas umas das outras permitindo que seus olhos harmonize-as
juntas. Desafortunadamente, isso tem um custo computacional para ser feito.
Desligando a mistura de cores irá aumantar a velocidade de processamento de imagens, mas as cores usadas não irão
se exatamente o que você deseja. Dependendo de sua cena, pode ser uma
preço a pagar aceitável.
O menu Z-Buffer que aparece permite a você selecionar entre três diferentes
métodos esconder linhas e remover superfície: z-buffering, depth sort, e
none. Z-buffering is the most accurate and enables the near and far
clipping planes. Depth sort uses less computing, but will be inaccurate
if objects intersect (polygons will pop in front when they should be
partially obscured) and in certain other circumstances (long, narrow
polygons close to other polygons are one example). Depending on your
scene, using this method could look just the same as z-buffering but be
much faster. The "None" option turns off all hidden line/surface
removal. This is only recommended for a scene which consists of just
lines in one color.
6.3 What does "Not enough colors available. Using private colormap" mean?
This happens when using the X11 version on an eight bit display
(currently common on workstations). An eight bit display can only show
256 colors simultaneously. These colors are shared by all the programs
running. Once a colorcell has been allocated by an application, its
color is fixed. Geomview tries to grab many colors when it starts. If it
fails to get them, it prints this message and uses a private colormap. A
private colormap means that Geomview now has access to all 256
colorcells. Unfortunately, these colors will only be displayed when the
cursor is inside one of Geomview's windows. The switching of colormaps
when the cursor enters and leaves the windows will give a technicolor
look to the rest of the display.
If you don't like the technicolor effect, you will have to quit the
programs which are using up colormap space. Examples of programs which
use lots of colormap space are background pictures, image viewers,
visualization software, and WWW browsers.
6.4 What does "Shared memory unavailable, using fallback display method" mean?
The X11 version of Geomview uses the shared memory extension to move
images quickly between the program and the X server. However, this
method of communicating with the X server only works when running
Geomview on the same machine as the display. If Geomview can't use
shared memory, it prints this message and goes back to using standard X
calls. Everything will work the same, it will just run much slower,
especially if you're running over the network.
6.5 Why do I get compiler errors about including files Xm/*.h?
You're trying to compile the X11 version and the compiler can't find the
Motif header files. If you have Motif but the headers are in a
nonstandard place, change the "SYSCOPTS" in your
makefiles/mk.$MACHTYPE file. If you don't have Motif, you won't be
able to compile Geomview. In this case, use one of the binary
distributions, if you can.