ぬの部屋(仮)
nu-no-he-ya
  •      12
    3456789
    10111213141516
    17181920212223
    242526272829 
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30      
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
        123
    45678910
    11121314151617
    18192021222324
    25262728   
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
       1234
    567891011
    12131415161718
    19202122232425
    2627282930  
           
    1234567
    15161718192021
    293031    
           
         12
    3456789
    10111213141516
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30      
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
      12345
    6789101112
    13141516171819
    20212223242526
    27282930   
           
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
       1234
    567891011
    12131415161718
    19202122232425
    2627282930  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728     
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
     123456
    78910111213
    14151617181920
    21222324252627
    282930    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   
           
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
     123456
    78910111213
    14151617181920
    21222324252627
    282930    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
      12345
    6789101112
    13141516171819
    20212223242526
    27282930   
           
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
          1
    2345678
    9101112131415
    16171819202122
    232425262728 
           
       1234
    567891011
    12131415161718
    19202122232425
    262728293031 
           
    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
           
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
           
      12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
           
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
           
        123
    45678910
    11121314151617
    18192021222324
    25262728293031
           
  • GPU並列図形処理入門 ~CUDA・OpenGLの導入と活用

     

    第1部 コンピュータグラフィックスの基礎
    第1章 プログラミングの準備
    1.1 Visual Studioを用いたプログラム開発
    1.1.1 コンソールアプリケーションの作成
    1.1.2 設定の変更
    1.2 glutとOpenGLの利用
    1.3 freeglutのインストール
    1.4 freeglutを利用したプログラミング
    この章で学んだOpenGLとglut関数

    第2章 OpenGLとglutを用いた2次元コンピュータグラフィックス
    2.1 2次元コンピュータグラフィックスのプログラミング
    2.1.1 図形の指示
    2.1.2 座標の指示
    2.1.3 図形の色分け
    2.2 座標の投影とビューポート変換
    2.2.1 正投影の導入による表示範囲の拡大
    2.2.2 ウィンドウとビューポート変換
    2.2.3 アスペクト比の変更
    2.2.4 図形中心の表示
    参考文献
    この章で学んだOpenGLとglut関数

    第3章 3次元コンピュータグラフィックスへの拡張
    3.1 正投影
    3.1.1 視点の変更
    3.1.2 視体積の範囲決め
    3.1.3 方位角と仰角の利用
    3.1.4 マウス操作による視点の変更

    3.2 ポリゴンの描画
    3.2.1 隠面消去
    3.2.2 シェーディング
    この章で学んだOpenGLとglut関数

    第二部 OpenGLを用いた並列図形処理
    第4章 ボロノイ図の生成
    4.1 ボロノイ図とは
    4.2 ボロノイ図の画像生成
    4.3 実装の準備
    4.4 円錐形状の描画
    4.5 画像の取得と利用
    参考文献
    この章で学んだOpenGLとglut関数

    第5章 オフセット平面の生成
    5.1 デプスバッファを用いたオフセット面の計算
    5.2 STLフォーマット
    5.3 STLファイルの読み込み用関数
    5.4 ポリゴンモデルの表示用関数
    5.5 オフセットプログラムの準備
    5.6 オフセット処理の実現
    5.6.1 球、円筒形、スラブ形状の描画
    5.6.2 オフセット面の取得
    5.6.3 オフセット面の描画
    5.7 プログラムの完成
    参考文献
    この章で学んだOpenGL関数

    第3部 CUDAの導入とOpenGLとの併用

    第6章 CUDAの導入
    6.1 CUDAのインストール
    6.2 Visual StudioによるCUDAプログラムの開発
    6.3 CUDA処理の基本的な考え方
    6.3.1 典型的な処理の流れ
    6.3.2 GPUの並列処理アーキテクチャ
    6.3.3 スレッドによる並列処理
    6.3.4 ブロックとグリッド
    6.4 CUDA関数の紹介
    6.4.1 メモリ管理
    6.4.2 データ転送
    6.4.3 ブロックとグリッドの定義
    6.4.4 カーネル関数
    6.4.5 デバイス関数
    6.5 プログラム例
    6.5.1 CPU処理の実装例
    6.5.2 CUDAによる実装
    6.5.3 シェアードメモリの利用
    参考文献
    この章で学んだCUDA関数

    第7章 粒子解析とアニメーション表示
    7.1 粒子解析法
    7.2 粒子解析法アルゴリズムの実装
    7.2.1 CPU処理による実装
    7.2.2 GPU処理による実装
    7.3 VBOの導入
    7.3.1 VBOを用いた図形描画
    7.3.2 VBOによる粒子群の表示
    7.4 CUDAとVBOの併用
    参考文献
    この章で学んだOpenGL関数
    この章で学んだCUDA関数

    第8章 拡散方程式の数値解法とアニメーション表示
    8.1 差分法による拡散方程式の数値解法
    8.2 差分法アルゴリズムの実装
    8.2.1 CPU処理による実装
    8.2.2 GPU処理による実装
    8.2.3 シェアードメモリの利用
    8.2.4 テクスチャメモリの利用
    8.3 PBOの導入
    参考文献
    この章で学んだOpenGL関数
    この章で学んだCUDA関数

    第4部 CUDAによる複雑な図形処理
    第9章 メタボール法
    9.1 粒子群の濃度場
    9.2 ソートによる粒子群のセルへの割り当て
    9.3 実装の準備
    9.4 基本的なデバイス関数の定義
    9.5 カーネル関数の定義
    9.6 thrustライブラリ
    参考文献
    この章で学んだglut関数
    この章で学んだCUDA関数

    第10章 マーチングキューブ法
    10.1 マーチングキューブ法
    10.2 アルゴリズムの概要
    10.3 実装の準備
    10.4 テクスチャメモリの利用
    10.5 カーネル関数の定義
    10.6 Metaball.cppの修正
    参考文献
    この章で学んだOpenGL関数

    第11章 包含立体の利用
    11.1 包含ボックス
    11.2 ボックス定義の準備
    11.3 AABBとOBBの定義
    11.3.1 AABBの定義
    11.3.2 OBBの定義
    11.4 包含ボックスに関する計算
    11.4.1 点と包含ボックス間の距離
    11.4.2 包含ボックス間の交差判定
    11.5 階層的な包含ボックス
    11.6 プログラムの利用法
    参考文献

    第12章 立体間の衝突検出
    12.1 階層的な包含ボックスによる絞り込み
    12.2 ポリゴン間の並列交差判定
    12.3 撃力ベース法
    12.4 実装の準備
    12.5 階層的な包含ボックスによる絞り込み
    12.6 撃力ベース法による衝突の解消
    12.7 衝突判定
    12.8 デバイス関数
    12.9 カーネル関数
    12.10 プログラムの利用法
    参考文献
    この章で学んだOpenGL関数

    あとがき

    サンプルプログラムの使い方

    索引

     

     

    第1部、第2部はOpenGLの導入となっている。
    例えば第2章の「この章で学んだOpenGLとglut関数」は、
    ・glMatrixMode
    ・glOrtho
    ・glViewport
    ・glBegin
    ・glEnd
    ・glColor3f
    ・glVertex3*
    ・glutInitWindowSize
    ・glutInitWindowPosition
    ・glutReshapeFunc

    となっている。本のタイトルに忠実ではあるが、この辺りは読み飛ばしてもおおむね問題ない人が多いだろう。

    全部読んだわけではないが、印象として○○アルゴリズムをCとCUDAで実装しながら勉強するタイプの本。なのでCUDA文法やGPUの構造に関してはあまり踏み込んでいる印象がない。

    作りながら覚えるならちょうどいい印象を受けたが、CUDAの辞書として使いたいならお薦めできない。あくまで画像処理の本である。