图形设备接口:DirectX 图形接口指南

译者申明:    这些指南是我在阅读 DirectX8.1 SDK 中逐步翻译出来对于初次接触 DirectX Graphics 编程者而言这应该是很好上手资料其实本人就是从这些指南开始深入 Direct3D8.1 ;由于这是本人第次翻译英文材料言语不通词不达意的处定... [阅读全文]

directx:DirectX - tasy(I)(节选)

  我不会在这儿讲 DirectX 编程技术所以我重点要做是有关 DirectDraw 设计以及编写足够来使得能够建立并运行我们要求所建立结构能直接处理显存、支持键盘现在先看看我们需要点什么:   C 编译器 (MS VC 4.0 或更高)    DirectX 5.0+ SDK (或更高)没有话去 www.microsoft.com 下载   许多必要经验... [阅读全文]

directx:DirectX - tasy (II)(节选)

  我们继续上次话题   上讲中我们介绍了下具体步骤下面清单 1.0 包含了所有功能以及个展示如何操作显存和键盘例子我们简单地将它作为个演示// LISTING 1.0 - DIRECT X 5.0 GAME CONSOLE ////////////////////////////////////// INCLUDES ///////////////////... [阅读全文]

directx7.0:DirectX7.0运用心得

设定完视窗模式或全屏幕模式后,如果你是设定成全屏幕模式的话(也就是独占模式),接著就必须设定显示模式。 objDD.SetDisplayMode 640, 480, 16, 0, DDSDM_DEFAULT 参数中的640,480指的是640x480的模式,而16指的是16万色,如果是8的话则是256色,想改变显示模式的话只要改变这三个变数就可以了,一般常用的模式有: 320x200 16万 32... [阅读全文]

directx编程:在C++ Builder中进行DirectX编程(2)

2.3 装入并显示图形文件 为了简明地介绍说明采用DirectDraw图形文件显示技术我们以举例dx2介绍图面、图形文件装入、图形缩放、图形在图面上显示等初步概念和实现技术 2.3.1 DirectDraw显示图形技术 为了显示图象DirectDraw必需首先拥有类似画布(canvas)绘图空间DirectDraw并不向在DOS下那样简单地将显示缓存Cache作... [阅读全文]

directx9.0c使用:使用DirectX9进行遮盖剔除

对象剔除是图形编程中个重要方面渲染那些看不见物体是十分耗时然而就目前来说当务的急是优化剔除算法本身通常剔除算法会消耗大量处理时间 传统算法对于般情况处理已经提升得很快了也改进得足够多了但还是留下了些许遗憾些算法剔除了太多物体而另些剔除数量却不够多遮盖剔除原理告诉我们个事实那就是个物体即便在视锥内仍有可能被遮住而看不见这里如图1.1所示有 5个多边形被显示在屏... [阅读全文]

directx9.0c:深入Managed DirectX9(十七)

第十章 使用助手类(Using the Helper Classes)绘制直线  在第 4章里我们就讨论过有关绘制直线问题:使用基本图元里line list或line strip绘制直线但是这两种直线都不能改变宽度也没有抗锯齿功能(除非整个场景都使用了抗锯齿)  对于区别类型应用来说绘制直线可能是最普通常见操作也可... [阅读全文]

directx9.0c:深入Managed DirectX9(十八)

Rendering to Surfaces  你是否玩过那种可以打开个倒视镜赛车游戏?或者可以在屏幕表面显示当前赛道赛车游戏这些效果都是通过把同个场景(通常使用区别摄像机)渲染为个纹理来实现事实上这虽然听起来很复杂却相当容易实现再从第 5章例子开始首先自然先声明将用来渲染纹理添加代码:private Texture renderT... [阅读全文]

directx9.0c:深入Managed DirectX9(十九)

第十章 可编程渲染管道以及高级着色语言入门  至今为止我们都在使用固定功能管道(fixed-function pipeline)进行渲染回到那段古老日子(DirectX 8.0的前)这是唯渲染物体思路方法固定功能渲染管道本质上就是系列用来控制如何渲染特定类型数据规则以及行为虽然在某些方面这已经够用了但却限制了许多开发人员使用高级功能能力举... [阅读全文]

directx9.0c:深入Managed DirectX9(二十)

使用可编程管道渲染Mesh  简单 3角形例子唯特点就是:简单你不可能只使用个顶点和个 3角就完成个游戏因此这节我们将渲染整个mesh删除文件里有关顶点和顶点缓冲声明添加mesh对象:private Mesh mesh = null;对于渲染mesh来说有个方便地方就是在渲染时会自动设置vertex declaration... [阅读全文]

directx9.0c:深入Managed DirectX9(十四)

使用纹理资源  Managed DirectX中所有纹理资源都继承于BaseTexture类而BaseTexture类又是从Resource类继承而来下面列出了BaseTexture对象中几个新思路方法LevelCount   This read-only property species the numb... [阅读全文]

directx9.0c:深入Managed DirectX9(十五)

第 9章 使用其它Mesh类型简化Mesh(Simplying Meshes)  我们花了大量时间来学习扩展库中基本Mesh类但实际上还有3种其它Mesh类型我们没有讨论过在这章中我们就来看看这几个对象我们已经知道如何通过使用Mesh类Simply思路方法创建个简化过mesh通常情况下使用简化mesh只是为了显示低细节模型但在任何场景中都不可能为... [阅读全文]

directx9.0c:深入Managed DirectX9(十六)

 现在运行可以看到和原来样效果显示了所有细节模型不停旋转现在来处理移动摄像机键盘事件这里代码和的前simplication mesh例子里很相似先声明摄像机位置变量以及每次移动距离常量private float cameraPos = 580.0f;private const  MoveAmount... [阅读全文]

directx9.0c:深入Managed DirectX9(十三)

第 8章 理解资源(Understanding Resoruces)资源是在Direct3D中渲染复杂对象重要部分在这章学习中我们将会讨论有关资源些高级特性包括:  静态和动态资源  Updating the buffers d in meshes  使用各种锁定标志  使用不安全代码最优化性能初识Reso... [阅读全文]

directx9.0c:深入Managed DirectX9(十二)

(接深入Managed DirectX9(十))  现在可以正式添加代码来优化mesh了我们希望同时保留原来mesh(经过clean那个)和简化的后mesh因此首先田间个变量保存简化的后meshprivate Mesh simpliedMesh = null;的后添加创建简化过mesh在LoadMesh思路方法最后添加如下... [阅读全文]

directx9.0c:深入Managed DirectX9(六)

更多渲染技术在讨论过了基础渲染思路方法的后,我们应该把注意力放到些能提高性能,并且让场景看起来更好渲染技术上来:渲染各种图元类型至今位置我们只渲染过种类型图元称为 3角形集合实际上我们可以绘制很多种区别类型图元下边列表描述了这些图原类型:PoList――这是个自我描述图元类型它把数据作为系列离散点来绘制不能使用这种类型绘制indexed primitiv... [阅读全文]

directx9.0c:深入Managed DirectX9(七)

定义Mesh  虽然有很多时候你需要手动创建顶点和索引数据但更普遍情况是从外部资源加载已有顶点数据比如从个文件通常我们使用.X文件来保存这些信息在前章里代码大部分都用来创建几何体了对于简单 3角形和立方体来说这似乎是完全可行但设想假如用相同方式来创建拥有上万个顶点物体将所花费时间和努力都将是很可怕  幸运是Managed DirectX里有个可以封装并且... [阅读全文]

directx9.0c:深入Managed DirectX9(八)

使用Managed DirectX编写游戏选择游戏  虽然很多有关3D游戏编程高级主题还没有讨论但我们已经有足够背景知识来写个简单游戏了这章我们将使用至今学过知识再加上点点新东西来创建游戏  真正开始写游戏的前最好先拟份计划我们需要确定写什么类型游戏它将有哪些最基本特性等等考虑到目前技术限制自然不能写太复杂游戏这将是个简单游戏在MS-DOS环境下曾经有个... [阅读全文]

directx9.0c:深入Managed DirectX9(九)

特别提示:  为什么需要使用时间呢?为了方便讨论假设我们每帧都把赛道移动相同距离也许在你电脑上它运行很完美但在其他系统上呢?找台比你系统配置低系统运行看看吧赛道看起来会运行相当缓慢同样换到配置较高系统上赛道又会移动快很多原因在于你计算是基于帧速率(frame rate)假设在你系统上每秒可以跑60帧那么所有计算过程都是依赖于这个静态帧速率而来因此在每秒可... [阅读全文]

directx9.0c:深入Managed DirectX9(十)

(接 Managed DirectX9  9)添加障碍物  恭喜这就是你创建第个3D互动了已经完成了模拟赛车移动虽然实际上是赛道在移动但显出效果确实是赛车在移动至此游戏已经完成大半接下来是添加障碍物时候了和添加Car类样添加个名为Obstacle类我们将使用区别颜色形状mesh作为障碍物通过mesh类创建stock对象可以改变mesh类型... [阅读全文]

directx9.0c:深入Managed DirectX9(十一)

Using Advanced Mesh Features这章我们将要调论些有关Mesh对象高级特性包括:    优化(Optimizing)mesh数据    简化(Simplying)mesh    使用新顶点数据元素创建mesh    连接(Welding)顶点克隆Mesh数据  终于你可以在场景里加载并渲染mesh了虽然场景里只有少... [阅读全文]

directx9.0c:深入Managed DirectX9(五)

使用简单渲染技术  至今为止我们渲染工作效率都很低每次渲染场景时都要分配新顶点列表并且所有东西存储在系统内存里现代显卡集成了足够显存把顶点数据存放在显存可以获得大幅新能提升:存放在系统内存里数据渲染每帧时都要拷贝到显卡这会带来极大损失只有移除每帧时这种分配才能帮助我们提高性能使用顶点缓冲(Using Vertex Buffers)  Direct... [阅读全文]

directx9.0c:深入Managed DirectX9(二)

3维化 3角形  再来看看我们看起来并不是那么“ 3维”而且我们所做都能用GDI+轻易完成So我们应该怎样在3维空间里绘图并且给人留下深刻印象呢?实际上简单修改就能达到这样效果  如果你还记得先前在我们创建第个 3角形时候我们使用了个叫做“经过变换”(transformed)坐标系统这种坐标是显示器屏幕区所使用坐标也是最容易定义如果我们使用未变换过坐标系统会怎... [阅读全文]

directx9.0c:深入Managed DirectX9(三)

拖放窗口时自动重置Device  任何曾经使用C或VB开发DirectX3D人都知道在改变窗口大小时需要重新设置devicd否则DirectX3D会按原来分辨率继续渲染场景并且把结果拷贝到(通过拉伸)新窗口当通过Windows FormControl控件创建device时聪明Mamaged DirectX能发现你改变了窗口大小并且重置device... [阅读全文]

directx9.0c:深入Managed DirectX9(四)

选择正确Device  The number of possible permutations when cretion a device is quite staggering. 如今市场里有大量区别类型显示卡记住每种显卡所支持特性几乎时不可能你应该询问device... [阅读全文]

directx9.0c:深入Managed DirectX9(一)

 Device类是DirectX里所有绘图操作所必须可以把这个类假想为真实图形卡场景里所有其他图形对象都依赖于device你计算机里可以有个到几个device在Mnaged DirctX3D里你可以控制任意多个device  Device共有 3个构造现在我们只讨论其中个但我们会在后边内容里讨论其他先来看看具有如下签名构造public Devic... [阅读全文]

directx9.0c:深入Managed DirectX9(二十一)

使用Hight Level Shader Language  至今为止我们对于编程管道和HLSL学习还根本没有表现出它强大来所实现功能都可以通过固定管道来完成然而还有很多高级功能是固定管道不能完成只有使用HLSL才能完成这章我们将深入学习HLSL教你如何使用这门技术来完成固定管道不能完成任务包括:*简单顶点动画*简单颜色动画*纹理混合*光... [阅读全文]

directx9.0c:深入Managed DirectX9(二十二)

添加镜面高光(Specular Highlights)  至今为止还有种灯光没有讨论过就是镜面高光镜面高光让物体呈现出闪闪发亮效果同时也让物体看起来更加真实虽然使用固定管道也能实现镜面高光但这种计算是基于顶点这节我们将用编成管道来实现镜面高光  使用上章渲染茶壶例子作为开始保留的前实现漫射光代码这样可以对两种光照效果做个对比另外显示些文字告诉用户当前使用... [阅读全文]

directx9.0c:深入Managed DirectX9(二十三)

第十 3章 渲染骨骼动画(Rendering Skeletal Animation)  所有游戏都不可能只有静态物体而是充满了动态元素比如带动画人物通常这些动画都是通过动作捕捉技术记录下来然后通过3D模型里骨骼来实现当然除了这些复杂动画以外还包括缩放旋转位移等简单操作这章我们将讨论以下内容:加载帧层次(loading frame&... [阅读全文]
1 共1条 分1页