- ダウンロード商品¥ 1,000
PyOpenGL ライブラリを利用して OpenGL の基本を解説します。 OpenGL の基本的な概念や API の使用方法を重視して解説します。 基本的な内容から始まり、最終的には Open Asset Import Library や glTF を利用してスキニングアニメーションを行うまでを解説します。 サンプルファイルは GitHub からダウンロード可能です。 但し、パスワードをかけていますので購入者限定の特典としています。
YouTubeの紹介動画
https://youtu.be/kRhwkNjxuyI?si=10gbRWXR255Z4uz7
技術書典「第5回 刺され!技術書アワード」受賞作品発表イベント
技術書典「第5回 刺され!技術書アワード」受賞作品発表イベント https://www.youtube.com/live/6e2B3ng8TdM?feature=share&t=3741 【書籍紹介】技術に出会える - 技術書典13スペシャルオンラインイベント https://www.youtube.com/live/chHfTyWCvw0?feature=share&t=4592
対象読者
以下の読者を想定しています。 ・Python の基礎を習得していて、OpenGL を基礎から勉強したい ・OpenGL の知識を整理したい ・OpenGL の基礎は知っているが、PyOpenGL でも動かしてみたい ・PyOpenGL を使用して簡単なアプリケーションやゲームを作成したい
書籍情報
著者: PythonMan 発行: 毎日Pytnon ページ数: 289 書籍: PDF ファイル 版: 第2.1版 2023年12月26日 第2.1版発行 2023年9月5日 第2版発行 2022年4月22日 第1.1版発行 2021年9月1日 初版発行
目次
はじめに - はじめに - 対象読者 - サンプルスクリプトに関して - 免責事項 第1章 PyOpenGL とインストール 1.1 PyOpenGL に関して 1.2 テスト環境 1.3 PyOpenGL のインストール方法 1.4 PyGLM の置き換え 1.5 OpenGL のバージョン表示 第2章 画面表示と図形表示 2.1 GLFW による画面表示 2.2 三角形の表示 2.3 スケルトンコード 2.4 ラインの表示 2.5 面に色を付ける 第3章 GLSL の基本 3.1 最小限のシェーダコード 3.2 コードの共通化 3.3 PyOpenGL 特有のシェーダクラス 3.4 GLSL の解説 3.5 GLSL の文法 第4章 VBO 4.1 VBO とは 4.2 VBO のデータ形式 4.3 VBO を使用する例 4.4 1つの VBO で2つの頂点属性 4.5 VAO を使用 4.6 頂点属性として整数値を渡す 4.7 glDrawArrays() と glDrawElements() 4.8 IBO 4.9 バッファオブジェクトの更新 4.10 PyOpenGL の VBO クラス 第5章 座標変換 5.1 座標変換とは 5.2 列オーダーと列ベクトル 5.3 PyOpenGLの行列の扱い 5.4 行列を乗算する順序 5.5 モデル座標変換 5.6 ビュー座標変換 5.7 プロジェクション座標変換 5.8 ビューポート変換 第6章 3D モデル表示 6.1 陰面消去とZバッファ 6.2 アルファブレンディング 6.3 頂点インデックス 6.4 頂点の色と面の色 6.5 ポリゴンオフセット 6.6 カリング 第7章 キー操作、ジョイスティック操作、マウス操作 7.1 キー操作 7.2 ジョイスティック操作 7.3 マウス操作 7.4 クォータニオン 7.5 フィットビュー 第8章 ライティング 8.1 ライディングの基本 8.2 光源の種類 8.3 光の反射の種類 8.4 ライティング計算に使用するベクトル 8.5 2つのベクトルの座標系を合わせる 8.6 平行光源によるディフューズライト 8.7 アンビエントライトを追加 8.8 スペキュラライトを追加 8.9 点光源によるライティング 8.10 グーローシェーディングとフォンシェーディング 8.11 計算量を減らす 8.12 Phong の反射モデル 第9章 テクスチャマッピング 9.1 テクスチャマッピングの例 9.2 テクスチャデータのメモリ配置 9.3 正しく読めない画像ファイルに関して 9.4 パラメータに関して 9.5 ミップマップとは 9.6 マルチテクスチャ 9.7 glReadPixels 関数によるピクセルデータの取得 9.8 テキスト表示 9.9 カラーコンター図 9.10 マテリアルに関して 第10章 OBJ ファイルの読み込み 10.1 OBJ ファイルとは 10.2 OBJ ファイルのフォーマット 10.3 PyWavefront で OBJ ファイルをパース 10.4 OBJ ファイルによるモデル読み込み 第11章 2D と 3D の組み合わせ 11.1 ビルボード 11.2 ポイントスプライト 第12章 インスタンシング 12.1 インスタンシングとは 第13章 UBO 13.1 UBO とは 13.2 UBO の例 13.3 メモリレイアウトに関して 第14章 FBO 14.1 フレームバッファオブジェクトとは 14.2 テクスチャバッファを使用する例 14.3 カラーベースマウスピッキング 第15章 Assimp の基本 15.1 Assimp とは 15.2 Assimp SDK のインストール方法 15.3 C とのインタフェースの作成方法 15.4 Python とのインタフェース 15.5 メッシュの読み込み 15.6 Mesh Reader クラスの作成 15.7 メッシュ読み込みの注意点 第16章 スキニングアニメーション 16.1 スキニングとは 16.2 モデルデータ内のデータ構造に関して 16.3 シェーダで使用するデータ構造に関して 16.4 Assimp の不具合に関して 第17章 glTF2.0 ファイルの読み込み 17.1 glTF ファイルとは 17.2 ファイルフォーマットに関して 17.3 glTF ファイルのパース方法の基本 17.4 メッシュデータのパース 17.5 アニメーションデータのパース 第18章 エラー処理と後処理 18.1 PyOpenGL のエラー処理 18.2 プロファイルに関して 18.3 FPS の表示 18.4 オブジェクトの破棄 参考文献 - 参考文献 おわりに - おわりに - サンプルスクリプトのパスワードに関して