穿越火线透视外挂网(穿越火线手游透视挂网站)
时间:2022-04-09 06:46:57
小编:王大爷的红鞋
阅读:
最近一直在弄D3D游戏的透视,被他弄得焦头烂额,很多时间都花在了解决
代码错误的问题上。不过功夫不负有心人我取得了一些成果,在编写代码的过程
当中参阅了大量的DirectX编程方面的资料。同时也在国外N多论坛做了一个名
副其实的伸手党,了解和掌握了D3D程序实现透视的一些基础知识。在这里我把
我自己在研究过程中的心得体会和一些经验大体整理了一下,只是希望能够找到
对D3D感兴趣的朋友能够共同研究,话不多说了,下面开始咱们的教程。(说明
一下,下面的内容都是我一个字一个字敲出来的,没有复制粘贴)。
在看这篇教程之前,你最好有一些基本的C++的知识,此外还需要一些基本的D
irectX编程的基础。我的教程呢分为两个部分,第一部分呢主要讲一些透视原
理。第二部分主要讲透视dll的制作过程。
首先来看第一部分,主要是讲解一些透视的原理,
在讲透视之前首先来说一下什么是Z轴缓冲
Z轴缓冲就是DirectX中的成像元素之一 ,他是一个深度缓冲,用来决定
渲染对象的遮蔽关系 ,在计算机图形学中, 有时候通过硬件完成,有时候通过
软件完成。 在观察被渲染对象的时候就出现这样一个问题, 如果一个对象在另
一个对象的后面,并且距离观察者的距离较远那么我们是看不到他的。 Z轴缓
冲也就是深度缓冲。
上面说的可能有点抽象我就直白的说一下吧: Z轴缓冲就是要告诉摄像机,如
果他在一个对象的后面,就不用显示它了 ,如果他在这个对象前面,就得显示
他。
现在根据上面所说的,你可能要说把Z轴缓冲禁用来实现透视就是了。但事实情
况并不是这样。你会注意到,你会看到所有的东西甚至还有场景之外的东西也就
是说你必须找到某一个对象,再选这个对象的时候来禁用Z轴缓冲。这就是:
Strides(数据流中每个顶点所占内存的大小), NumVertices(渲染的顶点索
引的跨度),和 PrimitiveCounts(渲染的图元个数)。
上面这三个就决定了透视到墙(物体)后你想看到的东西,在大部分情况下就是
人物模型(也就是想弄人物透视)
如果直接禁用Z轴缓冲的话,那就是全图透视了,玩过AVA
的都知道全图透视在冰冻工厂是可以使用的,不过在其他地图,或者可以说在其
他游戏里,全图透视效果是很差的,所以要实现人物透视就必须找到游戏中的人
物模型表示。例如,CF的人物模型表示为44和40,AVA(战地之王的人物模型
标识为32),所以我们说的人物透视是必须找到人物模
型的表示然后再禁用Z轴缓冲
下面我们来禁用Z轴缓冲了。首先把人物模型标识来定义一下
#define PlayerBody ( Stride == 44 || Stride == 40 )// 注意这个 " ||
" 是“或”的意思。意思就是说"PlayerBody 等价于 44或者是40。
//这里的Stride即为游戏中的人物模型标识,
好了,上面的代码是对人物模型的标识进行了定义,下面就要开始D3D9中的Dr
awIndexedPrimitive函数来修改游戏中人物模型的渲染状态
下面的的代码就是在hook the DrawIndexedPrimitive 这函数之中
复制代码
1.
LPDIRECT3DVERTEXBUFFER8 Stream_Data;
UINT Stride = 0;
if (m_pD3DDev->GetStreamSource(0, &Stream_Data, &Stride) == D3D_OK)
Stream_Data->Release();
if(Chams)//这里的chams是透视开关 if(Player)
{
{
//一旦游戏中Stride的值等于所设定的值,就开始执行以下代码: DrawIndexedPrim
itive(Device, Type, MinIndex, NumVertices, StartIndex, PrimitiveCoun
t);
//在墙后面就是绿色 Device->SetRenderState( D3DRS_ZENABLE,false );
Device->SetTexture( 0, texGreen );
//禁用Z轴缓冲 DrawIndexedPrimitive(Device, Type, MinIndex, NumVerti
ces, StartIndex, PrimitiveCount);
//游戏模型在墙前面的话(就是可以看见) Device->SetRenderState( D3DRS_ZEN
ABLE, true );
//打开Z轴缓冲,并填充为蓝色 Device->SetTexture( 0, texBlue);
DrawIndexedPrimitive(Device, Type, MinIndex, NumVertices, Start
Index, PrimitiveCount);
}
}
我们继续:
如果你想知道透视上色的代码是如何运行的,它是通过消息队列进行操作的。.
下面就是他的工作流程:
如果人物要被显示:
给人物上色为红色.
启用Z轴缓冲, 在物体前面的时候为红色。
禁用Z轴缓冲
在物体后面的时候就为黄色
Disable stencil shaders.(这个我暂时还没搞懂)
然后这样不断重复。说到重复,有人就会问了,什么是重复。我简单地说一下吧。
游戏在渲染人物模型的时候,是一帧一帧的进行渲染的,放在显存中的中的每幅
图像从后备缓冲区到前台缓冲区并呈现到屏幕上。打个形象的比喻,好比放幻灯
片。速度慢了,可以看成是一张一张的,当速度很快时,就可以看成连续的画面。
所以上面的渲染过程至少每秒要执行24次,要不然画面就会很卡。
本文标签:
-
火影忍者羁绊433攻略(火影羁绊433隐藏人物)不知道小伙伴们有没有玩过冰封王座《火影忍者羁绊》这个地图的,下面为大家带来一组攻略。新世代来临,火之意志将由我们来继承! 《火影忍者羁绊》7.0版本将区别于以往版本玩时间:2022-04-22
-
火影忍者羁绊421(火影忍者羁绊421迪达拉出装)5月15日,在张店市民中心,张店区人民政府副区长王延峰为前来办理公司设立的张女士颁发了张店区第一张使用“电子身份证”办理的营业执照。“电子身份证我这还是第一次用,以后不时间:2022-04-22
-
火影忍者官网(火影忍者官网体验服)“火影忍者”正版授权卡牌手游《火影忍者-忍者大师》燃梦公测火爆体验中,见证我们的成长!游戏本次燃梦公测版本,为火影迷们带来全新超S级红卡忍者,红忍招募全面开启,木叶、晓、群时间:2022-04-22
-
火影忍者格斗小游戏(火影忍者格斗小游戏在线下载)【游戏介绍】《海贼王:燃血》是一款快节奏、丰富探索性的乱战游戏,与无双系列差别较大,角色恶魔果实能力所渲染的打斗特效别具一格,与以往《海贼王无双3》差距较大。传统角色萨时间:2022-04-22
-
火影忍者格斗单机游戏(火影忍者格斗游戏单机版大全)12007年,日本东京。全世界格斗游戏的最高舞台——“斗剧”《拳皇98》项目决赛赛场。一个18岁的中国少年站在台上,局促的接过话筒,犹豫了一下后问旁边的翻译:我要怎么说?翻译回答:时间:2022-04-22
穿越火线
- 类型:飞行射击
- 语言:简体中文
- 大小: 3686.4MB
- 版本: V1.0.75
- 星级:
热门阅读
- 暗黑3魔盒(暗黑3魔盒使用攻略)
阅读:3616
- dnf五一(dnf五一套2022)
阅读:2266
- 艾尔登法环摩恩城支线攻略 老头环摩恩城主女儿支线任务
阅读:2219
- 微博不小心点了催更怎么取消(视频催更怎么关)
阅读:1931
- 斗罗大陆小舞篇破解版(斗罗大陆小舞篇破解版安卓)
阅读:1647