=== 座標変換(モデルから、スクリーン投影→ピクセル化) === ![CG座標変換](http://www.cg-ya.net/wp-content/uploads/2012/06/coord_trans.gif) モデル座標 => ワールド座標変換(ワールド行列) ・モデルそれぞれの座標系だったものを、統一の座標系(ワールド座標)に変換する ・全部のモデルが同じ座標系の上に並ぶ ワールド => ビュー座標 ・カメラから見た時を基準にした座標 ・ワールド座標ではカメラがどこにあるかも設定してある。 ・そのカメラが、どの位置からどの方向を見ているかという、カメラを基準とした座標 ・ワールド座標が東西南北を基準にした地図だとしたら、ビュー座標は見る人の視点を基準に上下左右が決められたものというイメージです。 viewMatrix_ = XMMatrixLookAtLH(position_, target_, XMVectorSet(0, 1, 0, 0)); ワールドビュー座標変換マトリクスの作成関数 視点、注視点、UPベクトルを指定 ・視点    カメラの位置 ・注視点   カメラが見ている場所 ・UPベクトル カメラの上を表すベクトル(Yの+方向と一致することは多いけど、同じものではないことに注意) ビュー(カメラ) => プロジェクション座標 ・ローカル座標・ワールド座標・ビュー座標はすべて3次元の座標系 ・プロジェクション座標は3次元のデータを2次元に投影した時の座標系 ・スクリーンに映写するイメージ(風景を写真に収めるイメージ) projMatrix_ = XMMatrixPerspectiveFovLH(XM_PIDIV4, (FLOAT)800 / (FLOAT)600, 0.1f, 100.0f); プロジェクション行列の作成関数 fov(視野角) どのぐらいの角度を投影するか {{:game-engineer:classes:2023:game-programing-2:first-term:5:dn745869.petzold_figure1_hires_en-us_msdn.10_.png?400|}} aspect(スクリーンのアスペクト比) 画面の縦横比を指定 nearZ(ニア平面) farZ(ファー平面) {{:game-engineer:classes:2023:game-programing-2:first-term:5:dn745869.petzold_figure2_hires_en-us_msdn.10_.png?400|}} === ピクセル化のあれこれと、頂点の設定 === ・rdc.CullMode = D3D11_CULL_BACK; \\ D3D11_CULL_BACK\\ D3D11_CULL_FRONT\\ D3D11_CULL_NONE\\ ・rdc.FillMode = D3D11_FILL_SOLID;\\ D3D11_FILL_SOLID \\ D3D11_FILL_WIREFRAME \\ ・rdc.FrontCounterClockwise = FALSE; \\ FRONT: 前面\\ ClockWise:時計回り\\ CounterClockWise:反時計回り\\ どっちを表にするか?\\ CullModeとの組み合わせで、どの面を書いてどの面を書かないか決まるよ。\\ pContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); \\ ・D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST \\ ・D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP \\ があるよ。 \\