码迷,mamicode.com
首页 > 其他好文 > 详细

FPS游戏方框透视的实现原理

时间:2019-10-03 20:15:30      阅读:1130      评论:0      收藏:0      [点我收藏+]

标签:gdi   mamicode   info   exe   lse   mic   false   频繁   d3d   

FPS游戏可以说一直都比较热门,典型的代表有反恐精英,穿越火线,吃鸡等.基本上只要是FPS游戏都会有透视挂的存在,而透视挂还分为很多种类型,常见的有D3D透视,方框透视,还有一些比较高端的显卡透视,在透视实现难度上,方框透视是最复杂的一种,本次实验将学习方框透视的实现算法,并编写通用辅助实现透视效果.

首先来说一下D3D透视与方框透视的优缺点吧:

D3D透视: 其原理是通过Hook注入的方式挂接到相应DirectX库中的绘图函数上,在绘图之前禁用Z轴缓冲,Z轴缓冲就是要告诉摄像机,如果人物在箱子或墙的后面,就不用显示这个人物模型,如果人物在这个箱子或墙的前面,就强制渲染并显示他,通常会挂接DrawIndexedPrimitive这个绘图函数来感知绘图操作,并通过 SetRenderState(D3DRS_ZENABLE, FALSE) 函数修改缓冲参数,实现透视效果,相应的由于需要注入到游戏进程中,所以很容易被检测到,需要配合过检测才能奔放。

方框透视: 相比于D3D透视而言,方框透视是比较老掉牙的了,但是方框透视有一个非常大的优势那就是无需向进程中注入任何代码,所有的参数都是由程序中的算法计算得到的,并通过GDI绘图函数在窗体上直接绘制图形,这种方式的优点是很难被检测到,比较通用基本上支持任何的FPS游戏,而缺点就是绘制的图形频繁闪烁,这是因为游戏中的刷新频率与绘图函数刷新频率不一致导致的。

技术图片

未完待续.。。。。

FPS游戏方框透视的实现原理

标签:gdi   mamicode   info   exe   lse   mic   false   频繁   d3d   

原文地址:https://www.cnblogs.com/LyShark/p/11620244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!