ゲームエンジンの裏で活躍するグラフィックスAPI
『Vulkan実践入門 グラフィックスの基礎からレイトレーシング、メッシュシェーダーまで』
現在ではUnityやUnreal Engineに代表されるゲームエンジンが普及し、誰もが少ない手数で見栄えの良い描画結果を得ることができるようになりました。エンジンが用意するインターフェイスの中で、レイトレーシングなど先進的なグラフィックス機能にアクセスすることも容易です。
これらのゲームエンジンの内部では、DirectXやOpenGL、VulkanといったグラフィックスAPIを利用して映像を作成しています。私たちが普段このような低レイヤーの仕組みを意識せずに済むのは自然なことです。しかしゲームエンジンを使用せずに高度なグラフィックス表現を利用する場合や、ゲームエンジンそのものの開発に携わる場合、低レイヤーグラフィックスAPIの知識が欠かせません。本書で解説するVulkanはOpenGLの後継として登場したグラフィックスAPIで、開発者がGPUをより細かく制御することで、従来以上にGPUの性能を引き出すことが可能です。
また、Windowsを前提とするDirectXとは異なり、VulkanはWindows/
GPUの構造を知り、直接操作するプログラミングをはじめる
そもそもGPUが独特なハードウェアです。私たちは日頃からプログラミングを行うCPUについて、ある程度直感的に理解しています。プログラムカウンタがカウントアップされるごとにCPU・
一方で、GPUの動作についてはブラックボックスになっている方も多いのではないでしょうか。多くのコアを備え、大量のVRAMを抱え、グラフィックスなどCPUでは効率の悪い演算を引き受けていることは知識として知っていても、自分のプログラミングで直接GPUを動作させたことがある人はどれほどいるでしょうか。
GPUとプログラミングに関連して、直近の話題で欠かせないのはやはりAIでしょう。ハイエンドクラスのグラフィックボードを何枚も束ねて稼働させるファームを目にすることもあります。なぜ
GPUはCPUとはまったく異なる構造を持つ、独立・
Vulkanの特徴をソースコードから実感する
本書で学べるGPUグラフィックスプログラミングについて、より具体的に紹介します。本書のサンプルコードは以下のWebページで公開されています。
本書の前半で作成するのは基本的なウィンドウとポリゴンやモデルの表示です。第3章で扱う1枚のポリゴンを表示するプログラムはSources/
本書の到達点は、息を呑むクオリティのゲームや実用的な3Dグラフィックスアプリケーションではありません。基本的な描画や計算処理に終始することに驚く方もあるかもしれません。しかしこの実直な手法こそが、高度なグラフィックスを用いる幅広いアプリケーションを支えています。グラフィックスプログラミング入門の1冊目として、またVulkanの実践リファレンスとして役立つ書籍です。
- プロフィール