Estou usando Java com JOGL para criar gráficos 2D aprimorados em OpenGL. As operações gráficas que utilizo não são nada sofisticadas e devem ser suportadas por quase todas as placas gráficas recentes. Por exemplo, meu jogo roda muito bem em um Netbook.
Eu esperava que o jogo fosse executado na maioria dos computadores. Funciona bem em meus próprios computadores. No entanto, achei alguns computadores com desempenho muito lento (aparentemente, fallback de software, produzindo cerca de 2 quadros por segundo). Eu executei um aplicativo LWJGL em um desses computadores. Ele não roda de forma alguma (ele relata algo como org.lwjgl.LWJGLException: Formato de pixel não acelerado, você pode encontrar vários tópicos do fórum reclamando sobre isso, mas sem soluções aparentes, exceto a sugestão de que é um problema de driver). Outro software OpenGL também não parece funcionar. Também descobri que minha versão em Flash do jogo com exatamente os mesmos efeitos gráficos funciona muito bem em tela cheia no mesmo computador. O computador em questão possui uma placa ATI recente, mas infelizmente não tenho acesso ao gerenciador de drivers.
O problema parece bastante amplo. Eu acho muito lamentável que o OpenGL nem sempre forneça acesso aos recursos gráficos encontrados na maioria dos computadores. Isso o torna menos atraente para jogos 2D casuais, que eu espero executar em qualquer computador.
Algum de vocês encontrou esse problema e conseguiu corrigi-lo? AFAIK, tanto a NVidia quanto a ATI fornecem o OpenGL como parte de seus conjuntos de drivers padrão, mas talvez haja algumas exceções? Esse problema é causado por drivers de terceiros que não suportam o OpenGL e o problema pode ser corrigido com a instalação de drivers melhores? Quantas outras placas gráficas existem por aí sem os drivers OpenGL?
EDIT : Como observação final, posso concluir que o OpenGL simplesmente não é bem suportado em máquinas Windows. A Microsoft parece ter feito o possível para mantê-lo fora da plataforma, por exemplo, deixando deliberadamente de fora os drivers OpenGL em alguns pacotes de drivers do Windows. Obtenha os drivers do fornecedor e você obtém o OpenGL; obtenha os drivers padrão que o Windows baixa para você e você não. Isso tem causado problemas para os outros também. Por exemplo, para implementar o WebGL, os navegadores da Web usam Angle , que é um emulador OpenGL ES para DirectX. Então, o que realmente precisamos é algo como Angle, apenas para o OpenGL completo.
Respostas:
Esse é um problema comum mesmo em novas GPUs quando os drivers não estão instalados. A versão do OpenGL é 1.0 1.1 e está sendo executada no modo de software.
Instale / atualize os drivers da GPU e adicione a consulta de versão ao seu aplicativo. Se a versão OpenGL retornada estiver abaixo de 1.1, definitivamente haverá drivers ausentes.
fonte
Só estou supondo aqui, mas você está usando shaders? Qual placa de vídeo estava no computador que você testou e lançou a exceção? Muitas placas Intel antigas incorporadas não têm suporte para pixel shader.
Seu único recurso real, se for esse o caso, é fornecer um fallback de função fixa.
fonte