【游戏逆向】D3D HOOK实现透视讲解

实现目的:

目前大部分游戏通过Direct3D实现3D效果,通过挂钩相应函数,可以实现3D透视,屏幕挂字效果。而透视,屏蔽特定效果,设置透明在很多游戏(特别是FPS)中发挥着巨大的作用!

实现思路:

[D3D]

DirectX的功能都是以COM组件的形式提供的。在Direct3D中,主要通过采取以下操作来实现编程:

调用适当的函数获取接口指针;

调用接口的方法(成员函数)来完成所需功能;

用完接口后,调用Release方法进行“释放”,注意释放顺序应该和获取它们的顺序相反。

D3D的实现流程:

大体可以分为:设计,渲染和显示三个部分。通过设计物体的顶点,贴图,材质等信息,并将坐标转换为屏幕坐标后,调用渲染方式,根据坐标变化,材质文理等计算亮度,进行背面消除,裁剪,投影和视口计算,最后在后备缓冲中绘制好图形交换到当前缓冲区。

设计阶段:

这里介绍部分概念方便大家理解

图元

在d3d编程中,所有的图形都是由图元组成的,例如:
【游戏逆向】D3D HOOK实现透视讲解_第1张图片
【游戏逆向】D3D HOOK实现透视讲解_第2张图片
这些图元分为点列,线列,线带,三角形列,三角形带,三角扇形

顶点缓存

顶点缓存通常除顶点坐标之外还包括法线,颜色,纹理等数据。

索引缓存

索引缓存就是将顶点的具体数据和代表图元格式的顶点顺序分开存储:顶点数据仍然放到顶点缓存区中,索引缓存区则按照图元格式,顺序存放顶点的索引。
【游戏逆向】D3D HOOK实现透视讲解_第3张图片
A,B,C,D对应的顶点缓

你可能感兴趣的:(游戏,3d)