a透视

我最近一直在做D3D游戏的视角,他遇到了很多麻烦,花了很多时间来解决。

关于代码错误的问题。但是好事多磨。我取得了一些成绩。在编写代码的过程中,

参考了大量的DirectX编程资料。同时也在国外N个论坛上出了名。

真正接触到了党,我学习并掌握了一些D3D节目的基本知识,实现了透视。我放在这里

把自己的经历和研究过程中的一些体会大致整理了一下,只是希望能找到。

对D3D感兴趣的朋友可以一起学习,不多说。让我们开始我们的教程。(描述

想象一下,我把下面的内容逐字打出来,没有复制粘贴)

在阅读本教程之前,你最好有一些C++的基础知识,你也需要一些基本的d。

irectX编程的基础。我的教程分为两部分。第一部分主要讲视角。

原因。第二部分主要讲透视dll的制作过程。

首先我们来看第一部分,主要讲解了透视的一些原理。

在讲透视之前,我们先讲一下什么是Z轴缓冲。

z轴缓冲区是DirectX中的成像元素之一。它是一个深度缓冲区,用于确定。

在计算机图形学中,渲染对象的明暗关系有时由硬件完成,有时由。

软件完成。在观察渲染对象时,有这样一个问题。如果一个对象在另一个中

如果一个物体在观察者后面并且离他很远,我们就看不见它。z轴减速

拉什也是一个深度缓冲。

上面说的可能有点抽象,我就直说了吧:Z轴缓冲就是告诉相机,比如

如果他在一个物体后面,那就不需要显示了。如果他在对象前面,就需要显示出来。

男性…

现在,根据上面的内容,你可能会说Z轴缓冲器被禁用以实现透视。但是事实

事实并非如此。你会注意到你会看到一切,甚至是场景之外的东西。

这意味着您必须找到一个对象,并在选择该对象时禁用Z轴缓冲。这是:

跨距(数据流中每个顶点占用的内存大小)、数量(渲染的顶点电缆

Lead span)和PrimitiveCounts(渲染图元的数量)。

以上三个决定了你看到墙(物)的时候想看到什么,大多数情况下都是这样。

人物模型(就是我想做一个人物视角)

如果直接禁用Z轴缓冲,则是满刻度透视,A已经玩过了。

大家都知道全比例透视可以用在冷冻工厂,但是在其他地图上,或者可以这么说

在他的游戏中,整个画面的透视效果很差,所以要实现人物的透视,必须找到游戏中的人。

物理模型表示。比如CF的人物模型表现为44和40,还有A(战地之王的人物模型)

符号是32),所以说人物透视,一定要找到人物模型。

然后禁用z轴缓冲。

现在让我们禁用Z轴缓冲。首先,定义人物模型logo。

#定义玩家身体(stride = = 44 | | stride = = 40)//注意这个& # 34;||

"意思是“或者”。这意味着& # 34;PlayerBody相当于44或者40。

//Stride这里是游戏中的角色模型logo。

好了,上面的代码定义了角色模型的身份,现在我们将启动D3D9中的Dr。

修改游戏中角色模型的渲染状态的函数。

下面的代码是在钩子上的DrawIndexedPrimitive函数。

复制代码

1.

lpdirect 3d vertexbuffer 8 Stream _ Data;

UINT Stride = 0;

if(m _ pd3d dev-& gt;GetStreamSource(0 & amp;数据流& amp步幅)== D3D_OK)

stream _ Data->;发布();

If(Chams)// chams这里是视角切换if(Player)。

{

{

//一旦游戏中Stride的值等于设定值,就会执行下面的代码:DrawIndexedPrim。

原始(设备,类型,最小索引,数量,起始索引,原始计数

t);

//墙后面是绿色装置-& gt;SetRenderState( D3DRS_ZENABLE,false);

设备->;SetTexture( 0,tex green);

//禁用z轴缓冲区drawindededprimitive(device,type,minindex,numverti)

ces,StartIndex,PrimitiveCount);

//如果游戏模型在墙的前面(也就是你能看到它)设备-& gt;SetRenderState( D3DRS_ZEN

能干,真实);

//打开Z轴缓冲区,填充蓝色器件–>;SetTexture( 0,tex blue);

DrawIndexedPrimitive(设备,类型,最小索引,数量,开始

Index,primitive count);

}

}

让我们继续:

如果你想知道透视着色的代码是如何工作的,它是通过消息队列来操作的。。

以下是他的工作流程:

如果要显示一个字符:

将字符涂成红色。

启用Z轴缓冲,当它在对象前面时是红色的。

禁用z轴缓冲

当它在物体后面时,它是黄色的。

禁用模板着色器。(这个我还没看懂)

然后像这样重复。说到重复,有人会问,什么是重复?我简单说一下。

游戏渲染角色模型时,是逐帧渲染的,每张图片都放在显存里。

图像从备份缓冲区到前台缓冲区,并显示在屏幕上。比喻就像放映幻灯片。

电影。速度慢的时候可以看成一个一个的,速度快的时候可以看成一个连续的画面。

所以上面的渲染过程每秒至少要执行24次,否则画面会卡顿。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论