开源项目:3Dmigoto-Armor 突破模型顶点数量限制的原理

我们都知道,3Dmigoto是一个很古老的项目,大概立项时间在2012年,持续开发跟进在2018年左右逐渐结束,在上一篇中,我们说到了如何迁移3Dmigoto的版本到VS2022,那么本节内容主要介绍作者的开源项目 3Dmigoto-Armor.

3Dmigoto-Armor项目本身已经成功迁移到了VS2022,所以下载下来直接就能编译,不过截至目前2023-09-07,它只配置好了x64的release模式的编译,其它的还没配置,如果你需要配置的话可以手动设置一下。

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

3Dmigoto-Armor是在3Dmigoto的基础上进行了一个微小的修改,使得它能够用于游戏打Mod。
这并不是说原始的3Dmigoto就不能打Mod了,而是原始的3Dmigoto并没有对D3D11_BUFFER_DESC结构的缓冲区大小进行修改,导致如果我们替换的模型的vertex数量如果超过了模型原本的vertex数量,就会导致超过的部分被截取掉,从而无法在游戏中完全显示。

要解决这个问题,就需要对D3D11_BUFFER_DESC进行修改,这里我们要提到ID3D11Device 接口, ID3D11Device 接口是创建和配置 Direct3D 11 设备的主要接口,它提供用于创建缓冲区、纹理、渲染目标和其他资源的方法。

要突破顶点数量限制,我们需要 ID3D11Device 接口的相关函数,例如 CreateBuffer() 方法,它用于创建缓冲区对象。通过 hook 这些函数,你可以拦截并修改创建缓冲区的参数,从而改变顶点数量限制。

猜你喜欢

转载自blog.csdn.net/weixin_42072754/article/details/132729336
今日推荐