スマホやパソコン、ゲーム機でゲームをしたことがあるか。2Dや3DのCGがすごいよな。ああいうゲームで活躍するのがグラフィックスAPIです。その中でも有名なのがOpenGLとDirectX。ですが、この2つは何が違うのでしょう。それにどんな役割を果たしているんでしょうか。そんなグラフィックスAPIの役割やOpenGLとDirectXの違いをパソコンゲームにも詳しいプログラマでもあるライターのwoinaryと一緒に解説していきます。

ライター/woinary

某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。パソコンゲームにも詳しい。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさんです。

ゲームや動画作成に大活躍?OpenGLとDirectX

image by iStockphoto

パソコンでゲームをしたことがある方なら「DirectX対応」という言葉を聞いたことがあるかもしれませんね。このDirectXやOpenGLというのは、パソコンやスマホなどのコンピューターで3Dグラフィックスを表示するときに使います。さらに、最近はアニメーション映画を作るのにも必要です。

話題のメタバースやVRからゲーム、アートまで、コンピューターグラフィックス(CG)に欠かせない存在がグラフィックスAPI。その代表がOpenGLとDirectXです。その違いはざっくり言えばCG界のiPhoneとAndroid。その意味を説明していきます。

\次のページで「OpenGL:ルーツはコンピュータグラフィックス」を解説!/

OpenGL:ルーツはコンピュータグラフィックス

OpenGLはスマホで言えばAndroidです。Andoridスマホは多くのメーカーが参加して、さまざまなスマホを販売していますよね。OpenGLも1つの会社だけでなく、多くの会社が参加しています。

そのルーツはコンピューターグラフィックス(CG)です。建物などの設計で使うCADやテレビや映画などでよく見るCGを作るためのもの。パソコンよりも強力なCG用のコンピューターで使います。もちろんパソコンでも使いますし、最近ではスマホでもCGが使われている場所の多くで、OpenGLが活躍しています。

DirectX:ルーツはゲームやマルチメディア

DirectXはスマホで言えばiPhoneマイクロソフトがWindowsでゲームや動画の表示、作成をするためにつくったものです。ですので、スマホやMacなど、Windowsパソコン以外では動きません

ただし、WindowsパソコンやXBOXで動くゲームにはほぼ必ずDirectXが使われています。また、動画を見る時、編集する時に使われているのがDirectXです。DirectXがあるので、ゲームや動画がスムーズに動きます。

比べてみよう!OpenGLとDirectXの違い

image by iStockphoto

OpenGLやDirectXはどちらもグラフィックスAPIというものです。パソコンやスマホなど、多くのコンピューターでCGを表示するのに使われています。どちらも同じような目的で使いますが、先ほど説明したようにルーツは別々。そのため特徴も違ってきます。

その1:誰がつくっているのか?

先ほど説明したようにDirectXはマイクロソフトがWindowsのためにつくったもの。最初に登場したのは1995年。Windowsでゲームをつくるために必要な部品として公開されました。それまで、ゲーム会社は各社でバラバラにゲームを1からつくっていました。しかし、DirectXという部品ができたので、それまでより楽にゲームをつくることができるようになったのです。

一方、OpenGLはそれより早く1992年。シリコングラフィックスというCG専門のコンピューターの会社がつくったもの。しかし、それを広く公開したので多くのメーカーが一緒につくっています。アニメ映画のトイ・ストーリーでもシリコングラフィックスのコンピューターが使われました。この会社はもうなくなってしまいましたが、OpenGLはCG関連の技術を管理する団体が管理しています。

その2:何で動くのか?

DirectXはマイクロソフトがつくったもの。そのため、マイクロソフトのWindowsやXBOXでしか動きません。他のパソコンやCG用コンピューター、スマホなどでは使えないわけです。iPhoneやiPadといったアップル製品でだけ動くiOS・iPadOSと同じですね。

一方、Andoridのように多くのメーカーが関わり、広く公開されているのがOpenGL。そのため、Windowsだけでなく、他のゲーム機やスマホ、CG用の専用コンピューターなどでも広く使うことができます。

\次のページで「その3:どちらがよいのか?」を解説!/

その3:どちらがよいのか?

生まれや使われるところが違うので、それぞれ向いているものがあります。ゲームや動画のために登場したDirectXは当然ゲーム向きです。例えば、ゲームでは正確な表示よりも動作が速いことが重要。ゲームで60fps、120fpsなどの言葉が出てきますよね。これは1秒間に画面を何回描き変えることができるか。大きい方がスムーズに見えます。そのためには厳密に計算して表示するというよりも、それっぽく見えればよいわけです。

一方、CGなどをつくるためのOpenGLでは、見えないところも正確に計算しておかないといけません。そのため、表示の速さも重要ですが、正確さの方が重要です。このように生まれの違いからくる特徴があります。何を重視するかでどちらがよいかが決まってくるわけです。

ゲームやCGに欠かせないグラフィックスAPIとは?

image by iStockphoto

OpenGLとDirectXが違うものというのは理解できたでしょうか。でも、そもそもこれらのグラフィックスAPIは何をするものなのでしょう。グラフィックスAPIはゲームやCGなどで必要な計算をしてくれるプログラムの部品です。

ざっくり言えば電動アシスト自転車のようなもの。自転車があればあちこちに行けますが、体力がない人は坂道を登るのが辛い時もあります。それを後押ししてくれるのが電動アシストですよね。グラフィックスAPIもコンピューターがCGをつくるときに電動アシストのように後押ししてくれるのです。

面倒な計算はお任せ!グラフィックスAPIの役割

コンピューターグラフィックスを一言で言えば、現実にあるようなものをすべて計算して、まるで画面の中に存在するように見せるものです。そのため、たくさんの計算が必要になります。例えば、ここから光が差すとこの物体にどう光があたり、それがどう反射してある場所にいる人にどんな感じで見えるか、というのをすべて計算するわけです。

そのような計算プログラムをいちいち最初から作っていたら大変ですよね。そのため、よく使う計算式をあらかじめ覚えさせておいて、必要な情報を与えたら計算してくれるようなプログラムを用意することにしました。それがグラフィックスAPIであり、OpenGLやDirectXです。

鬼に金棒?GPUとグラフィックスAPIの関係

ゲーム機やパソコン、スマホなどでGPUという言葉を聞いたことがあるでしょうか。ゲーミングPCではグラボ(グラフィックボード)が重要と言いますが、そのグラボに付いているのがGPUゲームなどグラフィックAPIの仕事を助けてくれるものです。

パソコンやスマホにはCPUというものがあり、そこでプログラムが動いています。ただ、先ほど説明したようにCGのためにはたくさんの計算が必要です。そこで助手がいたら便利ですよね。CG専門の助手がGPUです。GPUは今のパソコンやスマホのCPUの中には最初から入っています。ただ、内臓のものは能力も低いです。そのためゲーミングPCやゲーム機では、もっと強力なGPUを使っています。グラフィックスAPIとGPUの両方が揃うと強力な力を発揮するわけです。

主役から縁の下の力持ちへ?ゲームエンジンの登場

ゲームやCGに欠かせないのがOpenGLやDirectXなどのグラフィックスAPI。しかし、これらが手助けしてくれるのは画面の中にあるものの表示のための計算だけです。ゲームなどでは他にもいろいろな計算があります。例えば銃から射撃した弾がどう飛んでいくか、飛行機から落とした爆弾がどう落ちていくか。そのような物理法則なども計算してくれたら便利ですよね。それがゲームエンジンです。

ゲームではOpenGLやDirectXではなく、このようなゲームエンジンを使うのが主流になってきています。その代表がUnityやUnrealなど。ただ、それでOpenGLやDirectXが不要になったわけではありません。それらのゲームエンジンもCGのためにOpenGLやDirectXを使っています。今でもこれらのグラフィックスAPIの存在は縁の下の力持ちとして重要なのです。

\次のページで「Windowsのゲームや動画作成ならDirectX、それ以外はOpenGL」を解説!/

Windowsのゲームや動画作成ならDirectX、それ以外はOpenGL

ゲームやテレビや映画、メタバースなどに欠かせないのがコンピューターグラフィックス(CG)。それをつくるときに力を発揮するのがグラフィックスAPIであるDirectXやOpenGLです。これらがなくてもCGを作ることはできますが、あればより簡単に手早くできます。

その中でもDirectXはWindows向けゲームや動画を見るときに使われています。一方、スマホや他のコンピューター、Windowsでもゲーム以外で使われるのがOpenGL用途や使われているところが違いますが、どちらもCGを作るのに欠かせないものです。

" /> 簡単でわかりやすい!OpenGLとDirectXの違いとは?グラフィックスAPIの役割もプログラマーが詳しく解説 – Study-Z
IT・プログラミング雑学

簡単でわかりやすい!OpenGLとDirectXの違いとは?グラフィックスAPIの役割もプログラマーが詳しく解説

スマホやパソコン、ゲーム機でゲームをしたことがあるか。2Dや3DのCGがすごいよな。ああいうゲームで活躍するのがグラフィックスAPIです。その中でも有名なのがOpenGLとDirectX。ですが、この2つは何が違うのでしょう。それにどんな役割を果たしているんでしょうか。そんなグラフィックスAPIの役割やOpenGLとDirectXの違いをパソコンゲームにも詳しいプログラマでもあるライターのwoinaryと一緒に解説していきます。

ライター/woinary

某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。パソコンゲームにも詳しい。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさんです。

ゲームや動画作成に大活躍?OpenGLとDirectX

image by iStockphoto

パソコンでゲームをしたことがある方なら「DirectX対応」という言葉を聞いたことがあるかもしれませんね。このDirectXやOpenGLというのは、パソコンやスマホなどのコンピューターで3Dグラフィックスを表示するときに使います。さらに、最近はアニメーション映画を作るのにも必要です。

話題のメタバースやVRからゲーム、アートまで、コンピューターグラフィックス(CG)に欠かせない存在がグラフィックスAPI。その代表がOpenGLとDirectXです。その違いはざっくり言えばCG界のiPhoneとAndroid。その意味を説明していきます。

\次のページで「OpenGL:ルーツはコンピュータグラフィックス」を解説!/

次のページを読む
1 2 3 4
Share: