====== 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 512x512 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 [[http://books.google.pt/books?id=080IiSFHZawC&lpg=PA201&ots=6mX0JAYoyw&dq=glmatrixmode%20gl_texture&hl=en&pg=PA201#v=onepage&q=glmatrixmode%20gl_texture&f=false | aqui]]) ==== Efeitos especiais ==== === Como implementar transparências? === * http://www.opengl.org/resources/faq/technical/transparency.htm ==== 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.