DirectX程序的设计复习资料全

合集下载

009-010 DirectX基础

009-010 DirectX基础

颜色缓冲区是位于系统内存或显存里的一块内存块,对应于将要显示的一 颜色缓冲区是位于系统内存或显存里的一块内存块 块二维显示区域。
2.2 Direct3D基础
2.2.3 Direct3D中的基本概念
3.缓冲区
• 深度缓冲区 存储的是像素点的深度信息。
• 模板缓冲区
模板缓冲区是一个存储每个像素信息的附加缓冲区,它类似于深度缓冲区 模板缓冲区是一个存储每个像素信息的附加缓冲区 主要存储的是像素点的模板信息。
实现声音的播放,并且可以支持外部声音的捕捉 并且可以支持外部声音的捕捉。 DirectX Music
2.1 DirectX概述
2.1.2 DirectX开发库
DirectPlay
实现网络连接。
DirectInput
管理鼠标、键盘、操作杆等输入输出设备 操作杆等输入输出设备。 DirectShow
实现流媒体的管理。
2.2 Direct3D基础
2.2.3 Direct3D中的基本概念
1.像素(Pixel)、分辨率(Resolution Resolution)和填充率(Fillrate) 像素又叫Picture element。数字图像是由按一定间隔排列 数字图像是由按一定间隔排列、亮度不同的像 点构成的,形成像点的单位称为“像素 像素”,像素是图像的最小单位。
COM的优点 COM COM接口永远不会改变; COM是独立于语言的(language language-independent); COM只能通过方法来访问,而不能直接访问数据成员 而不能直接访问数据成员。
2.1 DirectX概述
2.1.3 DirectX编程约定和命名规范 编程约定和命名规范
2.2 Direct3D基础

《DirectX程序设计》19秋期末考核-0001

《DirectX程序设计》19秋期末考核-0001

《DirectX程序设计》19秋期末考核-0001------------------------1.Windows SDK方式的开发中,响应菜单或按钮我们需要关注的消息是:A.WM_CREATEB.WM_COMMANDC.WM_MENUD.WM_BUTTON正确答案:B2.()是Direct3D用来存储绘制到屏幕上的每个像素点深度信息的一块内存缓冲区A.广度缓存B.深度缓存C.深度测试D.广度测试正确答案:B3.()是图形中最基本的几何对象。

A.点C.向量D.三角形正确答案:A4.利用模板缓存来阻止对后台缓存村长哦功能某些特定区域进行绘制,判定是否将某个像素写入后台缓存的决策过程称为()A.模板测试B.深度缓存C.深度测试D.Alpha测试正确答案:A5.()对象是用来指定字体属性的。

A.LPD3DXFONTB.LPDIRECT3D9C.LPDIRECT3DDEVICE9D.RECT正确答案:A6.DirectX9中发布了高级着色器语言,是()A.GLSLC.CgD.C++正确答案:B7.()变换后的的几何体位于观察坐标系中。

A.局部变换B.取景变换C.世界变换D.空间变换正确答案:B8.()的功能是对进入管线的每一个像素点进行着色处理A.像素着色器B.着色器C.顶点着色器D.可编程着色器正确答案:A9.以下哪个释放顺序是正确的。

A.Direct3D对象、Direct3D设备对象B.Direct3D设备对象、Direct3D对象C.顺序任意D.无需释放正确答案:B10.()是一个由相互连接的线段组合成的造型,程序可用它产生不封闭的多边形。

A.点列表B.线段列表C.线段条带D.三角形列表正确答案:C------------------------1.D3D中的常见的矩阵变化( )A.旋转B.缩放C.平移D.组合变换正确答案:ABCD2.投影变换包括哪几种投影方式。

A.平面投影B.透视投影C.正射投影D.缩放投影正确答案:BC3.DirectX主要由()和()所构成。

清华大学DirectX游戏编程第18章(全20章)

清华大学DirectX游戏编程第18章(全20章)
2
第18章 Vertex Shader的介绍
主要目标: 学习如何在可编程渲染管道中定义顶点 数据结构的数据成员。 学习关于顶点数据成员的不同应用。 学习如何创建、设置以及销毁一个 Vertex Shader。 学习如果通过Vertex Shader来实现 cartoon渲染效果。
3
18.1 顶点声明(Vertex Declaration)
11
18.3 使用Vertex Shader的步骤
下面列出了创建和使用Vertex Shader 下面列出了创建和使用 所必须完成的步骤。 所必须完成的步骤。 (1) 编写并编译Vertex Shader。 (2) 创建一个IDirect3DVertexShader9 接口来代表基于已经编译过的Vertex Shader代码的Vertex Shader。 (3) 通过IDirect3DDevice9接口的 SetVertexShader方法启用Vertex Shader。
17
18.4 示例:散射光
Setup函数主要完成了如下任务。 函数主要完成了如下任务。 函数主要完成了如下任务
(1) (2) (3) (4) (5) 创建茶壶网格。 编译Vertex Shader代码。 创建基于已编译代码的Vertex Shader。 通过常量表得到指向Shader程序中几个变量的句柄。 通过常量表初始化Shader程序中的变量。
HRESULT IDirect3DDevice9::SetVertexShader( IDirect3DVertexShader9 *pShader );
该函数只需要一个参数, 该函数只需要一个参数,指向需要启用的 Vertex Shader的IDirect3DVertexShader9接 的 接 例如,如果要启用18.3.2小节中创建的 口。例如,如果要启用 小节中创建的 Shader,可以进行如下调用: ,可以进行如下调用:

DirectX3D 笔记

DirectX3D 笔记

内容摘自《DirectX 9.0 3D 游戏开发编程基础》章节一.1.必备数学知识二.1.初始化Direct3D2.(固定)绘制流水线3.Direct3D 中的绘制4.颜色5.光照6.纹理映射7.融合技术8.模板三.9.字体10.网格(一)11.网格(二)12.自定义Camera 类13.地形绘制14.粒子系统15.拾取四.16.着色语言HLSL17.顶点着色器18.像素着色器19.效果框架一.1.必备数学知识1.1向量及坐标系选取,D3D 中以LH/RH 标记左手/右手坐标系。

1.2向量运算:数乘点积-用于计算两个向量的夹角(cos θ)及判断向量垂直。

叉积-计算与两个向量所在平面垂直的向量,可用于面片法向量的计算。

1.3矩阵:在3D 图形应用中,常用4X4矩阵和1X4行向量进行运算。

由于多数变换无法用3阶矩阵表示3维变换,因此3D 变换中的矩阵为4维矩阵。

由于3维坐标空间中点和向量具有相同的表示形式,因此在进行运算时,将点和向量扩展至4D 空间时,通过如下形式:123(,,,1)p p p p =表示点(保证能平移变换);以123(,,,0)v v v v =表示向量(防止平移变换)。

1.4 3维空间中的变换:平移矩阵、旋转矩阵、比例变换矩阵1.5平面D3DXPLANE 在D3D 中存储平面及相应操作。

平面定义为满足0()0n p p ∙-=的所有点的集合,因此可通过平面法向量n 和平面上一点0p 表示,在代码中存储n 和0d n p =-∙表示平面;平面可被看做4D 向量(n,d )进行变换;当平面被规范化(法向量为单位向量且重新计算d ),则n p d ∙+为p 点到平面的最短有符号距离。

1.6射线定义为0()p t p tu =+。

射线与平面的相交判定用于拾取的实现。

二.1. 初始化Direct3D1.1 Direct3D 提供了操纵图形设备(通过HAL 硬件抽象层)的API 。

由HAL 提供的硬件支持的功能可被D3D 接口操作;硬件不支持时由REF 设备实现,由D3DDEVTYPE 枚举类型成员指定。

DirectX游戏编程第20章(全20章)

DirectX游戏编程第20章(全20章)
HRESULT ID3DXEffect::SetVertexShader( D3DXHANDLE hParameter, LPDIRECT3DVERTEXSHADER9 pVertexShader );
(7) 把特效文件中hParameter所指定的 把特效文件中 所指定的 PixelShader变量设置为 变量设置为pPShader所指向的值: 所指向的值: 变量设置为 所指向的值
HRESULT ID3DXEffect::SetString( D3DXHANDLE hParameter, CONST LPCSTR pString );
(4) 把特效文件中 把特效文件中hParameter所指定的变量设置为 所指定的变量设置为pTexture所指向的纹 所指定的变量设置为 所指向的纹 理:
HRESULT ID3DXEffect::SetMatrix( D3DXHANDLE hParameter, CONST D3DXMATRIX *pMatrix );
16
20.5 设 置 常 量
(3) 把特效文件中 把特效文件中hParameter所指定的变量设置为 所指定的变量设置为pString所指向的字符 所指定的变量设置为 所指向的字符 串变量: 串变量:
HLSL内建的 内建的VertexShader和PixelShader 内建的 和 数据类型分别是用于描述Vertex Shader和 数据类型分别是用于描述 和 Pixel Shader。它们用于在特效框架中指定一 。 个特定的渲染Pass中所需的特定的 中所需的特定的Vertex 个特定的渲染 中所需的特定的 Shader和Pixel Shader。 和 。 VertexShader和PixelShader都可以在应用 和 都可以在应用 程序中通过ID3DXEffect接口来设置,该接口 接口来设置, 程序中通过 接口来设置 主要有两个方法—— 主要有两个方法 ID3DXEffect::SetVertexShader和 和 ID3DXEffect::SetPixelShader,分别用来设 , 置上面的两种对象。 置上面的两种对象。

《DirectX程序设计》复习资料(全)

《DirectX程序设计》复习资料(全)

《DirectX程序设计》课程期末复习资料第一章3D游戏开发的数学基础本章包含的全部知识点:●点和向量●直线与平面●矩阵与坐标变换●坐标系章节重点:矩阵和坐标变换第二章Windows编程基础本章包含的全部知识点:●基本概念介绍●Windows程序结构●Win32程序开发实例第三章DirectX快速入门本章包含的全部知识点:●DirectX概述●Direct3D 底层结构概述●DirectX9.0的配置和安装章节重点:DirectX9.0的配置和安装第四章 DirectX程序框架本章包含的全部知识点:●Win32+C+Direct3D的基础框架●DXUT框架章节重点:Win32+C+Direct3D的基础框架第五章文本显示本章包含的全部知识点:●文本绘制流程●Win32程序框架实现●DXUT程序框架实现章节重点:Win32程序框架实现第六章基本图形的绘制本章包含的全部知识点:●图元●灵活顶点格式(FVF)●使用顶点缓存绘制图形●索引缓存●颜色表示法●渲染状态●绘制准备●D3DX几何物体●实例设计与实现章节重点:顶点缓存索引缓存第七章变换本章包含的全部知识点:●摄像机●顶点变换●光栅化●实例章节重点:顶点变换第八章 3D数学基础补充本章包含的全部知识点:●常见坐标系●向量●矩阵●线性变换章节重点:●线性变换第九章光照和材质本章包含的全部知识点:●真实感图形基本概念●Direct3D中的光照●Direct3D中的材质●光照和材质例子章节重点:Direct3D中的光照Direct3D中的材质第十章纹理映射本章包含的全部知识点:●纹理贴图●纹理坐标●纹理寻址模式●纹理过滤●纹理混合状态●纹理实例解析章节重点:纹理寻址模式纹理过滤第十一章深度测试和反走样本章包含的全部知识点:●深度缓存与深度测试●图形反走样●深度测试实例章节重点:深度缓存与深度测试第十二章网格(一)本章包含的全部知识点:●ID3DXMesh●子集和属性缓存●绘制●邻接信息●优化●属性表●创建一个Mesh●例子章节重点:子集和属性缓存创建一个Mesh第十三章网格(二)●X文件格式解析●读取X文件●渐进网格●渐进网格例子章节重点:深度缓存与深度测试第十四章混合和模板本章包含的全部知识点:●混合因子●混合计算●Alpha来源●Alpha混合实例●模板章节重点:Alpha混合实例第十五章着色器入门本章包含的全部知识点:●着色器概述●HLSL的变量●HLSL的函数●HLSL基本语法●在Direct3D中使用HLSL 章节重点:Alpha混合实例第十六章顶点着色器●顶点着色器概述●顶点声明●使用顶点着色器●顶点着色器实例第十七章像素着色器本章包含的全部知识点:●像素着色器概述●使用像素着色器●HLSL采样器对象●多重纹理●例子程序一、客观部分:(单项选择、多项选择、不定项选择、判断)(一)、选择部分1.D3DPRESENT_PARAMETERS参数很多,关于其中参数之一windowed的理解正确的是(ABD)A.取值FALSE则渲染全屏B.取值TRUE则渲染窗口C. int类型D.BOOL类型E.double类型★考核知识点: D3DPRESENT_PARAMETERS2.以下属于Direct 3D定义的图元类型的有(ABCD)A.点列表B.线段条带C.三角形列表D.三角形条带E.四边形列表★考核知识点: 图元3.以下属于Direct 3D提供的着色模式的是(AB )A.平面着色模式B.高洛德法着色模式C.渐变着色模式D.单颜色着色模式★考核知识点: 着色模式4.下面属于Direct3D提供的创建旋转矩阵的函数的是(ABC)A.D3DXMatrixRotarionXB. D3DXMatrixRotarionYC. D3DXMatrixRotarionZD. D3DXMatrixRotXE. D3DXMatrixRotY★考核知识点: 变换5.以下属于Direct3D提供的简化纹理过滤的过程的是(ABCD)A.最近点采样B.线性过滤C.各向异性过滤D.mipmap过滤★考核知识点: 纹理过滤6.D3DPRESENT_PARAMETERS参数很多,下面理解正确的是(ABCD)A.Windowed取值FALSE则渲染全屏B. BackBufferCount表示后备缓冲的数目C. SwapEffect表示交换缓冲类型D.BackBufferFormat表示后备缓冲的格式★考核知识点: D3DPRESENT_PARAMETERS7.以下属于Direct3D中提供的标准光源的是(ABC )A.点光源B.方向光源C.聚焦光源D.多点光源★考核知识点: 光源8.关于灵活顶点格式下列说法正确的是(ABD)A. D3DFVF_DIFFUSE表示顶点数据中包含的是漫反射颜色值;B. D3DFVF_SPECULAR表示顶点数据中包含的是镜面反射下的颜色值C. D3DFVF_XYZRHW表示顶点数据中包含的是未经过坐标变换的顶点坐标D. D3DFVF_XYZ顶点数据中包含未经坐标变换的顶点坐标考核知识点: 灵活顶点格式解析:C项应该是经过坐标变换后的顶点坐标9.关于顶点Alpha描述正确的是(AB)A.如果在程序中直接指定每个顶点的颜色,直接给出每个顶点颜色的Alpha 值。

directx从入门到精通(direct简介)

directx从入门到精通(direct简介)

返回总目录第一篇DirectX目录第一章 DirectX简介1.1 DOS已经过时1.2 加速DirectX1.3 加速计算机工业1.4 Directness原理1.5 Direct结构1.6 DirectX组件1.7 小结第二章基础2.1 期望什么2.2 COM(对象组件模型)入门2.3 编程经验 242.4 调试DirectX2.5 总结第三章开始使用DirectX3.1 安装3.2 文档3.3 例子程序源代码3.4 其他有用的信息3.5 使DirectX开始工作3.6 总结第一章 DirectX简介到目前为止,Microsoft Windows下的计算机游戏还没有一个辉煌的历史──它的成功还受到多媒体技术方面的限制。

Windows所提供的应用程序和PC平台之间的设备独立性使得游戏和多媒体开发者备受压力,这是因为设备独立性技术使得软件和硬件之间增添了许多中间层次,因此要想在Windows平台上生成平滑、快速的动画和紧凑、实时的输入和声音是非常困难的。

Windows的中心思想就是要把开发者和应用程序从硬件中分离出来,但这一点对于那些想直接操作硬件而获得最大速度的游戏开发者来说是致命的。

市场需要的是高性能的游戏,因此,对于那些想把Windows作为计算机游戏平台的推广者来说,“DOS!DOS!DOS!”是他们经常遇到的对DOS游戏的赞歌!1.1 DOS已经过时然而,MS-DOS也有它自已的问题,其中最棘手的是硬件设备的支持。

PC机的游戏开发者是不能享受到游戏机开发者的那种平台一致性的。

对于游戏机软件开发者,他们晚上可以睡得很香,因为白天所写的代码将在上百万台同样的机器上运行。

而PC机的开发者却不能这样,他们老是梦见新的图形协处理器、数字游戏杆、3D加速卡和实时的输入设备,他们自已也知道,在下一个游戏中将需要支持更多的硬件。

所有的PC游戏都要利用目前最好的硬件以获取最佳性能,这使得那些小游戏软件开发公司很难跟上硬件发展的步伐。

南开大学22春“计算机科学与技术”《DirectX程序设计》期末考试高频考点版(带答案)试卷号3

南开大学22春“计算机科学与技术”《DirectX程序设计》期末考试高频考点版(带答案)试卷号3

南开大学22春“计算机科学与技术”《DirectX程序设计》期末考试高频考点版(带答案)一.综合考核(共50题)1.可以存储RGB数据的结构包括()。

A.DWORDB.D3DCOLORC.D3DCOLORVALUED.D3DXCOLOR参考答案:ABCD2.三角形属性ID存储在Mesh的属性缓存中,由于每个三角形都对应一项属性缓存,所以属性缓存中的项目数等于Mesh中的三角形的个数。

()A.正确B.错误参考答案:A3.D3D中的光照模型有:()A.环境光B.漫反射C.镜面反射D.全反射参考答案:ABC4.如果没有使用材质和问题,当前绘制像素的Alpha分量来自每个顶点颜色设置的Alpha值。

()A.正确B.错误参考答案:A5.模板定义包含哪些项()A.模板名字B.GUIDC.数据项D.用于控制模板的限制程度参考答案:ABCD6.观察体的大小依赖于窗口的大小。

()A.正确B.错误参考答案:A7.当需要对场景进行矩阵V的取景变换,选择下面的()。

A.Device-SetTransform(D3DTS_PROJECTION,&V)B.Device-SetTransform(D3DTS_WORLD,&V)C.Device-SetTransform(D3DTS_TEXTURE0,&V)D.Device-SetTransform(D3DTS_VIEW,&V)参考答案:D8.()可以用来判断向量叉乘值的方向。

A.左手定则B.右手定则C.左手坐标系D.右手坐标系参考答案:B9.直线与平面的夹角小于等于90°。

()A.正确B.错误参考答案:A10.利用模板缓存来阻止对后台缓存村长哦功能某些特定区域进行绘制,判定是否将某个像素写入后台缓存的决策过程称为()。

A.模板测试B.深度缓存C.深度测试D.Alpha测试参考答案:A11.()对象是用来指定字体属性的。

A.LPD3DXFONTB.LPDIRECT3D9C.LPDIRECT3DDEVICE9D.RECT参考答案:A12.常见的纹理寻址模式有()。

《DirectX程序设计》全部试题及50%试题答案

《DirectX程序设计》全部试题及50%试题答案


B

1
11
3
绘制
单选题

2
调用渲染状态设置函 D3DRS_MULTISAMPLEANTIA 数SetRenderState(), LIAS##TRUE##FALSE##D3D 参数1为() RS_SAMPLEANTIALIAS 如果要对Mesh进行优 化,需要知道Mesh的 三角形的邻接信息情 况,这些信息存储在 ()中 使用 OptimizeInplace()进 行网格优化后,Mesh 的几何信息将按照属 性进行排序,这样各 个子集的顶点/索引将 组成连续的块 除了进行几何信息的 排序外,还将创建一 个 属性表,该表是 () 使用 SetAttributeTable( )方法来直接设置属性 表 已经指定了定点数和 面数,同时也分配了 适当大小的内存给顶 点缓存、索引缓存以 及属性缓存等,只是 没有填入相应的数据 称为() 在3DMAX等3D建模工具 中创建好模型,模型 转换为扩展名为.x的 文件,称() 邻接矩阵##邻接缓存##深 度缓存##邻接数组 D
判断题

2
纹理阶段混合状态用 于指定当前纹理颜色 值和Alpha值的混合方 法 ()是Direct3D用来 广度缓存##深度缓存##深 存储绘制到屏幕上的 度测试##广度测试 每个像素点深度信息 的一块内存缓冲区 通常情况下,深度缓 存用于判断三维空间 中物体的遮挡情况 设置深度缓存是指设 置深度测试成功时对 深度缓存如何操作 图形学中称由于采样 频率不足而造成的失 真为走样,反走样通 过多重采样改善图形 锯齿效果 渲染后物体模型通常 是由三角形图元组成 的,我们称它为一个 Mesh结构 若要从缓存中只读不 写数据,就不需要锁 定缓存,用完后解锁 三角形属性ID存储在 Mesh的属性缓存中, 由于每个三角形都对 应一项属性缓存,所 以属性缓存中的项目 数等于Mesh中的三角 形的个数

南开大学22春“计算机科学与技术”《DirectX程序设计》期末考试高频考点版(带答案)试卷号4

南开大学22春“计算机科学与技术”《DirectX程序设计》期末考试高频考点版(带答案)试卷号4

南开大学22春“计算机科学与技术”《DirectX程序设计》期末考试高频考点版(带答案)一.综合考核(共50题)1.以下哪个释放顺序是正确的()A.Direct3D对象、Direct3D设备对象B.Direct3D设备对象、Direct3D对象C.顺序任意D.无需释放参考答案:B2.三角形属性ID存储在Mesh的属性缓存中,由于每个三角形都对应一项属性缓存,所以属性缓存中的项目数等于Mesh中的三角形的个数。

()A.正确B.错误参考答案:A3.()是Direct3D用来存储绘制到屏幕上的每个像素点深度信息的一块内存缓冲区。

A.广度缓存B.深度缓存C.深度测试D.广度测试参考答案:B4.实现光照所要用的函数有()A.SetRenderState()B.SetMaterial()C.SetLight()D.LightEnable()5.三角形条带的顶点顺序必须是按照顺时针画的。

()A.正确B.错误参考答案:A6.可以存储RGB数据的结构包括()。

A.DWORDB.D3DCOLORC.D3DCOLORVALUED.D3DXCOLOR参考答案:ABCD7.常见的纹理寻址模式有()。

A.重叠纹理寻址模式B.镜像纹理寻址模式C.钳位纹理寻址模式D.边界颜色纹理寻址模式参考答案:ABCD8.()是图形中最基本的几何对象。

A.点B.线C.向量D.三角形参考答案:A9.B.D3DXMatrixScalingC.D3DXMatrixRotationAxisD.D3DXMatrixMultiply参考答案:ABC10.下面有哪些函数表示物体的基本变换是()A.D3DXMatrixTranslationB.D3DXMatrixScalingC.D3DXMatrixRotationAxisD.D3DXMatrixMultiply参考答案:ABC11.当需要对场景进行矩阵V的取景变换,选择下面的()。

A.Device->SetTransform(D3DTS_PROJECTION,&V);B.Device->SetTransform(D3DTS_WORLD,&V);C.Device->SetTransform(D3DTS_TEXTURE0,&V);D.Device->SetTransform(D3DTS_VIEW,&V);参考答案:D12.在DirectX对窗口进行渲染之前,无需先对窗口进行渲染方面的配置。

《DirectX程序设计》期末试卷及答案

《DirectX程序设计》期末试卷及答案

一、选择题(本题共10小题,每小题3分,共30分。

单选或者多选)1.为了求平面的法向量,我们通常的方法是找到平面上相互不平行的两个向量,求他们的(C )。

A.点积B.相加C.叉积D.相减2. 为了能够用Alpha分量来描述像素的透明度,必须将源混合因子和目标混合因子分别设置为(B)。

A.D3DBLEND_ZERO和D3DBLEND_ONEB.D3DBLEND_SRCALPHA和D3DBLEND_INVSRCALPHAC.D3DBLEND_SRCCOLOR和D3DBLEND_INVSRCCOLORD.D3DBLEND_SRCALPHA和D3DBLEND_DESTALPHA3. 在Direct3D中,我们可以自由定义顶点的格式,下面哪个不是灵活顶点格式的标记(D)。

A. D3DFVF_NORMALB. D3DFVF_XYZC. D3DFVF_TEX1D. D3DFVF_TEX4.以下哪些项是对表面像素深度缓存的格式描述的枚举常量(AD)。

A.D3DFMT_D32 B.D3DFMT_DXT1C.D3DFMT_R8G8B8 D.D3DFMT_D24S85. 在进行纹理映射的时候,为了调整纹理的大小去适应屏幕三角形的大小,我们通过设置纹理过滤器来设置纹理的过滤方式,通常需要设置的过滤器有(ABC)。

A.放大过滤器B.缩小过滤器C.多级渐进纹理过滤器D.线性过滤器6.Direct3D中的三种基本的变换类型不包括下面的哪项(B)。

A.比例变换B.翻转变换C.平移变换D.旋转变换7.当需要对场景进行矩阵M的投影变换,选择下面的( A )。

A.Device->SetTransform(D3DTS_PROJECTION, &M);B.Device->SetTransform(D3DTS_WORLD, &M);C.Device->SetTransform(D3DTS_TEXTURE0, &M);D.Device->SetTransform(D3DTS_VIEW, &M);8.通过(B)技术,我们可以将2D图像数据映射到3D图元上,以增强场景的真实感。

directx从入门到精通(direct简介)

directx从入门到精通(direct简介)

directx从入门到精通(direct简介)返回总目录第一篇DirectX目录第一章 DirectX简介1.1 DOS已经过时1.2 加速DirectX1.3 加速计算机工业1.4 Directness原理1.5 Direct结构1.6 DirectX组件1.7 小结第二章基础2.1 期望什么2.2 COM(对象组件模型)入门2.3 编程经验 242.4 调试DirectX2.5 总结第三章开始使用DirectX3.1 安装3.2 文档3.3 例子程序源代码3.4 其他有用的信息3.5 使DirectX开始工作3.6 总结第一章 DirectX简介到目前为止,Microsoft Windows下的计算机游戏还没有一个辉煌的历史──它的成功还受到多媒体技术方面的限制。

Windows所提供的应用程序和PC平台之间的设备独立性使得游戏和多媒体开发者备受压力,这是因为设备独立性技术使得软件和硬件之间增添了许多中间层次,因此要想在Windows平台上生成平滑、快速的动画和紧凑、实时的输入和声音是非常困难的。

Windows的中心思想就是要把开发者和应用程序从硬件中分离出来,但这一点对于那些想直接操作硬件而获得最大速度的游戏开发者来说是致命的。

市场需要的是高性能的游戏,因此,对于那些想把Windows作为计算机游戏平台的推广者来说,“DOS!DOS!DOS!”是他们经常遇到的对DOS游戏的赞歌!1.1 DOS已经过时然而,MS-DOS也有它自已的问题,其中最棘手的是硬件设备的支持。

PC机的游戏开发者是不能享受到游戏机开发者的那种平台一致性的。

对于游戏机软件开发者,他们晚上可以睡得很香,因为白天所写的代码将在上百万台同样的机器上运行。

而PC机的开发者却不能这样,他们老是梦见新的图形协处理器、数字游戏杆、3D加速卡和实时的输入设备,他们自已也知道,在下一个游戏中将需要支持更多的硬件。

所有的PC游戏都要利用目前最好的硬件以获取最佳性能,这使得那些小游戏软件开发公司很难跟上硬件发展的步伐。

第2章DirectX编程

第2章DirectX编程

18
2.3.7 顶点处理
顶点是组成3D空间的基本元素,在Direct3D中 对顶点的处理有两种方法,即软件处理方法和 硬件处理方法。 软件顶点处理在任何配置下都是被支持的,并 且也都可用;但是硬件顶点处理只有在显卡支 持硬件顶点处理的情况下才可以使用。
19
2.3.8 设备性能
Direct3D提供的所有特性在D3DCAPS9结构中 都有对应的数据成员或对应位。通过Direct3D 中的函数初始化并填充一个D3DCAPS9结构对 象可以获得一个特定硬件的性能参数。 通过检查填充后的D3DCAPS9对象中的相关数 据,就可以知道硬件设备是否支持Direct3D的 某个特性。
12
2.3.3 像素格式
D3DFMT_R8G8B8 指定像素采用24位数据格式进行描述。 D3DFMT_X8R8G8B8 指定像素使用该32位像素格式。 D3DFMT_A8R8G8B8 指定像素采用该32位像素格式。 D3DFMT_A16R16G16B16 指定像素使用该64像素格式。
常用的D3DFORMAT类型的部分枚举值:
10
2.3.2 重采样
重采样技术是指通过像素矩阵来描述图像时使图像更 加平滑的技术。重采样技术常常用于屏幕抗锯齿操作。 采用重采样技术和不采用重采样技术描述图像时的差 别。
不采用重采样
采用重采样
图2.3
11
2.3.2 重采样
D3DMULTISAMPLE_TYPE包含用来指定重采样级别 的枚举值,其主要枚举值包括:
Direct3D是一个图形应用程序的底层接口(API),通过 该接口可以直接使用硬件的3D加速性能来渲染三维场 景,可以认为Direct3D是应用程序和硬件设备之间的 一个中间媒介。 图2.1展示了应用程序、Direct3D和硬件设备之间的 层次关系。 Direct3D不能直接和硬件设备打交道的原因是微型计 算机拥有各种各样的显卡,每种显卡的能力都不一样, 而且它们对相同功能的实现方式也不一样。

第6章 VBNet的DirectX程序设计

第6章 VBNet的DirectX程序设计

12
6.5.5 显示线框
device.RenderState.FillMode=FillMode.Wi reFrame
13
6.6 输入事件
键盘和鼠标作为一种输入设备,在DirectX 中也有相应的类用于表示这类输入设备, 那就是 Microsoft.DirectX.DirectInput.Device 6.6.1 键盘输入 6.6.2 鼠标输入
18
6.8 材质、贴图与灯光
在三维场景中,材质、贴图和灯光是必不 可少的组成部分,材质用于决定光线如何 影响物体的表面,贴图使得物体表面显得 更加真实,灯光则直接影响到场景的逼真 度和渲染效果。
19
6.8.1 材质
我们通常看到的物体表面颜色都是灯光颜色在 物体上经过反射得到的颜色,物体的材质决定 了它与光线交互的方式。在DirectX中提供了一 个Material结构用于描述物体表面对外界光线 的处理方式,这个结构主要有如下属性:环境 光(Ambient)、漫反射光(Diffuse)、自发 光(Emissive)、反射光(Specular)和反射 高光清晰度(SpecularSharpness)。
14
6.7 摄像机变换
6.7.1 准备场景
Public Sub SetUpCamera() '摄像机 device.Transform.Projection = Matrix.PerspectiveFovLH(Math.PI / 4, Me.Width / Me.Height, 0.3F, 500.0F) device.Transform.View = Matrix.LookAtLH(New Vector3(0, 0, -30), New Vector3(0, 0, 0), New Vector3(0, 1, 0)) End Sub

DirectX考点归纳

DirectX考点归纳

Direct3D游戏编程入门教程第2版考点归纳试卷的考题类型有:单选题、多选题、名词解释/简答题、分析题等。

第01章 Direct3D/DirectX历史 1第05章基础7第06章动画初步16第07章纹理映射基础P109 27第08章使用多重纹理32第09章使用高级shader语言进行shader编程50第01章 Direct3D/DirectX历史DirectX8有哪些新特性:1 Point spite(点精灵)2 3D体纹理3 对direct3DX库的改进4 N-patches5 顶点shader和像素shaderPoint spite可以生成:火花、爆炸、雨、雪等效果。

3D体纹理可以完成:光照效果、点光、聚光效果、大气效果。

DirectX8实用库增强的DirectX7的辅助功能:1枚举设备配置2设置一个设备3统一处理全屏模式或窗口模式4处理调整大小的操作5向量和矩阵的计算操作6简化图像文件的加载和纹理的创建7绘制简单的形状、精灵和立方体贴图(cube map)。

DirectX8提供的新的功能:1、蒙皮网格(skinned mesh)2、多分辨率的细节级别(Level-Of-Detail, LOD)几何体3、.X文件的高阶表面数据(higher-order surface data)支持4、N-patches(可以在图形卡的帮助下提高模型的精度,即传入一个低精度多边形模型数据,完成镶嵌操作(加入更多的多边形))DirectX8.0支持的shader:顶点shader标准vs_1_1 和像素shader标准ps_1_1DirectX8.1支持的shader:像素shader标准ps_1_2、ps_1_3、ps_1_4DirectX9支持的shader:像素shader标准ps_2_0、ps_2_x、ps_2_a 、ps_3_0DirectX9引入了:HLSL(High-Level Shader Language)剪裁测试(scissor test)行抗锯齿(line anti-aliasing)球形映射texgen双面模板(two-sided stencil),允许给封闭几何体添加阴影体(shadow volume)多重渲染目标(multiple render target)的渲染能力(G-buffer)多重元素纹理(multi-element texture)位移贴图(displacement map)24位颜色精度支持根据监视器gamma支持来改变gamma值片断颜色(fragment color)->剪裁测试->alpha测试第02章 HAL和COM概述HAL (Hardware Abstraction Layer,硬件抽象层)HAL和COM技术使Direct3D能在不同硬件上发挥最快速度的同时,具有一个通用的接口和向后兼容的能力:1 具备一致的API才有生存力2 若硬件不支持Direct3D所要求的一些特性,应有一种相对低效的机制来保证程序能继续运行3 接口的变革应尽可能降低程序员学习新接口难度所有使用早期DirectX版本开发的游戏都保证能在将来的DirectX版本下运行游戏根据HAL所提供的特性来开启或关闭相应的特征,过程如下:1游戏检查HAL的能力;2游戏适当地开启或关闭某些特征;3若某些特征被关闭,便会以一种低效的方法来实现,可能是模拟某个特征。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《DirectX程序设计》课程期末复习资料第一章3D游戏开发的数学基础本章包含的全部知识点:●点和向量●直线与平面●矩阵与坐标变换●坐标系章节重点:矩阵和坐标变换第二章Windows编程基础本章包含的全部知识点:●基本概念介绍●Windows程序结构●Win32程序开发实例第三章DirectX快速入门本章包含的全部知识点:●DirectX概述●Direct3D 底层结构概述●DirectX9.0的配置和安装章节重点:DirectX9.0的配置和安装第四章 DirectX程序框架本章包含的全部知识点:●Win32+C+Direct3D的基础框架●DXUT框架章节重点:Win32+C+Direct3D的基础框架第五章文本显示本章包含的全部知识点:●文本绘制流程●Win32程序框架实现●DXUT程序框架实现章节重点:Win32程序框架实现第六章基本图形的绘制本章包含的全部知识点:●图元●灵活顶点格式(FVF)●使用顶点缓存绘制图形●索引缓存●颜色表示法●渲染状态●绘制准备●D3DX几何物体●实例设计与实现章节重点:顶点缓存索引缓存第七章变换本章包含的全部知识点:●摄像机●顶点变换●光栅化●实例章节重点:顶点变换第八章 3D数学基础补充本章包含的全部知识点:●常见坐标系●向量●矩阵●线性变换章节重点:●线性变换第九章光照和材质本章包含的全部知识点:●真实感图形基本概念●Direct3D中的光照●Direct3D中的材质●光照和材质例子章节重点:Direct3D中的光照Direct3D中的材质第十章纹理映射本章包含的全部知识点:●纹理贴图●纹理坐标●纹理寻址模式●纹理过滤●纹理混合状态●纹理实例解析章节重点:纹理寻址模式纹理过滤第十一章深度测试和反走样本章包含的全部知识点:●深度缓存与深度测试●图形反走样●深度测试实例章节重点:深度缓存与深度测试第十二章网格(一)本章包含的全部知识点:●ID3DXMesh●子集和属性缓存●绘制●邻接信息●优化●属性表●创建一个Mesh●例子章节重点:子集和属性缓存创建一个Mesh第十三章网格(二)●X文件格式解析●读取X文件●渐进网格●渐进网格例子章节重点:深度缓存与深度测试第十四章混合和模板本章包含的全部知识点:●混合因子●混合计算●Alpha来源●Alpha混合实例●模板章节重点:Alpha混合实例第十五章着色器入门本章包含的全部知识点:●着色器概述●HLSL的变量●HLSL的函数●HLSL基本语法●在Direct3D中使用HLSL 章节重点:Alpha混合实例第十六章顶点着色器●顶点着色器概述●顶点声明●使用顶点着色器●顶点着色器实例第十七章像素着色器本章包含的全部知识点:●像素着色器概述●使用像素着色器●HLSL采样器对象●多重纹理●例子程序一、客观部分:(单项选择、多项选择、不定项选择、判断)(一)、选择部分1.D3DPRESENT_PARAMETERS参数很多,关于其中参数之一windowed的理解正确的是(ABD)A.取值FALSE则渲染全屏B.取值TRUE则渲染窗口C. int类型D.BOOL类型E.double类型★考核知识点: D3DPRESENT_PARAMETERS2.以下属于Direct 3D定义的图元类型的有(ABCD)A.点列表B.线段条带C.三角形列表D.三角形条带E.四边形列表★考核知识点: 图元3.以下属于Direct 3D提供的着色模式的是(AB )A.平面着色模式B.高洛德法着色模式C.渐变着色模式D.单颜色着色模式★考核知识点: 着色模式4.下面属于Direct3D提供的创建旋转矩阵的函数的是(ABC)A.D3DXMatrixRotarionXB. D3DXMatrixRotarionYC. D3DXMatrixRotarionZD. D3DXMatrixRotXE. D3DXMatrixRotY★考核知识点: 变换5.以下属于Direct3D提供的简化纹理过滤的过程的是(ABCD)A.最近点采样B.线性过滤C.各向异性过滤D.mipmap过滤★考核知识点: 纹理过滤6.D3DPRESENT_PARAMETERS参数很多,下面理解正确的是(ABCD)A.Windowed取值FALSE则渲染全屏B. BackBufferCount表示后备缓冲的数目C. SwapEffect表示交换缓冲类型D. BackBufferFormat表示后备缓冲的格式★考核知识点: D3DPRESENT_PARAMETERS7.以下属于Direct3D中提供的标准光源的是(ABC )A.点光源B.方向光源C.聚焦光源D.多点光源★考核知识点: 光源8.关于灵活顶点格式下列说确的是(ABD)A. D3DFVF_DIFFUSE表示顶点数据中包含的是漫反射颜色值;B. D3DFVF_SPECULAR表示顶点数据中包含的是镜面反射下的颜色值C. D3DFVF_XYZRHW表示顶点数据中包含的是未经过坐标变换的顶点坐标D. D3DFVF_XYZ顶点数据中包含未经坐标变换的顶点坐标考核知识点: 灵活顶点格式解析:C项应该是经过坐标变换后的顶点坐标9.关于顶点Alpha描述正确的是(AB)A.如果在程序中直接指定每个顶点的颜色,直接给出每个顶点颜色的Alpha 值。

B. 渲染对象中每个像素的Alpha值由该对象的Alpha值和着色模式决定。

C.高洛德着色模式,所有像素的Alpha值都等于该多边形的第一个顶点的Alpha值。

D. 平面着色模式,每个多边形上的像素的Alpha值由它的各个顶点的Alpha值进行线性插值得到。

考核知识点: 顶点Alpha解析:C项应该是平面着色模式,所有像素的Alpha值都等于该多边形的第一个顶点的Alpha值。

D项应该是高洛德着色模式,每个多边形上的像素的Alpha 值由它的各个顶点的Alpha值进行线性插值得到。

(二)、判断部分1.Direct3D将给每个采样器对象连接一个唯一的纹理阶段(stage),在应用程序中找出与采样器对象相关联的阶段,并设置相应的纹理和采样器状态给该阶段。

(正确)★考核知识点: 纹理2.一个Direct3D对象只能创建一个Direct3D设备对象。

(错误)★考核知识点: Direct3D设备对象考核知识点解释一个Direct3D对象可以创建多个Direct3D设备对象。

3.由于Direct3D设备对象是由Direct3D对象创建的,因此应先释放Direct3D设备对象。

(正确)★考核知识点: Direct3D对象及设备对象4.D3DFVF_XYZ顶点数据中包含未经坐标变换的顶点坐标,不能与D3DFVF_XYZRHW同时使用。

(正确)★考核知识点: 灵活顶点格式5.D3DFVF_XYZ顶点数据中包含未经坐标变换的顶点坐标,可以与D3DFVF_XYZRHW同时使用。

(错误)★考核知识点: 灵活顶点格式考核知识点解释D3DFVF_XYZ顶点数据中包含未经坐标变换的顶点坐标,不可以与D3DFVF_XYZRHW同时使用。

6.D3DFVF_XYZRHW顶点数据中包含经过坐标变换的顶点坐标,不能与D3DFVF_XYZ和D3DFVF_NORMAL同时使用。

(正确)★考核知识点: 灵活顶点格式7.Direct3D创建的场景和对象都是由简单的“图元”按照一定的方式排列组合而成的,Direct3D中的所有图元都是一维或二维对象,包括单个的点和直线及复杂的多边形。

(正确)★考核知识点: 图元8.在索引缓存中定位顶点也就是在顶点缓存中定位顶点。

(正确)★考核知识点: 顶点缓存索引缓存二、主观部分:(一)、填空部分1)像素着色器的输入仅有颜色和纹理坐标两种语义。

考核知识点: 像素着色器2)像素着色器的工作是在顶点着色器之后,后者的输出将为前者提供输入。

考核知识点: 像素着色器3)D3DFVF_DIFFUSE表示顶点数据中包含的是漫反射颜色值;考核知识点: 灵活顶点格式4)D3DFVF_SPECULAR表示顶点数据中包含的是镜面反射下的颜色值;考核知识点: 灵活顶点格式5)D3DFVF_XYZRHW表示顶点数据中包含的是经过坐标变换的顶点坐标考核知识点: 灵活顶点格式6)Direct3DCreate9函数创建一个Direct3D对象并获得指向Direct3D对象接口的指针,且参数必须设置为D3D_SDK_VERSION。

考核知识点: Direct3D对象7)DXUT(The DirectX Utility Library)是建立在Direct3D9和Direct3D10上的一个程序框架,其目标是建立一个强大而容易使用的Direct3D游戏开发框架,它简化了Win32和Direct3D API的使用。

考核知识点: DXUT8)创建DirectX设备对象的函数为CreateDevice。

考核知识点:设备对象9)Direct3D图形程序通过调用IDirect3DDevice9::SetRenderState()函数来设置渲染状态。

考核知识点:设置渲染状态10)g_pd3dDevice->SetRenderState(D3DRS_SHADEMODE,D3DSHADE_FLAT),这行代码完成的功能是(设置着色模式为平面着色模式)。

考核知识点:设置着色模式11)g_pd3dDevice->SetRenderState(D3DRS_SHADEMODE,D3DSHADE_GOURAUD),这行代码完成的功能是(设置着色模式为高洛德着色模式)。

考核知识点:设置着色模式(二)、名词解释1、请你给出创建顶点声明,并获得IDirect3DVertexDeclaration9接口指针的方法。

考核知识点:顶点声明考核知识点解释HRESULT IDirect3DDevice9::CreateVertexDeclaration(CONST D3DVERTEXELEMENT9* pVertexElements, //要创建的顶点声明IDirect3DVertexDeclaration9** ppDecl //返回创建的IDirect3DVertexDeclaration9接//口指针 );2、请你给出环境光(ambient light)的概念,并说明如何设置渲染状态为整个场景添加环境光。

考核知识点:环境光考核知识点解释环境光(ambient light)由光源发出经环境多次散射而无法确定其方向的光,即好像是来自四面八方的光;室成分大,室外成分少,没有位置或方向上的特征,只有颜色亮度值,不会衰减;通过设置渲染状态为整个场景添加环境光:g_device->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_X#);3、请你给出镜面反射光的概念,并说明如何设置渲染状态。

相关文档
最新文档