É um desperdício aprender OpenGL?


13

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.


31
Nada é sempre um desperdício para aprender.
octal9

23
Se você deseja segmentar QUALQUER COISA que não seja o Windows, precisará do OpenGL. Isso inclui Linux, Mac OS, iPhone, Android e qualquer outro sistema operacional esotérico que eu não conheça. De qualquer forma, isso está basicamente dizendo 'O openGL é bom comparado ao DX', e então votei para fechar como subjetivo.
The Duck Comunista

6
@ The

1
Se o sistema operacional WP7 for tecnicamente Windows, o sistema operacional XBOX será tecnicamente Windows. (Eles não são, btw.)
Olhovsky

4
Minha visão no Direct X é a sua visão do OpenGL. Não vejo por que o Direct X seria o futuro de nenhuma maneira. O OpenGL ES / WebGL é o futuro!
Joey Green

Respostas:


30

Agora eu sei que existem 100.000 tópicos falando sobre o que é melhor, mas não é isso que estou perguntando, apenas perguntando se o OpenGL vai ficar por aqui.

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.


Bem, é apenas uma espécie de projeto paralelo, a renderização do terreno é algo que me interessa muito. E fazê-lo em OpenGL (pelo que eu vi) é muito mais fácil de entender do que fazê-lo em DirectX

O XNA é uma API para DirectX e é mais fácil entender (IMO) do que trabalhar diretamente com OGL ou DX. Os conceitos que você aprende no XNA serão transferidos para o OpenGL ou DirectX posteriormente.
Olhovsky

1
Existe até uma porta OpenGL de código aberto do XNA, MonoGame .
voithos 7/08/12

1
É engraçado como o mundo muda. O OpenGL foi o primo pobre do DirectX por um longo tempo. Então alguém conseguiu colocar uma GPU dentro de um telefone e pronto: OpenGL Golden Age.
MartinTeeVarga

10

Esta é uma pergunta que somente você pode responder realmente. Mas,

  • Deseja realmente criar algo e achar o OpenGL mais divertido ou produtivo? Então talvez você queira aprender OpenGL.
  • O aprendizado do OpenGL tornará mais difícil o aprendizado do DirectX posteriormente, se você precisar ou quiser? Acho que não.

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.


6

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.


4

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í.


As versões mais recentes do OSX suportam o OpenGL 3.3 . Infelizmente, como a Apple grava seus próprios drivers e especifica recursos com base na versão / hardware do OSX, a versão do OpenGL nos Macs não pode ser atualizada, a menos que você atualize todo o sistema operacional (que é uma atualização paga). Isso significa que versões mais antigas do OpenGL provavelmente terão que ser suportadas nos próximos anos.
David C. Bishop

3

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.


O problema (para mim) pelo menos é ...... parece haver muito menos informações / tutoriais disponíveis para o DX e os que existem simplesmente não o explicam o suficiente para mim. E através de toda a inicialização, olhar através do código-fonte torna muito mais difícil (para mim) entender o que realmente está acontecendo.

Altho ... agora que você mencionou, talvez o DX9 fosse mais fácil para começar.

2
Eu não recomendaria começar com o DX9. Não é tão organizado quanto o DX 10 e só vai desaparecer.
jeffythedragonslayer

2

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.


Isso é mais para um projeto divertido para mim. Eu tenho um trabalho de programação normal (firmware / drivers), então esse é o extremo oposto do espectro.

2
A maioria dos desenvolvedores de jogos convencionais que conheço não faz nenhuma programação gráfica. Todo o trabalho está oculto por trás das camadas de abstração gráfica. Talvez um shader escrito aqui e ali, mas a maioria do trabalho não esteja relacionada a gráficos.
Tetrad

1

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.


1

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)


1

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.


bem, o openGL por si só se move em um ritmo monumentalmente lento. e apenas porque a válvula tem seu mecanismo de origem no linux não significa nada para o uso do OpenGL.
CobaltHex

bem, é mais uma questão de lidar com todas as inconsistências entre os drivers. eu sei que os motoristas programação para OpenGL é uma dor enorme na bunda e não vão ser erros não importa o que, mas talvez menos se ele fica mais populares
dreta

1
@CobaltHex, na verdade, significa muito. Quando uma grande empresa que praticamente dita a direção da indústria de videogames escolhe uma plataforma e a apoia firmemente, tenho certeza de que outras pessoas seguirão.
jcora

enquanto im certeza que alguns vontade, olhada vapor no OSX
CobaltHex

É uma situação muito diferente. Baseado Gaben já disse que está decepcionado com o W8 e que está basicamente trocando de plataforma. Ao contrário do OSX, o Linux é gratuito, acessível em uma ampla variedade de hardware e possui uma excelente comunidade de desenvolvedores. Sem mencionar como os jogos da Valve rodam muito mais rápido no OpenGL no Windows e ainda mais rápido no OGL no Linux.
jcora

1

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.


0

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.


0

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.