に何らかの変換を適用することで、3D 正方形の円錐台を構築できるかどうかを知りたいですglutSolidCube(GLDouble size)
。ある種のせん断行列が関係していると推測していますが、これは組み込みの変換ではありません。
視錐台についてはまったく気にしていないことに注意してください (ご想像のとおり、これにより、Google 検索が歪められます)。シーンの一部として 3D 四角錐台が欲しいだけです。立方体から作成する方法についてのアイデアをいただければ幸いです。
せん断行列ではなく、透視投影の射影行列です。単位立方体の頂点の座標に逆射影行列を掛けて、錐台の頂点の座標を取得します。ワールド空間で視錐台の座標を取得するには、頂点を逆カメラ マトリックス (ビュー マトリックス) で乗算する必要もあります。
詳細な式については、こちらをご覧ください: http://www.songho.ca/opengl/gl_projectionmatrix.html
立方体を変形するには、必要な頂点を使用して VBO を作成するか、固定機能パイプラインを使用してクイックアンドダーティな実装が必要な場合は、多数の変形されたクワッドをレンダリングすることをお勧めします。
PS
フラスタムのコーナーを計算するコードの抜粋があります: http://www.gamedev.net/topic/606716-frustum-corners-from-view-projection/
はい、非常に射影行列が与えられた場合、立方体を錐台に変換することは可能です。最初に、錐台のエッジが収束する点である焦点距離 d を定義します。次に、ボリュームのすべてのコーナーに次の行列を掛けます。
P = [ 1 0 0 0
0 1 0 0
0 1 1/d 0
0 0 1 0 ]