タグ

ブックマーク / www5d.biglobe.ne.jp/~noocyte (2)

  • データ型のアラインメントとは何か,なぜ必要なのか?

    以前このサイトとブログに,何度かアラインメントに関する記事を書きました (サイト内関連ページ参照). そのせいか「アラインメント」で検索して来てくれる人が多いので, 過去の記事に加筆修正してこのページを新たに作成しました. 加筆した点は次のとおりです. アラインメントとメモリアクセス回数の関係をわかりやすくするため, (ほんの少し) 図を導入しました. 「データがアラインされていないとメモリアクセス回数が増える」 と言葉で説明しているサイトは多いのですが, 図で示しているところはまだ見たことありません. アラインされていないアドレスにデータを書き込む場合, 読み出しの場合以上にメモリアクセス回数がかかる可能性があることを追記しました. 以前は「複合データ型 (配列,構造体,共用体) のアラインメント」はほとんど自明のことだと思っていたので軽く流していましたが, 意外なことにこれを解説してい

    edo_m18
    edo_m18 2015/04/10
    丁寧で分かりやすい。色々クリアになった。
  • 視野変換・射影変換 (ワールド座標系 ⇒ カメラ座標系 ⇒ 画面座標系)

    入力 E (eye):カメラ (視点) 位置 (カメラ座標系の原点でなくてもよい.) C (center):注視点 up:カメラの上方向を指定するベクトル カメラに対して前後に傾いていてもよいが,視線と平行であってはならない. OpenGL や DirectX のソースコードで up ベクトルをワールド座標系の真上方向 (0, 1, 0) に固定しているものをたまに見かけるが, これだとカメラを真上や真下に向けたときに何も見えなくなってしまう. (up と f が平行になるので,ビュー変換行列が定義できない.) OE (origin of eye):カメラ座標系の原点 P:任意の点 出力 カメラ座標系の正規直交基底 f (forward):カメラ前方向 (視線方向) の単位ベクトル u (up):カメラ真上方向の単位ベクトル r (right):カメラ右方向の単位ベクトル その他 (中間結

  • 1