DirectX9のマテリアル設定は、3Dオブジェクトの光の反射や拡散、鏡面、放射を柔らかく調整できる機能です。 C++では例えばD3DMATERIAL9構造体の各メンバーに各色成分と光沢を設定し、SetMaterialで適用する方法が一般的
続きを読む »DirectX9環境で解像度変更は、Windows APIを利用して実現できるので安心です。 まず、EnumDisplaySettingsで現在のディスプレイ設定を取得し、DEVMODE構造体内のdmPelsWidthやdmPelsHeig
続きを読む »DirectX9のポストプロセスエフェクトは、シーンのレンダリング後にオフスクリーンテクスチャへ描画し、フルスクリーンクワッド上でシェーダー処理を行う手法です。 被写界深度やモーションブラーなどの視覚効果を柔らかく実現し、ゲームやアプリの画
続きを読む »DirectX9では、光源視点でシーンの深度情報を取得し、テクスチャに保存する処理が行われます。 その後、通常の描画時に各ピクセルの深度と比較し、影がある部分を判定します。 これにより、自然な影表現が実現され、グラフィックの質が向上します。
続きを読む »DirectX 9のポイントライトは全方向に光を放ち、C++で手軽に利用できるライティング機能です。 位置、色、範囲、減衰といったパラメータで光の性質を細かく調整でき、シーンに柔らかな明暗の変化をもたらします。 直感的な設定が可能なため、3
続きを読む »DirectX9のデバッグテクニックを使うと、C++で開発するグラフィックスアプリの不具合を効率的に把握でき、迅速な改善が可能です。 HRESULTの返り値をチェックしたり、#define D3D_DEBUG_INFOで詳細情報を取得したり
続きを読む »DirectX9 のデバイスリセットは、レンダリング中にデバイスが失われたタイミングで、環境復帰のためにResetメソッドを使い再初期化する仕組みです。 レンダリング用リソースの一部が失われると、D3DERR_DEVICENOTRESETの
続きを読む »DirectX9のスワップチェインは、描画結果をバックバッファに保持し、その内容をフロントバッファへ切り替える仕組みです。 これにより、画面のちらつきが軽減され、スムーズな映像が実現されます。 C++では、Presentメソッドを利用して交
続きを読む »DirectX 9のノーマルマッピングは、3Dモデルに凹凸感を付与しリアルなライティング効果を得る技法です。 C++を用いて頂点シェーダーとピクセルシェーダー内で法線情報の変換を行い、光の当たり具合を反映させます。 簡便な実装で視覚効果を向
続きを読む »DirectX9のトランスフォームは、3Dオブジェクトの位置や向きを変えるための座標系変換機能です。 モデル座標からワールド座標、次にカメラ座標やスクリーン座標への変換を行い、平行移動や回転、拡大縮小を実現します。 各変換は行列を用いて計算
続きを読む »DirectX9のデプスバッファは3Dシーンの奥行きを管理する仕組みで、カメラからの距離に応じた隠面の正しい描画が可能になる仕組みです。 AutoDepthStencil機能により自動生成され、レンダリング前に深度をクリアすることで前フレー
続きを読む »DirectX9を使った3D描画は、Win32ウィンドウを用意しDirect3DCreate9でインターフェース取得後デバイスを初期化すれば始められます。 頂点バッファへモデルを送りRender LoopでBeginSceneとEndSce
続きを読む »DirectX9のステート管理は描画品質と速度を決める要となります。 ラスタライズ、ブレンド、サンプラーなどをSetRenderStateやSetSamplerStateで的確に設定し、切り替え回数を減らすことでGPU負荷を抑えられます。
続きを読む »DirectX9のスキニングでは、頂点が複数のボーン行列とウェイトを用いてシェーダで変換され、CPU負荷を抑えつつ自然な関節変形を実現できます。 ボーン行列を配列で渡し、各頂点で線形補間することで滑らかなアニメーションが得られます。 スキニ
続きを読む »DirectX9でのシャドウマッピングは、ライト視点で深度テクスチャを取得し、カメラ視点で深度比較を行って影を描く方法です。 深度バイアスとテクスチャ解像度が影品質を左右し、カスケード分割やPCFを併用するとセルフシャドウやジャギーを抑えつ
続きを読む »DirectX9のシェーダープログラミングは、GPUに頂点処理とピクセル処理を任せることで、高速かつ柔軟な描画を実現できます。 HLSLで頂点シェーダとピクセルシェーダを記述し、コンパイル後にDirect3Dへセットするだけで、独自の変換や
続きを読む »DirectX9のC++サンプルは、Win32ウィンドウを用意し、Direct3DCreate9でデバイスを取得、Clear→BeginScene→描画→EndScene→Presentのループで三角形やスプライトを描く手順を完結に示します
続きを読む »DirectX9はC++で動作する軽量APIで、Windows向け3Dゲームを高速に描画しながら入力やサウンドも一括管理できる点が魅力です。 シェーダーモデル2.0を活用すれば動的ライティングやエフェクトを低負荷で実装でき、古いGPUでも安
続きを読む »DirectX9はC++でリアルタイム3Dグラフィックスを描く代表的APIです。 デバイス初期化、レンダーステート管理、頂点・インデックスバッファ送信、テクスチャやシェーダー切替まで一貫制御でき、固定機能とプログラマブルパイプラインの両方に
続きを読む »