多くのゲームであなたが話しているそのような効果の例があります。まず、被写界深度があります。これは、この例のように、カメラがそれに近いものだけに焦点を合わせているように、遠くにあるオブジェクトをぼやけて見せます。これに関連するサンプルをDirectX SDKパッケージでさらに探索することができます-彼らはそこにサンプルコードも持っています。OpenGLの場合、検索するとネット上に表示されます。
あなたが見たいかもしれない2番目のものは、名前が示唆するように、ジオメトリミップマッピングに似ていますが、ジオメトリミップマッピングまたはプログレッシブメッシュとして知られているものです。メッシュ内のポリゴンの数は、オブジェクトがカメラから遠ざかるにつれて減少します。これにより、パフォーマンスが向上します。D3Dには、プログレッシブメッシュの自動生成を支援する機能があります。ここにあります:
HRESULT WINAPI D3DXGeneratePMesh(
LPD3DXMESH pMesh,
const DWORD *pAdjacency,
const D3DXATTRIBUTEWEIGHTS *pVertexAttributeWeights,
const FLOAT *pVertexWeights,
DWORD MinValue,
DWORD Options,
LPD3DXPMESH *ppPMesh
);
これの例は次のとおりです。
編集:
次の画像を検討してください-
これはカメラのカリング錐台です。真ん中を通る線はLookAtベクトルです。ここで、プレーヤーが常に画面の中央に焦点を合わせたいと想定し、角度xを定義します。決定されたxよりも大きな角度で配置されるオブジェクトは、低解像度でレンダリングされ、角度内にあるオブジェクトは詳細にレンダリングされます。このように、画面の中央にあるオブジェクトは、側面にあるオブジェクトよりも詳細になります。プレーヤーが中心を見ていなければ、中心線をプレーヤーが見ている方向に合わせてください。(またはカメラ全体をその方向に回転させます)。