オープンソース プロジェクト: 3Dmigoto-Armor のモデル頂点数の制限を突破する原理

3Dmigoto が非常に古いプロジェクトであることは誰もが知っています。このプロジェクトはおそらく 2012 年に設立され、継続的な開発とフォローアップは 2018 年頃に徐々に終了しました。前の記事では、3Dmigoto バージョンを VS2022 に移行する方法について説明しました。このセクションでは主に作者のオープンソース プロジェクト 3Dmigoto-Armor を紹介する内容です。

3Dmigoto-Armor プロジェクト自体は VS2022 に正常に移行されているため、ダウンロード後直接コンパイルできますが、2023 年 9 月 7 日の時点では、x64 リリース モード コンパイル用にのみ設定されており、その他は設定されていません設定が必要な場合は、手動で設定できます。

Github: https://github.com/airdest/3Dmigoto-Armor

3Dmigoto-Armor は、3Dmigoto をベースにわずかに修正を加えたもので、ゲームの改造に適しています。
これは、元の 3Dmigoto を変更できないという意味ではありませんが、元の 3Dmigoto は D3D11_BUFFER_DESC 構造体のバッファ サイズを変更しません。その結果、置き換えるモデルの頂点の数がモデル本来の頂点数を超えると、超えた部分が切り取られ、ゲーム内で完全に表示できなくなります。

この問題を解決するには、D3D11_BUFFER_DESC を変更する必要があります。ここで ID3D11Device インターフェイスについて説明します。ID3D11Device インターフェイスは、Direct3D 11 デバイスを作成および構成するためのメイン インターフェイスです。これは、バッファー、テクスチャ、レンダー ターゲット、その他のリソースを作成するためのメソッドを提供します。 。

頂点数の制限を突破するには、バッファ オブジェクトの作成に使用される CreateBuffer() メソッドなど、ID3D11Device インターフェイスの関連関数が必要です。これらの関数をフックすると、バッファーの作成に使用されるパラメーターをインターセプトして変更することができ、それによって頂点の制限を変更できます。

おすすめ

転載: blog.csdn.net/weixin_42072754/article/details/132729336