2.10.1基本图形显示
在D3D里只有几种基本图形可以显示的,它们分别是:
点列表、线列表、线带列表、三角形列表、三角形带列表、三角形扇形列表。
其它任何的图形,都可以由这向这几种基本图形组合出来。上面已经介绍了三角形显示了,所以这里就不再具体地说明它了。
1、 点列表
点列表主要显示为一个个像素点的集合,每个点都是单独显示,分离的。点列表作用是用来显示点元素,或者显示点线的。如下图所示:
上面这个图就是使用点列表来显示一条正弦曲线。其实它们都是由分理的点组成,每个点可显示为不同的颜色。
现在就看看怎么样用代码显示这条正弦曲线的。
HRESULT hr;
// 创建顶点缓冲区。
if( FAILED( hr = m_pd3dDevice->CreateVertexBuffer(
m_nPointListCount * sizeof(VT_CAIPRIMITIVE),
0, VT_CAIPRIMITIVE::dwFVF,
D3DPOOL_MANAGED, &m_pvbPointList, NULL ) ) )
{
//创建顶点缓冲区失败。
return DXTRACE_ERR( "CreateVertexBuffer", hr );
}
//
VT_CAIPRIMITIVE* pVertices;
if( FAILED( hr = m_pvbPointList->Lock( 0, 0, (VOID**)&pVertices, 0 ) ) )
{
//锁住顶点缓冲区。
return DXTRACE_ERR( "Lock", hr );
}
for (int i = 0; i < m_nPointListCount; i++)
{
float fX = -10.0f + (float)i * 0.1f;
float fY = sinf(fX);
pVertices[i].vPosition = D3DXVECTOR3( fX, fY,0.0f );
pVertices[i].crDiffuse = D3DCOLOR_COLORVALUE( 1.0, 0.0, 0.0, 1.0 );
}
//解锁顶点缓冲区。
m_pvbPointList->Unlock();
上面这段代码,先创建点列表的顶点缓冲区,然后使用正弦函数计算点坐标的值,并把它们设置到顶点缓冲区里。接着就需要调用渲染函数:
m_pd3dDevice->SetStreamSource( 0, m_pvbPointList, 0, sizeof(VT_CAIPRIMITIVE) );
m_pd3dDevice->SetFVF( VT_CAIPRIMITIVE::dwFVF );
m_pd3dDevice->DrawPrimitive( D3DPT_POINTLIST, 0, m_nPointListCount );
先设置顶点缓冲区,然后调用DrawPrimitive函数来显示,这里第一个参数不一样,使用了D3DPT_POINTLIST类型,这个类型就是显示为点列表方式。
如果使用直线或者三角形不能显示的图形,就可以使用它来显示了。
本电子书、MM3D引擎源程序、例子源程序共49元一套
联系人:蔡军生
联系方式:
QQ: 9073204
EMAIL: caimouse1976 at sina.com
分享到:
相关推荐
Unity3D从入门到精通.pdf, Unity3D 入门推荐pdf, 学习Unity3D必备
使用unity3d进行游戏开发_从入门到精通1-4章
用Python和Pygame写游戏-从入门到精通(13) AI初探 用Python和Pygame写游戏-从入门到精通(14) 状态机 用Python和Pygame写游戏-从入门到精通(15) 开始AI编程 用Python和Pygame写游戏-从入门到精通(16) AI编程...
使用unity3d进行游戏开发_从入门到精通_02.pdf
unity3d从入门到精通中文教程是国内第一本以面向对象和项目流程开发角度,全面系统介绍 Unity3D 的书籍。本书以具体项目结构开发的角度,结合 Unity3D 层级式的综合开发环境、视觉化编辑、详细的属性编辑器和动态的...
使用unity3d进行游戏开发_从入门到精通_01
使用unity3d进行游戏开发_从入门到精通_01.pdf
使用unity3d进行游戏开发_从入门到精通_03.pdf
这本教材包含了基本的3d游戏程序设计,从基本的direct3d 讲起,通俗易懂。
Unity官方年度巨献,基于5.X新版本,为游戏开发者带来一场饕餮盛宴 <br/>本书基于Unity 5.0软件及以上版本,对Unity 5 中的大量图形改进和扩展的编辑器功能集进行讲解。另外,对Unity Cloud Build的使用进行详细...
Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具
使用unity3d进行游戏开发从入门到精通
Unity3D游戏引擎实战开发从入门到精通源码
《Unity 5.X从入门到精通》基于Unity 5.0软件及以上版本,对Unity 5 中的大量图形改进和扩展的编辑器功能集进行讲解。另外,对Unity Cloud Build的使用进行详细介绍,使开发者通过云进行游戏和应用开发。 为了使...
Unity 目前最新官方教材《Unity 5.x从入门到精通》 配套光盘资源, 文件较大,百度网盘供源。
使用unity3d进行游戏开发_从入门到精通_02
使用unity3d进行游戏开发_从入门到精通_04.pdf