指定されたカメラの位置などを指定して、3D のものを 2D 透視投影に変換するために使用できるコード例 (できれば C#) または単純な .Net 関数ライブラリ (安価または無料) を探しています。
検索して検索しましたが、見つかったものはすべて、主要なグラフィックス フレームワークを使用しているか、非常にデバイス指向であるか、またはその両方のようです。純粋なソフトウェアでデバイスに依存せず、.Net 2 で動作するものが必要です。
しかし、私はカメラビューを使用した実際の透視投影を望んでいます。画像を歪ませてやや遠近感を与えるような 2D 画像変換だけではありません。
編集:
答えてくれた人に感謝します。私が言うように、私はすでに多くの時間を検索に費やしてきたので、(これまでのところ) 存在しないものを探しているという答えが返ってきても、それほど驚くことではありません。
主要なパッケージに関与することになぜアレルギーがあるのかという質問に答えると、その理由は単純に「シンプルに保つ」というルールにある。私にとって、私がやろうとしているのは、ほんの少しのグラフィックス操作であり、10,000 以上の機能を実装する巨大な多目的パッケージに慣れる必要があるという考えを理解することはできません。私の小さな機能を実行できます。
編集 2 - 主に Miky 向け:
以下は、非常に特殊な関数が 1 つだけ必要な場合に、大規模で複雑なパッケージに関与することを避けたいという私の願望を正当化するために、もう一度試してみるための疑似プログラマーの哲学のとりとめのないビットです。本当にやるべきことがない限り、これを読んで時間を無駄にしないでください...
Miky は、.Net Framework には膨大な数の機能があることを正しく指摘していますが、私はそれらの機能の 1% の 1% も使用しないにもかかわらず、その使用方法を学ぶことを選択しました。はい、でも私は数百個を使用しているので、それだけの価値があります。(メモリ管理だけでも、死ぬほどの機能です。)
私は WinForms 用の Developer Express パッケージも使用しています。これには、私が決して使用しない何千もの関数も含まれています。しかし、私はリボン メニュー、ドッキング パネル、グリッド、ツリー ビュー、その他の数十、おそらく 100 以上の機能を使用しているため、すべての価値があります。
私は WinForms 製品用の MindFusion チャート作成も使用しています。これには、私が使用することのない数百の機能が含まれていますが、組織図とフロアプランの作成、ノードの移動、それらの相互リンク、再フォーマットをサポートする機能を使用しています。チャートとズームインとズームアウトと元に戻す...おそらく数十の関数を使用しているため、すべて価値があります。
ここでは、170,000 行のコードを含み、.Net Framework と Developer Express に大きく依存し、MindFusion にもある程度依存しているプログラムを使用しています。次に、3D 遠近法のレンダリングを少しだけ実行したいと考えています。実際には、実際の 3D でさえありません。私がやりたいのは、斜めから見た 2D 画像 (フロアプラン) を表示することです。フロアプランを互いに積み重ねて、おそらくフロアプラン間の間隔が誇張された透明な複数階建ての建物を表し、ユーザーが疑似建物を 1 つのコーナーまたは面から見たいかどうかを指定できるようにしたい-または別のコーナー、およびカメラの仰角。
それでおしまい。私が必要だと思うのは、これらの 2D フロアプランがカメラに対して傾いているため空間に浮かんでいるかのように 3D であるかのようにレンダリングし、カメラを移動できる 1 つまたは 2 つの C# メソッドです。これ以上何もない。
そして、正しいか間違っているかにかかわらず、主要な 3D ユニバース作成パッケージまたはデバイス/パフォーマンス指向のグラフィックス システムの学習に関与し始めると、この機能の価値よりも多くの時間を費やすことになると確信しています。そして、絶対に使用されないメガバイトのモジュールで、プログラムの実行時フットプリントを肥大化させたくありません。
しかし、この質問が受けたすべての提案と注意に感謝します。