易语言教程_易语言源码_易语言写挂_易语言论坛_看流星社区

 找回密码
 注册
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
赞助广告位 请点击这里联系站长 QQ20209081
赞助广告位 请点击这里联系站长 QQ20209081
赞助广告位 请点击这里联系站长 QQ20209081
查看: 327|回复: 2

提供FPS方框透视四种绘制方式

[复制链接]
发表于 2018-3-1 17:36:12 | 显示全部楼层 |阅读模式
发表于 2018-6-11 00:06:37 | 显示全部楼层
我的天 要这么多币的吗
发表于 2018-10-3 05:59:00 | 显示全部楼层
分享吧  只是结论  我以为会稍微给点步奏的  后面注意点吧  
FPS方框透视四种绘制方式,给大家提供绘制最佳方框的思路。
1.GDI外部绘制
    这种绘制方式最为常见,游戏也不容易检测出,创建GDI设备在指定的窗口句柄上绘制,占用CPU很小,但是绘制到游戏里面会闪烁,原因是游戏FPS刷新频率与gdi绘制频率不同导致画出的方框会闪烁。

2.GDI双缓冲
    这种绘制方式有一部分和外部绘制相同,但是又不同,这种绘制方式不会使方框闪烁,但是占用CPU极高,原理是申请一块与游戏高度宽度相同的内存,把这块内存作为内存画布使用,把绘制的方框画到这块内存画布中,然后获取游戏的窗口句柄,使内存画布中的图像和游戏屏幕来回替换,这种绘制方式占用CPU,但是绘制效率很高,方框也不会闪烁,电脑配置高的可以研究下这种绘制方式。

3.GDI窗口绘制
    这种绘制原理和第一种一样,只不过不是绘制到游戏窗口,而是自己创建一个窗口,把方框绘制到这个窗口上,绘制效率快而且不易被检测,内存占用很小,但是有一个缺点,就是窗口不会自己刷新,需要自己写一个刷新窗口,使刷新窗口的频率大于等于gdi绘制频率,这样就窗口上的绘制内容就是连续的了,大家可以用这种绘制方式画方框,国外有一个FPS方框透视就是用这种原理,至于写法比这个精湛多了。

4.D3Dhook绘图
    大家都知道3D游戏的图形接口有2种,DirectX和OpenGL,大部分的FPS游戏都是用DirectX引擎,所以我们可以通过hook DirectX设备接口函数来绘制方框,这种绘制方式不占CPU,不闪烁,但是易被检测,DX设备会在内存中申请2块空间作为缓存区A和缓存区B,DirectX设备会在缓存区A中绘制图形,绘制图形的原理是通过绘图函数比如DX11的DrawIndexed,通过这个函数的参数我们可以看出它是根据索引缓存绘制一个非实例化的图形,在设备创建到初始化再到绘制图形,这一系列全部完成后DX11设备会用present把缓存区A映射到缓存区B,让缓存区B作为游戏屏幕并呈现场景,这样缓存区A与B来回映射达到游戏画面不断更新,所以我们可以hook掉present函数,并获取设备指针引入自己的绘图函数,这种绘制方式肯定不会闪烁,因为游戏使用的就是d3d图形接口,我们绘制方框的函数是在这个接口内游戏FPS刷新频率和绘制方框频率肯定是一样的,现在大部分FPS游戏都对present加了检测。
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|看流星社区  |网站地图

GMT+8, 2018-10-16 06:45 易语言论坛 易语言导航

Powered by 看流星社区 X3.2

©2011-2016 最好的辅助编程技术论坛

快速回复 返回顶部 返回列表