http://valcar.net

Página principal Curso de computação gráfica Músicas Galeria Download Links Perguntas e respostas

FAQ (Frequently Asked Questions)

Antes de enviar sua pergunta, verifique se sua dúvida já foi respondida nesta seção.


Pergunte...val"arroba"directnet"ponto"com"ponto"br

Existe algum livro sobre OpenGl em português?

Que eu saiba não existem livros sobre OpenGl em português. Na verdade, quem quiser mesmo trabalhar com OpenGl, terá que aprender inglês, já que esta é a língua de comunicação internacional na área de informática. Verifique a página de download sobre material disponível em OpenGl. Há também na web um pequeno manual de OpenGl preparado por Bruno Schneider (professor de CG na UFLA). Eu recomendo os seguintes livros para iniciantes e programadores em OpenGl:
  • Mason Woo, Jackie Neider, Tom Davis, Dave Shreiner, OpenGL Architecture Review Board: OpenGL(R) Programming Guide: The Official Guide to Learning OpenGL, 3rd edition, 800 pages, Addison-Wesley Pub Co, ISBN: 0201604582, 1999.
  • Dave Shreiner (Editor), Opengl Architecture Review Board: OpenGL(R) Reference Manual: The Official Reference Document to OpenGL, 3 edition, 704 pages, Addison-Wesley Pub Co, ISBN: 0201657651, 1999.
  • Richard S. Wright Jr., Michael R. Sweet: OpenGL SuperBible, Second Edition (SuperBible) 2nd Bk+cdr edition, 696 pages, Waite Group Pr; ISBN: 1571691642, 1999.

Como se faz rotações e translações em OpenGl?

As rotações em OpenGl são cumulativas, isto é, cada vez que for usado o glRotate ou glTranslate, a transformação é aplicada sobre a transformação que havia anteriormente. A matriz de transformação é armazenada num stack, que pode ser deslocado pelas funções glPushMatrix e glPopMatrix. Portanto, para se aplicar a transformação num objeto deve-se salvar a matriz de transformação, aplicar a transformação desejada no objeto e, em seguida, recuperar a matriz inicial:
glPushMatrix(); // Salva a matriz atual
...
glRotate(...); // Aplica transformações de rotação
glTranslate(...); // e/ou translação, etc.
... // Aqui são criados os objetos que serão transformados.
glPopMatrix. // Recupera a matriz inicial.

Qual o formato de armazenamento gráfico nos padrões de imagens como .bmp, .gif, .tif e .jpg?

Cada padrão de armazenamento gráfico adota o seu próprio formato, de forma a conseguir uma maior qualidade de representação ou então uma maior compactação dos dados. Por exemplo, o formato bmp possui uma alta qualidade de imagem, porém pouca ou nenhuma compactação. Já o formato jpg possui alta taxa de compressão, embora com um pouco de perda na qualidade. Informações sobre os formatos de armazenamento podem ser obtidos no site Wotsit, que contém formatos de vários tipos de arquivos, e não apenas os formatos gráficos.

Como instalar o suporte de OpenGL no computador?

Os sistemas operacionais da Microsoft, a partir do Windows 95 OSR2 já vêm com suporte para OpenGl - não é necessário instalá-lo. Se o sistema operacional for anterior ao Windows 95 OSR2 ou então caso se deseje trocar o driver de OpenGl, pode-se usar o suporte da Silicon Graphics ou instalar outro driver de OpenGl, disponível no site oficial do OpenGl. Se o computador possuir uma placa de vídeo 3D (NVidia, Voodoo, Matrox, Rendition, Savage) deve-se utilizar o driver fornecido pelo próprio fabricante. Não se deve esquecer de verificar sempre a versão mais atualizada do driver na página do fabricante.

O que é VRML?

VRML é um acrônimo de Virtual Reality Modeling Language. Consiste, basicamente, de uma pseudo-linguagem de programação e modelagem de objetos tridimensionais. Por ser uma linguagem, o VRML é bastante utilizado na World Wide Web (Internet), pois permite que uma animação possa ser realizada no computador do cliente, a partir do arquivo fonte enviado pelo servidor Web. O VRML é executado pelo browser do cliente (Netscape ou Internet Explorer) utilizando para isso um plugin ( Cortona, Cosmo), e o driver de OpenGl ou DirectX do próprio sistema operacional do cliente. Mais informações sobre VRML podem ser obtidas no web3D Consortium. Outros plugins para VRML podem ser encontrados no The web3D Repository.

Pode-se usar OpenGl em Delphi?

Sim, pode-se usar OpenGl em quase todas as linguagens de programação. Veja na seção download um pequeno manual sobre o uso de OpenGl em Delphi.

Qual a diferença entre raytracing e método poligonal (OpenGl)?

Existem diversas diferenças entre os dois métodos de geração de imagens 3D. Basicamente o raytracing (ou traçagem de raios) obtém a cor e a iluminação de cada pixel da imagem, a partir das características do objeto 3D que está sendo observado através deste pixel. Já o método poligonal, empregado no OpenGl e no DirectX, projeta cada polígono que compõe o objeto na tela, e preenche o polígono com a cor e a iluminação associada a este polígono. Portanto, o raytracing varre a imagem ponto a ponto, enquanto que o método poligonal traça polígonos um a um. Em geral o algoritmo de raytracing produz imagens mais fotorealistas do que os métodos poligonais. Porém o custo disso é o elevado tempo de processamento, o que impede, na maioria das aplicações, a utilização de raytracing em tempo-real ou interativo.

Como fazer animações em raytracing?

As animações em raytracing são realizadas quadro-a-quadro (ou stop motion). É necessário, portanto, gerar todos os quadros da animação antes de agrupá-los. O procedimento é mais ou menos assim:
  • Faz-se um esquema de como vai ser a animação (Por exemplo: digamos que a animação a ser realizada consista de palavras 3D que entram pela lateral esquerda, passam pela frente e depois desaparecem pela lateral direita da tela).
  • Compõem-se os elementos gráficos 3D necessários para a animação. (palavras, ambiente de fundo, efeitos especiais, etc.)
  • Produz-se a seqüência animada quadro a quadro, isto é, gera-se o primeiro quadro da animação (com a letras cortadas, entrando pelo canto esquerdo) até o quadro final, com as letras saindo pelo lado direito. O número de quadros necessários depende da utilização da animação: se for uma animação para computador, cerca de 15 quadros por segundo da animação serão suficientes. Caso seja para animar uma página da web, 5 ou 10 quadros por segundo bastam. A movimentação dos objetos pode ser efetuada manualmente, isto é movendo-se o objeto na cena quadro a quadro, ou então de forma automática. Alguns programas (3D Studio, Pov) permitem estabelecer uma trajetória para os objetos ou mesmo para a câmera.
  • Compõe-se a animação com um programa específico que agrupa os quadros (ou imagens estáticas) numa animação do tipo .avi, .mpg ou .gif. Exemplos destes programas são o Fast Movie Processor (uso gratuito) ou então o GIF Movie Gear (shareware).

Há algum manual para uso do Pov em português?

Ainda não. Há um livro sobre o Pov que foi traduzido para o português:
  • Wells, D.; Young, C.; Farmer, D. Criações em Ray Tracing. São Paulo, Berkeley, 1995.
Este livro foi feito para a versão 1.0, e encontra-se com a edição esgotada. O melhor a fazer é aprender um pouco de inglês, e consultar o próprio help do Pov, que é excelente!

Quando faço um desenho simples (como por exemplo uma esfera) no Pov, aparecem degraus e serrilhados na imagem. Como eliminá-los?

Para eliminar o serrilhado ou aliasing (pronuncia-se "aláizin"), deve-se utilizar os recursos de antialiasing do Pov. Para isso deve-se criar um arquivo novo (File / New) e inserir o seguinte:
Antialias = on
Sampling_method = 1
Antialias_Threshold = 0.3
Antialias_Depth = 3
Input_File_Name = nome_do_arquivo_pov.pov
e salvar este arquivo (File / Save as) com o nome: nome_do_arquivo_pov.ini, onde nome_do_arquivo_pov é o nome do arquivo contendo o programa fonte do Pov. Deve-se utilizar o arquivo .ini para gerar a cena, e não o arquivo com a extensão .pov. Este arquivo também é executável a partir do menu do Pov (isto é Render / Start rendering). O significado destas variáveis é o seguinte:
  • Antialias pode ser on ou off. Só será gerado anti-alias se a variável for on.
  • Sampling_method pode ser 1 ou 2. 1 significa método adaptativo e não recursivo, enquanto que 2 significa método adaptativo e recursivo. Se estiver na dúvida, use o 1.
  • Antialias_Threshold dá bons resultados quando fica entre 0.2 e 0.4.
  • Antialias_Depth pode valer de 1 a 9. Use 3 ou 4 quando Sampling_method for 1, e 1 ou 2 quando Sampling_method for 2.
Em geral não é necessário definir todas estas variáveis, porque seus valores default já são ideais. Basta fornecer Antialias = on.

Há ainda duas outras formas de usar antialiasing. Uma delas é com o Moray, que permite configurar a restituição (render) para ser realizada com ou sem antialiasing na janela de configuração.

A outra forma é através da própria janela do Pov. Há, na barra de ferramentas do Pov, uma caixa de opções à esquerda, onde geralmente se lê: [320x240, No AA]. Isto quer dizer que a imagem final terá uma resolução de 320 por 240 pontos, sem antialiasing (No AntiAlias). Basta selecionar, por exemplo, [320x240, AA 0.3], gerar a cena e pronto!. Pode-se até mesmo configurar a forma de restituição desejada. No menu Render / Edit Settings, onde aparecer INI File, deve-se selecionar o botão Edit. No arquivo de inicialização, deve-se inserir a resolução desejada para a cena, usando as variáveis mostradas acima. Em seguida, deve-se salvar o arquivo, e iniciar o Pov novamente. A nova resolução, junto com os parâmetros selecionados, aparecerão também no menu de opções.

http://valcar.net