3D游戏基础 Direct3D(四) 固定管线绘制图元

原创 2007年09月17日 21:59:00

什么是图元?Primitive

说白了,就是一堆顶点集合。这些顶点描述了一个3维图形。 由3d max产出的模型,其实,就是一组图元,加上相关的光照、材质 等等属性 构成的。

通常,在D3D和OpenGL中,图元都由两个数组(或者叫buffer)来表示,一个叫顶点数组(vertex buffer ),一个叫索引数组(index buffer)。

Vertex buffer: 用来存放顶点的具体坐标原始数据的;

Index buffer: 用来存放各个图元顶点的索引号的,索引号匹配Vertex buffer

为什么要有顶点数组,还好再搞个索引数组出来呢??主要是因为,很多图元顶点可能会出现重叠,这时候,用顶点来表示的话,就比较浪费空间了。而,用索引数组来索引,看起来就清晰,而且高效。要知道,庞大的图元,在传输的时候,也是非常耗时的啊。。。。你只用相对轻松的更换索引数组,就可以画另一个三维物体了,而不用随时更新庞大的定点数组。

那么,图元在d3d中,是如何被绘制的呢?

1 首先,创建顶点和索引缓冲:

device->CreateVertexBuffer()

device->CreateIndexBuffer()

2 设定绘制状态:

device->SetRenderState()

3 设定数据流:

device->SetStreamSource()

4 设定顶点格式

device->SetFVF() //所谓FVF,就是指顶点格式,主要有 坐标、材质和纹理 几个量

5 设置索引缓冲

device->SetIndices()

6 绘制图元

device->BeginSceen()

device->DrawPrimitive9()  

or

device->DrqwIndexedPrimitive()

device->EndScene()

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Direct3D 中实现图元的鼠标

  • 2010-04-22 11:17
  • 2.19MB
  • 下载

D3D绘制图元理论基础

在前面部分,我介绍了D3D的初始化和固定渲染流水线。这一章,将它们用于实践。 我们需要解决的事情是: 1、在D3D中如何存储顶点和索引数据; 2、怎样使用渲染状态来改变渲染结果; 3、学习怎样...

D3D绘制图元理论基础

在前面部分,我介绍了D3D的初始化和固定渲染流水线。这一章,将它们用于实践。 我们需要解决的事情是: 1、在D3D中如何存储顶点和索引数据; 2、怎样使用渲染状态来改变渲染结果; 3、学习怎样...

Direct3D9.0流水管线详解图

  • 2013-01-15 13:56
  • 903KB
  • 下载

Direct3D渲染管线

转载至  Direct3D渲染管线简介 渲染管线负责执行一系列必要的步骤从而把3D场景转换为可以在显示器上显示的2D图像。在Direct3D中,渲染管线的步骤大致如下: (1)局部坐标系到世界...

游戏开发Direct3D基础

  • 2009-03-08 23:03
  • 1.32MB
  • 下载

【阅读笔记之三】《DIRECTX.9.0.3D游戏开发编程基础》:Direct3D初始化

Direct3D初始化   一、Direct3D初始化预备知识           1. 表面        &#...

用Direct3D设计二维横版过关动作类游戏的角色运动(双倍速、二段跳)

用Direct3D设计二维横版过关动作类游戏的角色运动 演示程序下载地址:http://download.csdn.net/detail/jiangcaiyang123/4278008 ...

【Visual C++】游戏开发笔记二十九 一步一步教你用优雅的Direct3D11代码画一个三角形

本系列文章由zhmxy555(毛星云)编写,转载请注明出处。http://blog.csdn.net/zhmxy555/article/details/7774929作者:毛星云    邮箱: hap...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)