Laboratório de Aplicações com Interface Gráfica
Esta página está em construção. Enquanto não atinge a sua versão final, irão sendo aqui colocadas algumas perguntas mais frequentes e respectivas respostas relativamente a OpenGL e ao desenvolvimento dos trabalhos. Possíveis contribuições podem ser enviadas por e-mail para o autor.
FAQ's
Texturas
As texturas não aparecem, ou aparecem distorcidas, quando uso RGBPixmap
- Verificar:
- Se estão colocadas na directoria usada na execução (em VS por omissão a mesma onde está o ficheiro do projecto)
- Se as suas dimensões são múltiplos de quatro (é uma limitação do RGBPixmap que causa distorção)
- Se as suas dimensões não são demasiado grandes (texturas maiores que 512×512 são exageradas para o tipo de projectos em causa, e em algumas configurações podem não ser bem suportadas)
Como controlo a aplicação de texturas nas quádricas?
* As quádricas geram as suas próprias coordenadas de textura, quando esse modo é activado utilizando glQuadricTexture(). No entanto, não podem ser alteradas. Para mapear texturas de forma controlada, a solução é gerar a própria geometria usando primitivas do OpenGL, e especificar as coordenadas de textura. Alternativamente, podem manipular as coordenadas de textura aplicando transformações à matriz de transformações de texturas (mais informação aqui)
Efeitos especiais
Como implementar transparências?
Específico Visual Studio
Tenho erros de compilação que referem um "libcmtd.lib" (ou semelhante). O que faço?
- Em alguns casos, o tipo de projecto criado inclui por omissão bibliotecas que depois entram em conflito com outras incluidas posteriormente.
- Solução: configurar o projecto para ignorar as bibliotecas por omissão que dão origem a esses conflitos (a “libcmtd.lib” é uma delas). Isso é feito em “Project”→“Properties”→“Linker”→“Input”→“Ignore specific library”.
Tenho erros que referem "Unresolved external symbol". O que é que isso quer dizer?
- Estão a ser referidas funções no código que pertencem a uma biblioteca que não está a ser incluída ao fazer o “linking” do projecto. Por exemplo, usar funções da GLUI sem incluir o glui32.lib no projecto.
- Solução: tentar identificar pelo nome das funções que aparecem nos erros qual é a biblioteca em falta, e adicioná-la em “Project”→“Properties”→“Linker”→“Input”→“Additional dependencies”
Tenho um erro relacionado com o "Manifest file" que não me permite executar o programa
- Este erro normalmente ocorre quando se tentam usar bibliotecas compiladas numa versão do Visual Studio diferente da que está a ser usada para compilar o nosso projeto. Por exemplo, utilizando versões do TinyXML compiladas em VS 2008, num projeto em VS 2010.
- Uma solução comum, embora não ideal, é desactivar a geração do manifest ( Propriedades do projecto → Linker → Manifest File → Generate Manifest → “No” seguido de Apply).
- Outra solução é usar uma versão da biblioteca compilada na mesma versão (no caso do TinyXMl está disponível no Moodle de LAIG uma versão para VS 2010).
- Uma terceira solução é recompilar a biblioteca na mesma versão do Visual Studio, se for possível.