DirectX7を使用して2d(z座標が0)の頂点およびインデックスバッファを使用して3D効果を作成しようとしています。DirectXの頂点レンダリング:菱形のために正しく表示するテクスチャを取得できません
それは絵で説明する方が簡単です:
問題は行が壊れているということです。彼らはまっすぐでなければならない。この画像をレンダリングするには、三角形で分割し、DrawIndexedPrimitiveVBを使用してレンダリングします。明らかに三角形のそれぞれは少し違っていて、なぜ私は見えません。
ここには何か些細なことがありますか?
私はこれが役立つかどうかわからないんだけど、ソースとデスティネーションクワッドは以下の通りです:私は、溶液または少なくとも回避策を見つけ
SPoint4:= pBounds4(1, 1, W - 2, H - 2);
DPoint4:= Point4(ProjTo2dX(i, FlyDist + DeepDist, W), ProjTo2dY(0, FlyDist + DeepDist, H), ProjTo2dX(W - i, FlyDist, W), ProjTo2dY(0, FlyDist, H), ProjTo2dX(W - i, FlyDist, W), ProjTo2dY(H, FlyDist, H), ProjTo2dX(i, FlyDist + DeepDist, W), ProjTo2dY(H, FlyDist + DeepDist, H));
3dテクニックを避けるためにこのテクニックを使用しなければならなかったので、私はこの回答を受け入れます。そのため、必要に応じて私のアプリケーションをDirectXからGDIにフォールバックすることができます。 – Kaitnieks
実際には、これは問題を解決しません。エラーは細分化されたメッシュ内の三角形の面積に比例するため、ジオメトリ全体で同じ問題が複数回発生します。 2Dやピクセル単位の操作とは関係ありませんが、GDIを使用する方が簡単です。 – jheriko
正式にはあなたは完全に正しいですが、実際には十分に十分であり、欠陥は目立っていません。当時、それは私の唯一の解決策でしたが、私は開発者としてそれがハッキーだと知っていましたが、エンドユーザーは結果を楽しんでいませんでした。私は次回プロジェクトを開くときにナタンのソリューションを実装しようとします。 – Kaitnieks