[紙版] RustではじめるOpenGL
- 物販商品(倉庫から発送)ネコポス可能¥ 1,000
この商品は、紙版です。 ■ページサイズ: B5 ■ページ数: 92 ■バージョン: v1.0.0 本書「2.1.3 Windowsの場合」に内容の漏れがありました。 SDLライブラリをWindows環境にインストールする際は、次の記事を参考にしてください。 https://toyamaguchi.hatenablog.com/entry/2019/10/07/231608
RustからOpenGLを扱う初めての書籍
本書は、Rustを使ってOpenGLプログラミングを行う入門書です。 最近、とても注目されているRustですが、まだまだ発展段階のプログラミング言語のためか、RustからOpenGLを扱う書籍はありませんでした。 おそらく、本書がRustからOpenGLを扱う初めての書籍となります。 本書では、RustからOpenGLを使ったときの3つのメリットを挙げています。 1つ目として、処理速度が速いことです。 C/C++にも負けない処理速度を出せるRustならば、多少の処理でも60 FPSを維持することができます。 2つ目として、ガベージコレクションがないので、画面がカクつきません。 画面の描画処理がシビアなシステムでは、ガベージコレクションによって画面がガクガクすることがあります。 Rustにはガベージコレクションがないので、安定した画面描画をすることができます。 3つ目として、モダンなプログラミング言語が持つ、便利な特徴・環境を使用できることです。 様々なプラットフォームでの動くバイナリファイルが簡単に作成できたり、新しいライブラリの導入が楽だったりするのは、モダンなプログラミング言語ならではです。
各章の概略
本書は、OpenGLの基礎的な部分から始め、徐々に機能を追加していくことで、3Dプログラミングの理解を深めていきます。 第1章では、Rustの開発環境構築を行い、第2章からSDLを使ったソフトウェアの基盤部分の実装を行います。SDLはゲームを始めとする多くのソフトウェアで採用されている、マルチメディアフレームワークです。 第3章では、OpenGLの入門プログラムとして、三角形の描画をします。2種類のシェーダの基礎的な使い方について学びます。 第4章では、OpenGLにGUIを簡単に導入できるライブラリ「Dear ImGui」を使って、様々なウィジェットを追加できるようにします。 第5章では、いよいよ3Dオブジェクトの描画を行い、画面上に立方体を表示させます。ImGuiを使ったウィジェットを使って、様々なパラメータをON・OFFできるようにし、より直感的にOpenGLを体感していきます。 第6章では、第5章で描画した立方体の表面にテクスチャ画像を貼り付けます。そのとき、同時に照明の光を追加することで、より立体的な描画を目指します。
目次
ギャラリー はじめに 想定読者 使用するライブラリとプラットフォーム ソースコードのダウンロード 免責事項 第1章 開発環境の準備 1.1 Rustのインストール 1.1.1 Unix系OSの場合 1.1.2 Windowsの場合 1.2 cargoコマンド 1.2.1 パッケージディレクトリの作成: cargo new 1.2.2 ソースコードのコンパイル: cargo build 1.2.3 プログラムの実行: cargo run 1.3 Hello, World! 第2章 SDL 2.1 準備 2.1.1 Cargo.tomlの編集 2.1.2 Linuxの場合 2.1.3 Windowsの場合 2.2 プログラムの作成 2.2.1 ソースコードの全体 2.2.2 初期化 2.2.3 ウィンドウ 2.2.4 キャンバス 2.2.5 イベントループ 2.3 プログラムの完成 第3章 OpenGL 3.1 準備 3.2 プログラムの作成 3.2.1 ソースコードの全体 3.2.2 初期化 コラム : OpenGL 3.1 3.2.3 OpenGLによる描画の仕組み 3.2.4 シェーダ 3.2.5 Vertex Array ObjectとVertex Buffer Object コラム : ソースコードの整形を回避する 3.2.6 三角形の描画 第4章 Dear ImGui 4.1 準備 4.2 プログラムの作成 4.2.1 初期化 4.2.2 イベント処理 4.2.3 ウィンドウの作成 4.2.4 ウィジェットの生成 4.3 プログラムの完成 4.4 効果的な使い方 コラム : 自分専用プログラムの楽しみ 第5章 3Dオブジェクト 5.1 プログラムの作成 5.1.1 ソースコードの全体 5.1.2 3Dオブジェクトの頂点データ 5.1.3 デバッグ用パラメータ 5.1.4 ImGuiウィジェットによるパラメータの調整 5.2 プログラムの完成 コラム : OpenGLとVulkan 第6章 テクスチャ 6.1 準備 6.2 プログラムの作成 6.2.1 ソースコードの全体 6.2.2 テクスチャの準備 6.2.3 頂点座標、法線ベクトル、テクスチャ座標 6.2.4 テクスチャと照明を追加したシェーダ 6.2.5 ユニフォーム変数 6.2.6 テクスチャの描画 6.3 プログラムの完成 6.4 光の効果 おわりに 著者紹介