Como descobrir qual DirectX está instalado: Várias maneiras simples. Alguns aplicativos e jogos OpenGL pararam de funcionar, citando o fato de que OpenGL não é suportado pelo sistema

21.02.2024

Olá amigos. Meus últimos artigos focaram no tema gráficos e adaptadores de vídeo. Acho que continuarei a explorar mais esse tópico. Em artigos anteriores falamos sobre DirectX e shaders, hoje vamos mergulhar no mundo do OpenGL. Vamos descobrir o que é, onde fazer o download e para que é necessário. O tópico será voltado para aqueles que estão apenas interessados ​​​​nisso e que estão muito interessados ​​​​em aprender algo novo sobre computadores. Não vou definhar, vou começar a escrever. Aproveite a leitura :)

O que é OpenGL e com que é usado?

OpenGL é um padrão gráfico em computação gráfica. Atualmente é um dos padrões gráficos mais populares em todo o mundo.

OpenGL significa Open Graphics Library, o que significa que OpenGL é um padrão aberto e móvel. Programas escritos em OpenGL podem ser transferidos para praticamente qualquer plataforma, obtendo o mesmo resultado, seja uma estação gráfica ou um supercomputador.

OpenGL libera o programador de escrever programas para hardware específico. Se um dispositivo suporta uma função, então esta função é executada no hardware; caso contrário, sua implementação é realizada por um programa de biblioteca;

Em um site popular você pode encontrar detalhes deste padrão:

Inclui cerca de 150 comandos diferentes com os quais o programador pode definir vários objetos e renderizar. Em termos mais simples, você define objetos, define sua localização no espaço tridimensional, define outros parâmetros (rotação, escala, ...), define propriedades do objeto (cor, textura, material, ...), a posição do observador , e a biblioteca OpenGL se encarregará de exibir tudo na tela.

Implementações OpenGL.

Como você pode entender acima. Esse OpenGL é apenas uma especificação descrita para gráficos 3D. Para transformar esta especificação em realidade, você precisa escrever (implementar) código. O código é então empacotado em uma biblioteca especial. E existem várias dessas bibliotecas, de diferentes programadores.

A primeira dessas bibliotecas é chamada GLU. Esta biblioteca já se tornou um padrão e vem com a biblioteca principal OpenGL. A próxima biblioteca, também amplamente utilizada, é a GLUT. É também uma biblioteca independente de plataforma. Ele implementa não apenas funções OpenGL adicionais, mas também fornece funções para trabalhar com janelas, teclado e mouse. Existe outra biblioteca semelhante ao GLUT, chamada GLAUX. Esta biblioteca foi desenvolvida pela Microsoft para o sistema operacional Windows. É em muitos aspectos semelhante à biblioteca GLUT, mas está um pouco atrás dela em suas capacidades.

Alternativa para OpenGL.

Embora a biblioteca OpenGL seja considerada uma das melhores bibliotecas, ela não está sozinha neste setor. Tem um concorrente direto, do qual falei em um dos artigos anteriores. E esse concorrente é o Direct3D do pacote DirectX desenvolvido pela Microsoft. Direct3D foi criado exclusivamente para aplicativos de jogos. Existem muitas diferenças entre eles, a mais óbvia é que Direct3D é compatível começando com hardware barato, enquanto OpenGL não é compatível com todas as placas gráficas.

Preciso instalar o OpenGL?

Se você já instalou drivers em sua placa de vídeo, não. Já a versão mais recente do OpenGL é instalada quando você instala os drivers da sua placa gráfica.

Para instalar uma nova versão do OpenGL você precisa atualizar os drivers da placa de vídeo. Acesse o site do fabricante da sua placa de vídeo: NVIDIA, AMD ou outros. Baixe os drivers mais recentes para sua placa e instale-os.

Por exemplo, minha placa de vídeo Radeon 7850. Vou ao site www.amd.com, encontro lá uma página com minha placa de vídeo e vejo as especificações técnicas.

Como você pode ver, meu adaptador de vídeo é compatível com OpenGL 4.2. Agora selecionamos os drivers.

O OpenGL pode ser executado na mesma máquina que o Direct3D?

Sim. Ambos os programas estão incluídos na versão Windows, rodam em alta velocidade e oferecem muitos recursos para jogadores e editores de vídeo. Portanto, não há motivo para se preocupar com eles “morando” juntos no seu computador :)

Como habilitar o OpenGL?

É impossível dar instruções inequívocas sobre esta questão. Em geral, por padrão, o suporte para esta tecnologia é prescrito pelo criador do jogo no momento em que o código é escrito. E o uso de, digamos, DirectX ou OpenGL, pode ser configurado através de um determinado item no menu do jogo, ou habilitado pelo próprio jogo por padrão. Portanto, se o criador do jogo não lançar atualizações e instruções adicionais para instalar, digamos, bibliotecas adicionais, então não faz sentido você pensar sobre esse assunto. Bem, se alguns complementos foram lançados, digamos, para o mesmo Counter Strike 1.6, os entusiastas escreveram um cheat (e trapacear é ruim!! atata), então para esta instalação você precisa baixe um pequeno arquivo .dll e solte-o no diretório raiz do jogo e selecione OpenGL nas configurações do jogo.

Devido a isso, o jogo passa a utilizar as funções escritas dentro deste arquivo.

Conclusão

Então examinamos outra biblioteca para trabalhar com gráficos. Digamos que OpenGL seja algo específico, usado principalmente em atividades profissionais para modelos 3D. Nos jogos, em geral, existem funções Direct3D suficientes e ainda mais. Veja a versão 12, lançada recentemente. Mas o OpenGL também não fica parado e, com um certo período de tempo, lança novas versões das mais recentes - versão 4.5 de 11 de agosto de 2014.

Sem dúvida, muitos jogadores sabem que para que jogos famosos como Minecraft ou CS funcionem corretamente, uma das condições mais básicas é ter as versões mais recentes dos drivers OpenGL instaladas no sistema. Será discutido agora como atualizar este pacote de driver, pois, como qualquer outro software, eles podem ficar desatualizados. É por isso que às vezes há problemas para iniciar seus jogos favoritos.

OpenGL: qual é a maneira mais simples?

Em primeiro lugar, se ao iniciar um jogo ou algum aplicativo específico o sistema informar que os drivers OpenGL precisam ser atualizados, deve-se utilizar a solução mais padrão.

Para ativar o processo, você deve entrar no “Gerenciador de Dispositivos” padrão, o que pode ser feito a partir do “Painel de Controle”, seção de administração do computador, ou pelo comando devmgmgt.msc através da linha do console “Executar”, e encontrar o vídeo instalado adaptador lá.

A atualização pode ser iniciada usando o comando de mesmo nome no menu do botão direito ou na seção de propriedades do dispositivo. Se você especificar a pesquisa automática, isso poderá não produzir resultados e o sistema informará que o driver mais adequado já está instalado. Portanto, é aconselhável ir primeiro ao site do fabricante do equipamento, selecionar o modelo da sua placa gráfica, baixar o driver mais recente e durante a instalação indicar o local da distribuição salva.

Como atualizar o OpenGL no Windows 7 ou qualquer outro sistema usando utilitários especializados?

Para proprietários de chips NVIDIA e Radeon, a tarefa pode ser um tanto simplificada. Via de regra, programas de controle especiais como PhysX e Catalyst são fornecidos pré-instalados para eles. É por isso que você pode atualizar o driver OpenGL usando-os.

Se por algum motivo tais utilitários não estiverem disponíveis, basta baixá-los e integrá-los ao sistema. Se você tiver uma conexão com a Internet constantemente ativa, eles serão úteis não apenas para configurar jogos, mas também para monitorar automaticamente o surgimento de novas versões dos drivers necessários, incluindo OpenGL.

Em princípio, se o usuário não gostar desta opção, você pode usar programas não menos interessantes como o Driver Booster, que, sem intervenção do usuário, atualiza drivers para absolutamente todos os dispositivos de hardware e software instalados em um computador ou laptop. O aplicativo determinará automaticamente a versão do driver OpenGL durante a verificação do sistema. Como atualizá-lo? Você só precisa concordar com a oferta de instalação das atualizações encontradas. Assim que o processo de atualização for concluído, será necessária uma reinicialização completa.

Finalmente, você pode instalar um utilitário especial chamado OpenGL Extensions Viewer, com o qual você pode descobrir a versão do pacote de driver instalado e atualizá-lo para a versão mais recente.

Atualização DirectX

Porém, a atualização pode não dar o resultado positivo desejado sem uma atualização da plataforma DirectX, que é uma espécie de ponte de ligação entre hardware e software em termos de multimídia.

Você pode descobrir a versão instalada usando o comando dxdiag inserido no menu Executar. Você pode baixar a nova distribuição no site oficial de suporte da Microsoft na seção Downloads.

Como já está claro, DirectX OpenGL pode ser atualizado simplesmente iniciando o processo de instalação da distribuição baixada. Outro benefício desta atualização é que você pode executar vários testes na própria caixa de diálogo DirectX, incluindo desempenho de DirectSound, ffdshow, Direct3D, etc.

Por que os drivers não estão atualizados?

Se de repente nenhuma das soluções acima ajudar, provavelmente o motivo está apenas no fato de que o adaptador de vídeo simplesmente não suporta a versão instalada do OpenGL, portanto, não importa o quanto você tente, você não conseguirá instalar o driver. A única solução é instalar uma placa de vídeo mais potente.

A propósito, esse problema ocorre com mais frequência no caso de chips de vídeo integrados do padrão video-on-board, que são integrados às placas-mãe. Como regra, não existem tais problemas com placas de vídeo discretas (é claro, desde que o chip não esteja muito desatualizado e suporte nativamente a tecnologia OpenGL). Acho que já está claro como fazer esses cartões. Mas às vezes pode ser necessário atualizar as plataformas JAVA Runtime ou mesmo o .NET Framework da Microsoft - também não devemos esquecer disso. Mas, como regra, na maioria dos casos isso não é necessário - basta usar o utilitário OpenGL Extensions Viewer em paralelo.

Na maioria dos casos, um pacote de arquivos chamado OpenGL é exigido pelos usuários para executar corretamente determinados jogos em um computador com sistema operacional Windows 7. Se esse driver estiver faltando ou sua versão estiver desatualizada, os programas simplesmente não serão ativados e um. a notificação correspondente será exibida na tela solicitando instalação ou atualização POR. Neste artigo falaremos com o máximo de detalhes possível sobre o carregamento de novas bibliotecas OpenGL.

Antes de mais nada, vale entender como o componente em questão é instalado em um PC. Todos os arquivos necessários são instalados junto com os drivers do adaptador gráfico. Portanto, você deve primeiro atualizar o software deste componente e depois passar para a análise do método alternativo.

Quando você tiver o driver mais recente instalado em sua placa de vídeo e não houver mais atualizações, mas ainda aparecer uma notificação sobre a necessidade de atualizar o OpenGL, prossiga imediatamente para o terceiro método. Se esta opção não trouxer nenhum resultado, significa que seu equipamento não suporta as bibliotecas mais recentes. Recomendamos que você pense em escolher uma nova placa de vídeo.

Método 1: atualize os drivers da placa de vídeo no Windows 7

Conforme mencionado acima, os componentes OpenGL são instalados junto com os arquivos do adaptador gráfico. O Windows 7 possui vários métodos para atualizá-los. Cada um deles é adequado em diferentes situações e exige que o usuário execute determinadas ações. Acesse o artigo no link abaixo para conhecer detalhadamente todos os métodos. Escolha aquele que mais lhe convier e siga as instruções fornecidas. Concluído o processo, basta reiniciar o computador e verificar a funcionalidade de jogos ou outros programas que necessitavam de uma nova versão da biblioteca.

Método 2: Atualizando componentes no utilitário proprietário da placa de vídeo

Atualmente, os principais fabricantes de adaptadores gráficos são AMD e NVIDIA. Cada um possui seu próprio software que garante o correto funcionamento do sistema operacional e permite a atualização do software. Os proprietários de placas de vídeo NVIDIA são aconselhados a consultar o material no link a seguir para entender como instalar a nova versão do driver OpenGL no GeForce Experience.

Proprietários de placas AMD precisam ler outros artigos, pois neste caso todas as ações são realizadas no Catalyst Control Center ou no Radeon Software Adrenalin Edition, dependendo do tipo de software instalado.

Método 3: atualização DirectX

Não é o método mais eficaz, mas às vezes funciona, é instalar novos componentes da biblioteca DirectX. Às vezes, contém arquivos adequados que permitem que os jogos ou programas necessários funcionem normalmente. Primeiro você precisa descobrir qual DirectX já está instalado no seu computador. Para fazer isso, leia as instruções no artigo abaixo.

No momento, a versão mais recente do sistema operacional Windows 7 é DirectX 11. Se você tiver uma biblioteca anterior instalada, recomendamos atualizá-la e verificar a funcionalidade do software. Leia mais sobre este assunto em outro artigo.

Como você pode ver, não há nada complicado em atualizar o OpenGL, o principal problema é apenas o suporte aos arquivos mais recentes deste componente pela sua placa de vídeo; Recomendamos testar todos os métodos, pois a eficácia de cada um depende de diferentes circunstâncias. Leia as instruções e siga-as, então você definitivamente terá sucesso.

Pergunta: Determine a versão opengl


Precisa de código para opengl es 2,
e a rede está cheia de código para a primeira versão
como você pode determinar rapidamente a versão do opengl por código?
Há necessidade de uma marca preta nas primeiras etapas?

Responder: em primeiro lugar deve usar VBO. ou seja, glGenBuffers, glBindBuffer, etc. embora isso tenha suporte desde 1.5. Em segundo lugar, você deve usar shaders. ou seja, glCreateProgram, glLinkProgram, glSetShader, etc. Bem, o código também deve incluir código de shader (embora não haja nenhum requisito para shaders antes de 3.3, mas sem shaders 2.0 não tem utilidade a partir de 1.5).

Pergunta: Qual versão do OpenGL devo escolher para que a aplicação suporte o maior número de placas de vídeo?


Olá! A dúvida é exatamente a mesma do tópico: qual versão do OpenGL devo escolher para que a aplicação suporte o maior número de placas de vídeo?

Responder: Em geral, é isso que penso.
No início, o número de utilizadores de PC aumentou exponencialmente, e penso que este crescimento atingiu o seu pico algures entre 2008-2011 (para cada país este pico ocorreu em momentos diferentes, mas em alguns outros países pode não ter sido alcançado) e agora esse crescimento está diminuindo.

Na verdade, eu começaria a partir desse pico, isto é... eu observaria qual versão do OpenGL estava naquele momento e a usaria para meu propósito se eu precisasse de suporte, provavelmente. Bem, talvez mais alguns meses... ou seja, o tempo que leva para o PC ir do fabricante ao comprador.

Pergunta: Escolhendo a versão ideal do OpenGL


A questão é: quais deveriam ser os requisitos de sistema adequados para um jogo 2D simples em 2016? Existe uma ideia de que seria incorreto criar um projeto de nível Flappy Bird no OpenGL 4.x devido à incompatibilidade de muitas placas de vídeo com esta versão. A versão mínima do OpenGL, na minha opinião, é 2.0, pois por um lado cobre hardware de gerações anteriores, por outro permite a utilização de shaders GLSL. O pós-processamento usando um framebuffer é feito com extensões. Mas não estou satisfeito com a limitação associada à função glTexImage2D. Nem todas as placas de vídeo OpenGL 2.0 permitem a criação de texturas em memória superiores a 1024px*1024px. Também requer mais esforço para otimizar esse hardware. Ficarei feliz em receber qualquer conselho. Também seria bom ter algumas estatísticas sobre esta questão.

Responder:

Mensagem de 8Observador8

Tenho uma situação em que coleciono jogos (em exe) em um laptop moderno executando o sistema operacional Win7.

Não importa o que você coleta.
Para o motor, a configuração da máquina na qual ele funciona é importante.

Mensagem de 8Observador8

Acontece que o mecanismo compila o exe de tal forma que, quando o exe for iniciado, o próprio aplicativo escolherá o que usar: OpenGL 2.0 ou OpenGL 4.x?

O exe contém o mecanismo.
É ele quem monta sua configuração de forma dinâmica quando lançado a partir de módulos existentes.

Pergunta: Versão OpenGL


Boa noite, queridos membros do fórum. É possível usar as versões 1.0–1.5 do OpenGL (esta limitação foi definida por um professor do instituto) instalando, por exemplo, GLUT (ou algumas outras bibliotecas)? Agradecemos antecipadamente pela sua resposta.
PS: linguagem de programação C ou C++.

Responder: Se você não usar extensões e funções como glCreateShaderObjectARB(..), glAttachObjectARB(..), etc. (ou seja, sem nenhum shader), então este será o OpenGL 1.5

Pergunta: Determine a versão do Windows


Saudações a todos.
Encontrei o seguinte problema: preciso determinar a versão do sistema operacional sem usar GetVersionEx. O fato é que no msdn está escrito sobre esta função:

Citar

Os aplicativos não manifestados para Windows 8.1 ou Windows 10 retornarão o valor da versão do sistema operacional Windows 8 (6.2). Depois que um aplicativo for manifestado para uma determinada versão do sistema operacional, GetVersionEx sempre retornará a versão para a qual o aplicativo será manifestado em versões futuras.

Mas só preciso que meu aplicativo detecte que ele roda no Windows 10.
A opção de adicionar aplicativos do Windows 10 ao manifesto não funciona.

Aqui, de fato, está a questão: existe alguma maneira de determinar a versão do Windows usando apenas as funções do modo de usuário (RtlGetVersion não é adequado, porque é executado no modo kernel).

Esta mensagem foi editada por rudolfninja - 13.8.2015, 12:16

Pergunta: Determine a versão do ASP.NET instalado


Olá! Estou escrevendo um programa para coletar informações do meio ambiente.
Diga-me como determinar a versão do ASP.NET instalada em um PC
Já determinei a versão do .NET framework e muito mais, mas há problemas com o ASP.NET.

Responder:

Mensagem de novato

ou corresponde à versão do NET Framework?

Não pode faltar, pois este é o NET Framework, a poucos assemblies de sua composição.

Basta chamar glGetString(GL_VERSION) (depois que o contexto for inicializado, é claro) e liberar o resultado (que na verdade é o mesmo que glxinfo, acredito):

Printf("%s\n", glGetString(GL_VERSION));

Seu programa deve usar automaticamente a versão mais alta possível do seu hardware e suporte de driver, que no seu caso parece ser 3.3. Mas para criar um contexto de perfil central para OpenGL 3+ (um onde a funcionalidade legada foi completamente removida), você deve tomar medidas especiais. Mas desde a versão 2.7 do GLFW existe um meio de fazer isso usando a função glfwOpenWindowHint. Mas se você não quiser desabilitar explicitamente os recursos legados, você pode simplesmente usar o contexto fornecido pelas funções de criação de contexto padrão do GLFW, que supostamente suportam a versão mais alta possível de seu hardware e drivers.

Mas lembre-se também de que para usar os recursos do OpenGL acima da versão 1.1, você precisa obter os ponteiros de função apropriados ou usar uma biblioteca que lide com isso para você, como .

Comecei a escrever programas em C (por enquanto), usando GLFW e OpenGL. A questão é: como posso saber qual versão do OpenGL meu programa usará? Meu laptop diz que minha placa gráfica possui OpenGL 3.3. Inserindo "glxinfo | grep -i opengl" retorna.