当前位置:首页 » 格式模板 » 灵活顶点格式

灵活顶点格式

发布时间: 2021-03-26 22:33:56

㈠ direct3d 顶点结构这个谁给解释下

构造函数吧,前面的是缺省构造函数

㈡ 急!!毕业设计:directx在网络游戏中的应用

现在游戏的种类与数量几乎呈爆炸式增长,游戏的制作水平也不断提高,那么玩家在欣赏游戏中那绚丽的效果时,有没有想过是什么造就了这一切呢?这就是DirectX!DirectX这个词对玩家来说似乎并不陌生,现在的很多游戏说明里都有“该游戏需要DirectX….以上版本支持”此类的话,甚至3DS Max启动时的加速模式选项中也有DirectX身影。那么DirectX究竟是什么呢?现在就让我们揭开它面上这层神秘的面纱,一探究竟吧。

一、初识DirectX

DirectX是Microsoft开发的基于Windows平台的一组API,它是为高速的实时动画渲染、交互式音乐和环境音效等高要求应用开发服务的。从Windows 95开始,人们就开始接触DirectX2.0,WindowsNT4.0里面则是DirectX3.0a,但是没有DirectX4的版本。到了Windows98,它就是Windows家族操作系统中不可缺少的核心成员之一。Windows 98中集成了DirectX5,Windows2000中集成了DirectX 6,Windows Me中集成了DirectX 7,而Windows XP天生就带了DirectX 8.1。

微软开发了DirectX标准平台,并且根据硬件制造厂商和游戏厂商合作共同更新升级DirectX的标准。硬件制造商按照此标准研发制造更好的产品,游戏开发者根据这套标准开发游戏。也就是说,无论硬件是否支持某种特效,只要DirectX标准中有,游戏开发者就可以把它写到游戏中,当这个游戏在硬件上运行,如果此硬件根据DirectX标准把这个效果做到了此硬件驱动程序中,驱动程序驾驭其硬件算出结果,用户就可以欣赏到此效果。这就是“硬件设备无关性”,是DirectX真正意义所在。

通常,Windows对硬件访问的管制非常严格,用通常的办法不易访问,但DirectX通过“硬件抽象层(HAL)”给予了开发人员直接访问硬件的能力,HAL不仅解决了硬件及兼容性问题,而且开发人员可以利用它直接访问计算机的某些硬件设备,例如显示设备的直接显存控制和渲染,键盘、鼠标和游戏杆的控制的直接访问控制,音频设备的直接音频混合与输出能力等等,因此开发人员可以充分利用硬件加速将程序的性能优化到一个新的高度,如果目标机器不支持相应的硬件加速,DirectX还可以仿真加速器以提供强大的多媒体环境。DirectX家族包含的成员有Direct3D、DirectDraw、DirectInput、DirectMusic、DirectPlay、DirectSound和DirectShow。

二、DirectX全家福

通过上面的介绍,相信读者对DirectX已经有一个大概的了解。下面就让我们逐一认识它们吧。

1、Direct3D、DirectDraw和DirectGraphics

DirectDraw是DirectX家族中的元老,它为高速的2D渲染提供了良好的支持,由于其具备直接显存访问和位快传送的能力,使得2D图形的绘制速度相对GDI有了一个质的飞跃,其渲染速度甚至有上百倍的差距。在现在回忆当初玩“红色警戒”和“Diablo”的时候,大家可不要忘了DirectDraw的功劳。

DirectDraw在DirectX3.0时就已经接近极致,但是随着PC图形技术的飞速发展,人们逐渐不再满足于2D的图形效果,而通过2D技术实现伪3D模拟又非常损失效率,这种需求直接导致了Direct3D的诞生,早期的Direct3D技术不甚完善,相对于2D技术还有一定的差距,直到图形加速卡支持硬件3D特效后,Direct3D才逐渐步入正轨,慢慢显示出它的性能优势来。下面让我们来回顾一下历史,看看

Direct3D的“成长过程”:

DirectX6中的Direct3D添加了如下新特性:

* 几何形体的灵活顶点格式定义
* 几何形体的顶点缓冲存储
* 支持多纹理渲染
* 自动纹理管理
* 可选深度缓冲(使用Z Buffer或W Buffer)
* 通过凹凸环境贴图(BUMPENVMAP)为反光面和水波特效提供逐像素的渲染和贴图能力

DirectX7中的Direct3D添加了以下新特性:

* 硬件坐标转换和灯光(T&L)支持
* 立方体表面的环境贴图
* 几何渲染
* 改进的纹理渲染
* 自动纹理坐标生成、纹理转换、投影纹理和任意面裁剪
* D3DX实用库
* 支持Intel MMX架构、Intel单指令多数据流(SIMD)、SSE?和 AMD? 3DNow?架构。

DirectX的版本到了8.0的时候,虽然它依然保持着向前的兼容性,但是它的结构发生了巨大的变化,3D图形处理技术逐渐统一在Vertex Shader和Pixel Shader。Vertex Shader被用来描述和修饰3D物体的几何形状,同时也用来控制光亮和阴影;Pixel Shader则用来操纵物体表面的色彩和外观。Direct3D和DirectDraw合二为一,DirectX家族诞生了一个新的成员----DirectGraphics。

同时也增添了很多令人激动的特性:

* 完全集成DirectDraw与Direct3D

简化程序初始化过程并提高数据分配和管理的性能,这将减少内存消耗。同时,集成后的图形应用编程接口(API)允许并行的顶点输入流以达到更加灵活的渲染。

* 可编程顶点处理语言

允许你编写定制的着色器,如变形和渐变动画,矩阵调色板蒙皮,用户定义的光照模型,一般环境映射,可编程几何体或者任何其他开发者定义的算法。

* 可编程像素处理语言

允许你编写定制的硬件着色器,例如通用纹理组合公式,逐像素光照(凹凸贴图),适用于实现照片(真实)级镜面效果的逐像素环境贴图或者任何其他开发者定义的算法。

* 支持多重采样渲染

允许全场景反走样和多重采样效果,例如运动模糊及景深(镜头的聚焦效果)。

* 点精灵

允许高性能的粒子系统渲染,例如火花、爆炸、雨、雪等等。

* 3-D空间纹理

允许范围衰减,实现逐像素级光照及空间大气效果,甚至是更复杂的几何图形应用。

* 支持高维图元

对来自主要的3-D创作工具的3-D内容,增强其外观并简化内容映射。

* 高级技术

包含了用于输出Direct3D蒙皮网格的三维内容创建工具插件,使用了Direct3D多种不同技术,多分辨率层次细节(LOD)几何,还有高维表面数据。

* 索引顶点混合

扩展了几何混合的支持,允许通过指定使用一个矩阵索引把矩阵应用于顶点混合处理。

* 扩充了Direct3DX实用库

包含了大量的新函数。Direct3DX实用库是一个位于Direct3D之上的辅助层,用于简化3-D图形开发者的常规工作。它包括了一个蒙皮库,支持对网格的操作,还有组装顶点与像素着色器的功能。

DirectX每一次升级都会有重大的内核结构改变,它会给我们带来巨大的视觉冲击。DirectX7核心的T&L引擎到DirectX9干脆被抛弃了。因此对于图形芯片开发商、游戏开发商以及广大用户而言,DirectX 9的确是一项“绝无仅有的优越图形技术”。DirectX 9“具有多项令人兴奋的全新功能特征”:

㈢ 本人是一个老程序员,目前想学习3D编程,请问3D方面的基础知识可以看哪本书不拘泥于编程语言,求经典。

1.计算机图形学
2.OpenGL宝典

㈣ 灵活点是啥意思啊

灵活顶点格式(FlexibleVertexFormat,FVF)用来描述在顶点缓冲区中的顶点存储格式中包含了哪些属性。Direct3D应用程序可以用几种不同的方式定义灵活顶点格式。灵活顶点格式使应用程序只使用它需要的顶点数据,排除那些它不需要的组成成分。这样,应用程序可以节省内存空间,减少系统带宽。通过D3DFVF的组合,可以描述图元顶点的格式。灵活顶点格式指定的格式包括点的大小,用D3DFVF_PSIZE指定,该大小在投影机空间用来表示未经变换的顶点,在设备空间用来表示经过变换的顶点。

㈤ Direct3D问题--关于顶点灵活格式

因为定点带有颜色信息。也就是那个D3DFVF_DIFFUSE。当然单纯的定点散射值真正的图形编程里是很少用的。

㈥ C++语言初学DX9绘图问题(顶点缓冲)

你好,rhw表示转换后的二维坐标,这和你设置的灵活顶点格式有关。
比如#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)
你的顶点结构体就必须有这个值,一般取1.0f就可以,而且是二维坐标,z值也没有影响。

㈦ fvf 什么意思

灵活顶点格式

㈧ 怎样调用SetStreamSource函数

D3D9 中允许一个 Stream 的 VertexBuffer 中可以存在多个不同的数据,比如 Pos\Texcood\Normal
等等,需要注意的是这里的不同数据指的是不同顶点格式的顶点数据,比如一个 VB 中有3部分:0~n-1 存储了n个
Pos+Normal,n~2n-1 存储了n个 Texcoord0,2n~3n-1存储了n个 Texcoord1,在绘制
multi-coord-texture 时就这样可以使用 OffsetInBytes :
SetStreamSource (0,pVB, 0, sizeof(PosNormal) ); // 设置 Pos+Normal
SetStreamSource (1,pVB, sizeof( PosNormal)*n, sizeof(TexCood) ); // 设置 texcoord0
SetStreamSource (2,pVB, sizeof( TexCood)*n,sizeof(TexCood) ); // 设置 texcoord1
这样就可以根据游戏情况灵活的进行绘制。

㈨ D3D编程中使用FVF(灵活顶点格式)的原因

晕0分……

给开发者更大的灵活性,可以自己定义顶点结构。后来发展到VertexShader。

热点内容
涂鸦论文 发布:2021-03-31 13:04:48 浏览:698
手机数据库应用 发布:2021-03-31 13:04:28 浏览:353
版面217 发布:2021-03-31 13:04:18 浏览:587
知网不查的资源 发布:2021-03-31 13:03:43 浏览:713
基金赎回参考 发布:2021-03-31 13:02:08 浏览:489
悬疑故事范文 发布:2021-03-31 13:02:07 浏览:87
做简单的自我介绍范文 发布:2021-03-31 13:01:48 浏览:537
战略地图参考 发布:2021-03-31 13:01:09 浏览:463
收支模板 发布:2021-03-31 13:00:43 浏览:17
电气学术会议 发布:2021-03-31 13:00:32 浏览:731