最終更新:2008-07-19 (土) 15:48:20 (5760d)  

参考図書/フルスクラッチによるグラフィックスプログラミング
Top / 参考図書 / フルスクラッチによるグラフィックスプログラミング

 


内容

CHAPTER1 開発環境について

CHAPTER2 Windowsグラフィックの基礎

  • 2.1CGの基礎
    • 画面表示までの流れ
    • の表現について
    • 画素の並び
    • dpi?解像度について
    • フレームレート?について
  • 2.2GDIプログラミングの基礎
  • 2.3メモリ上に画像を作る
    • もう一つの画像表示方法
    • メモリアクセスできるバッファをつくる
    • 表示する
    • 点を打って表示を確認する

CHAPTER3 グラフィックプログラミング~導入編~

  • 3.1画像を扱うクラスを作る
    • 画像クラスを設計する
    • 基本的なメソッドの実装
    • Windowsで使えるクラスを作る
  • 3.2矩形転送?をしてみよう
    • 矩形を転送してみよう
    • こんな単純でいいの?
    • ボトルネックは何だろう?
  • 3.3クリッピング?で無駄を省く
    • クリッピング?を行った矩形転送?
    • 矩形転送?クリッピング?関数を実装する
    • 矩形塗りつぶしのクリッピング?関数を実装する
    • 速度を比較する
  • 3.4最適化ってなに?
  • 3.5固定小数?表現
    • 固定小数?表現について
    • 固定小数?表現の注意点
  • 3.6アセンブラ入門

CHAPTER4 グラフィックプログラミング~実践編~

  • 4.1ピクセル演算?
    • 矩形転送の派手な演出
    • カラーキー付き矩形転送
    • 基本中の基本「アルファブレンディング?
    • アルファブレンディング?で矩形塗りつぶし
    • 色々な演算 「加算?」「乗算?」など
    • 最上位の成分を使う
    • ANDフィルタ?,ORフィルタ?
    • まとめ
  • 4.2線を引く
    • 縦線・横線を引こう
    • 斜めの線も引こう
    • 少し凝った線
  • 4.3簡単な図形を描く
    • 図形を描こう
    • 円を描く
    • 三角形を描く(1)
    • ちょっと寄り道、内積・外積
    • 三角形を描く(2)
    • 効率よく三角形を描く
    • もっと効率よく三角形を描く
    • 多角形を描く(1)
    • 多角形を描く(2)
  • 4.4エフェクト処理?
    • 画面を派手に演出する
    • 画像を波のように揺らす
    • 最適化して揺らす
    • もう少し複雑に揺らす
    • 回転・拡大・縮小
    • フィードバック処理
  • 4.5曲線とシェイプ?
    • 直線だけで満足できますか?
    • 曲線を描いてみよう
    • 自由な形状ってどう描くんだろう?
    • 多角形で円を描く
    • パスで定義した図形をレンダリングする
  • 4.6アンチエイリアシング?
    • 1ピクセルの壁を越える
    • 人間の目の特性を利用する
    • エッジを滑らかにしてみる
    • 円のアンチエイリアシング?
    • 多角形のアンチエイリアシング?
    • 三角形のアンチエイリアシング?の改善
    • ライン描画での簡単アンチエイリアシング?
    • 矩形転送にもアンチエイリアシング?
    • 回転処理のアンチエイリアス
  • 4.7テクスチャマッピング
    • 矩形転送だけじゃ物足りない
    • テスクチャマッピング?の考え方
    • テスクチャマッピング?の実装
    • 最適化を行う
    • 便利な関数を作る
    • この方式の問題点
  • 4.8平均化?処理
    • 色の平均を取ろう
    • まずはモザイク
    • アルファ値?を考慮する
    • 画像をぼかす
    • 移動ぼかし(Motion Blur?
    • ガウスぼかし(Gaussian Blur?
  • 4.9ブラシストローク?
    • ブラシストローク?の基本
    • バッファリング?して、取得した座標を平滑化する
    • 輝度を比較して、より綺麗な線を描く
    • 曲線で補間する
    • アンドゥに対応する
    • 水彩風の表現をする

CHAPTER5 画像解析?

  • 5.1HDR画像について
    • HDR画像って何?
    • ダイナミックレンジって何?
    • HDR画像の例
    • そもそも、なんでHDRが必要なの?
    • HDRIフォーマットの種類
    • ツールをそろえよう
    • HDRIを見よう
    • HDRIをいじろう
    • HDRIを弄ろう(具体例)
    • HDRIを撮ろう(用意編)
    • HDRIを撮ろう(撮影編)
    • HDRIを撮ろう(合成編)
    • ファイル読み込み&トーンマップ(自前実装)
    • トーンマッピング?
  • 5.2色空間について
    • 色空間って何だろう?
    • 人間の目のシステム
    • 等色関数?
    • 色空間
    • RGB色空間?
    • CMY色空間?
    • XYZ色空間?
    • YCrCb?YUV
  • 5.3ヒストグラムの表示
  • 5.4レベル補正?ガンマ補正?
    • レベル補正?ってなに?
    • レベル補正?をしてみよう
    • ガンマ補正?について
    • ガンマ補正?をしてみよう
  • 5.5オプティカルフロー
    • 解析系のお話
    • オプティカルフロー
    • どうやって取得しようか?
    • 実装
    • 検出例
    • あれ? 遅くない?
    • 高速化
  • 5.6ハフ変換
    • 直線?を検出しよう
    • ハフ変換て何?
    • 基本的なアイデア
    • 実装
    • 結果
  • 5.7直交変換の基礎
  • 5.8ウェーブレット変換
  • 6.1BMPファイルを扱う
    • 好きな画像を表示させよう
    • 基本中の基本、ビットマップ形式
    • ビットマップファイルを書き込む
    • ビットマップファイルを読み込む
    • ビットマップファイルを「簡単に」読み込む
    • ビットマップファイルを表示する
  • 6.2zlibを使う
    • zlibとは
    • 配布サイトからソースを入手
    • ソースアーカイブを展開してみる
    • zlibのビルド(C++Builder編)
    • zlibのビルド(VisualStudio .NET 2003?編)
    • zlibを使ってみよう
  • 6.3JPEGファイルを扱う
    • JPEGとは
    • 配布サイトからソースを入手
    • ソースアーカイブを展開してみる
    • JPEGライブラリのビルド(C++Builder編)
    • JPEGライブラリのビルド(VisualStudio .NET 2003?編)
    • ロード・セーブ関数を書く
    • ロード・セーブ関数のビルド(C++Builder編)
    • ロード・セーブ関数のビルド(VisualStudio .NET 2003?編)
  • 6.4PNGファイルを扱う
    • PNGとは
    • 配布サイトからソースを入手
    • ソースアーカイブを展開してみる
    • PNGライブラリのビルド(C++Builder編?
    • PNGライブラリのビルド(Visual Studio.NET2003?編)
    • ロード・セーブ関数を書く
    • ロード・セーブ関数のビルド([[C++Builder編)
    • ロード・セーブ関数のビルド(Visual Studio.NET2003?編)
  • 6.5TGAファイルを扱う
    • TGAとは
    • 配布サイトからソースを入手
    • TGAライブラリのビルド(C++Builder編?
    • TGAライブラリのビルド(Visual Studio .NET 2003編)
    • ロード・セーブ関数を書く
    • ロード・セーブ関数のビルド([[C++Builder編)
    • ロード・セーブ関数のビルド(Visual Studio .NET 2003編)
    • **CHAPTER7 TIPS
  • 7.1マイクロタイルアレイ?
    • これしか方法はないの?
    • 画像を細かく分けて確保する
    • MTAの利点
  • 7.2Webカメラを使おう
  • 7.3タブレットからの入力
    • タブレットについて
    • DLLの復習
    • DLLを呼び出そう
    • DLL内の関数名を調べる
    • Wintab?のラッパークラスを作る
    • CTablet?を組み込む
  • 7.4コールバック?関数
    • アプリケーションが固まってしまう
    • コールバック関数?で進捗を報告する
    • C++Builderでのサンプルコード
  • 7.5乱数ノイズ