O que eu reuni na Internet e em várias fontes é que o DirectX praticamente adotou o domínio da API gráfica. E, para ser sincero, dei uma chance ao aprendizado do DirectX10, mas não consigo suportar como as coisas são inicializadas; tornou muito difícil aprender realmente a parte 3D real.
O OpenGL, por outro lado, faz muito mais sentido do ponto de vista da "codificação" para mim, mas não tenho certeza se quero investir tempo em algo que "não vai durar". Não acompanho as últimas notícias, nem sei muito sobre a "guerra" que ocorre entre o OpenGL e o DirectX. Com isso dito, o OpenGL vai desaparecer tão cedo? O que eu mais gosto no OpenGL é que existem muito mais recursos disponíveis (seja através de livros / tutoriais / amostras) do que no DirectX, por isso é muito mais fácil aprender.
Ainda é um bom momento para aprender o OpenGL ou o DirectX é apenas o futuro? Agora eu sei que existem 100.000 tópicos falando sobre o que é melhor, mas não é isso que estou perguntando. Só estou perguntando se o OpenGL vai ficar por aqui.
Respostas:
Sim.
A tecnologia nunca desaparece - uma vez atingida uma massa crítica, ela permanece por um longo tempo, mesmo que nunca mais se desenvolva ativamente. Levará muito tempo até que a afirmação "é uma perda de tempo para aprender OpenGL" seja verdadeira.
Embora eu ache sua motivação e raciocínio um pouco suspeitos, não há nada errado em aprender o OpenGL e isso permitirá que você aprenda exatamente tanto sobre teoria e programação de gráficos 3D quanto o D3D. Realmente, pode valer a pena usá-lo como um meio de aprendizado, mesmo que seja inútil como uma plataforma prática, porque os conceitos fundamentais são transferidos entre APIs, desde que isso ajude a adquirir esses conceitos, é uma boa escolha.
fonte
Esta é uma pergunta que somente você pode responder realmente. Mas,
Eu não acho que alguém possa prever qual deles permanecerá por aqui, eu diria que use o que for melhor para seus propósitos agora, e você sempre poderá escolher o outro mais tarde. Eu usei o DirectX apenas porque ele se adequava aos meus objetivos, mas se eu considerasse o OpenGL mais fácil de usar no meu jogo, eu o teria usado.
Se você gosta de usá-lo ou realizar algo com ele, não é um desperdício.
fonte
O GL aberto é a base para Web GL e, embora o Web GL ainda esteja na infância, se / quando ele se espalhar amplamente, será útil saber. Portanto, além de geralmente ser mais multiplataforma do que o DirectX (abordado em outras respostas), ela será uma das opções para criar um jogo em 3D.
Portanto, para responder sua pergunta, supondo que o webGL se torne um padrão, o openGL permanecerá por um bom tempo.
fonte
Não é totalmente inútil. Vale ressaltar que os sistemas Mac ainda suportam apenas o OpenGL e apenas até o OpenGL 2.1. Isso significa que qualquer jogo que você vê no Mac (incluindo alguns jogos de mecanismo de origem, como Portal, Left 4 Dead, Left 4 Dead 2) foi escrito usando o OpenGL. Dado que a Valve foi capaz de adaptar o mecanismo de origem para usar o OpenGL 2.1 e fazer algumas coisas incríveis com ele, você provavelmente é bastante seguro para começar por aí.
fonte
O código de inicialização é uma fração minúscula de todo o código que lida com um subsistema como esse tipo de renderizador. Você está jogando fora a orientação para objetos muito superior e esse tipo de vantagem oferecida pelo DirectX porque não gosta das primeiras duzentas linhas. Não quero parecer que estou banalizando sua opinião aqui, mas a realidade é que, comparado a todo o código que você pode escrever que lida com qualquer subsistema de renderização, sem mencionar quaisquer outros subsistemas necessários, a inicialização é uma trivialidade.
Em segundo lugar, você sempre pode experimentar o DX9 - é muito, muito menos que o DX10.
fonte
Não é provável que o OpenGL deixe de ser uma tecnologia ativamente desenvolvida ou direcionada em breve. Comparando plataformas em que cada API possui natividade, o D3D possui principalmente Xbox, Windows e Windows Phone 7. O OpenGL também funcionará no Windows, além do Mac OS X e Linux. O OpenGL ES está no Android e iOS.
Se você está apenas procurando habilidades para conseguir um emprego bem remunerado, provavelmente precisará aprender DX, já que a maioria dos desenvolvedores de jogos convencionais está mirando no Windows e / ou Xbox. Embora o mercado de jogos móveis em rápida expansão esteja aumentando a relevância do conhecimento do OpenGL ES.
fonte
Se você começa com a programação gráfica, a tecnologia é importante, mas se você se familiariza com ela, apenas os conceitos começam a importar e são iguais no Direct3D ou no OpenGL. Como a programação de pipeline programável em oposição ao pipeline de função fixa está se tornando o padrão, a parte em que você interage com a API de gráficos é pequena parte de todo o trabalho.
A outra coisa é que o OpenGL é realmente grande em telefones celulares. É chamado OpenGL ES e está em muitos níveis exatamente iguais ao OpenGL 4.1 / 4.0 / 3.3 / 3.2.
fonte
você pode ser um bom programador de jogos sem tocar no OpenGL nem no DX. Tudo o que você precisa aprender é usar um bom mecanismo de jogo como o Unity. No entanto, se você quiser ir para um nível mais baixo e entender como o mecanismo de jogo funciona, você deve aprender o OpenGL. você não ganhará muito com isso em termos de "qualidade", assim será para fins de aprendizado.
então meu conselho é aprender a usar um mecanismo de jogo porque provavelmente o que você fará em sua carreira (profissional ou independente) e também aprender uma biblioteca gráfica como o OpenGL apenas para fins de aprendizado. (ou se você deseja criar ou modificar um mecanismo de jogo)
fonte
Tenho certeza de que outros já lhe disseram muitos dos vários motivos pelos quais você deve aprender o OpenGL, e por que ele definitivamente permanecerá por aqui, mas aqui está outro motivo para mudar o jogo: a Valve recentemente começou a desenvolver e dar suporte ao Linux . O que isto significa? Bem, isso significa que a maioria dos desenvolvedores começará a usar o OpenGL.
Mesmo agora, o OpenGL obtém a maioria dos recursos mais cedo, é suportado em muitas plataformas diferentes e muitos concordam que é o futuro.
fonte
Aqui está o problema. O DirectX é restrito aos sistemas baseados na Microsoft, como os consoles Windows e XBox.
O OpenGL, por outro lado, roda em quase tudo em uma versão ou outra.
No que diz respeito a "você deve aprender", se você planeja ser um programador gráfico, a resposta simples é: aprenda os dois e se você quiser escrever um renderizador extremamente rápido, aprenda Mantle / Vulkan (não para os fracos de coração) .
Se, no entanto, você quer apenas fazer jogos, não se preocupe. Você aprenderá muito mais produtivo a usar o desenvolver com Unity ou Unreal.
fonte
Parece que você está no estágio "girar o polegar" e não no estágio "o que devemos usar para codificar nosso próximo mecanismo", eu sugeriria que não aprendesse o OpenGL nem o Direct3D.
Encontre uma biblioteca de nível superior que facilite as coisas para você e comece a fazer, em vez de encarar as montanhas de coisas que você acha que precisa aprender primeiro.
Você precisa se familiarizar com conceitos de nível superior, como matemática vetorial, mapeamento de textura, etc. antes de ser produtivo no OpenGL. Portanto, escolha uma biblioteca, como Ogre3D, Unity, Panda3D, etc. que faça sentido para sua plataforma e comece a criar coisas. Quando estiver fazendo e não olhando , poderá ver qual é a próxima coisa a aprender que faria sentido.
Aposto que o OpenGL ou o Direct3D aparecerão muito tarde nessa lista de coisas para aprender.
fonte
Como deve ser óbvio nas notícias de hoje (GL4.3 / ES3), o OpenGL não está indo embora e ainda vale muito a pena investir. Se nada mais, se você deseja atingir o Linux ou o Max OS, precisa do OpenGL, e o ES é dominante no domínio móvel.
Tudo isso aparte, a longo prazo, você deve considerar seriamente o aprendizado das duas APIs, pois o conhecimento de ambas será melhor para o seu próprio desenvolvimento pessoal. A única questão real é qual aprender primeiro e, como o OpenGL é mais fácil para você, essa é a decisão tomada.
fonte