3D游戏从入门到精通-15
2023-09-14 09:10:37 时间
3、
线带列表
在D3D里还提供线带列表显示,这种显示方式是把所有直线顺着顶点连接显示出来。如下图所示:
采用线带列表显示的方式,可以减少顶点占用内存空间,提高显示效率。下面这段代码就是显示6个顶点的直线。
m_nLineStripCount = 3;
HRESULT hr;
// 创建顶点缓冲区。
if( FAILED( hr = m_pd3dDevice->CreateVertexBuffer(
m_nLineStripCount*2 * sizeof(VT_CAIPRIMITIVE),
0, VT_CAIPRIMITIVE::dwFVF,
D3DPOOL_MANAGED, &pVB, NULL ) ) )
{
//创建顶点缓冲区失败。
return DXTRACE_ERR( "CreateVertexBuffer", hr );
}
//
VT_CAIPRIMITIVE* pVertices;
if( FAILED( hr = pVB->Lock( 0, 0, (VOID**)&pVertices, 0 ) ) )
{
//锁住顶点缓冲区。
return DXTRACE_ERR( "Lock", hr );
}
pVertices[0].vPosition = D3DXVECTOR3( -6.0f, -2.0f, 2.0f );
pVertices[0].crDiffuse = D3DCOLOR_COLORVALUE( 1.0, 0.0, 0.0, 1.0 );
pVertices[1].vPosition = D3DXVECTOR3( -4.0f, 2.0f, 2.0f );
pVertices[1].crDiffuse = D3DCOLOR_COLORVALUE( 1.0, 0.0, 0.0, 1.0 );
//
pVertices[2].vPosition = D3DXVECTOR3( -2.0f, -2.0f, 2.0f );
pVertices[2].crDiffuse = D3DCOLOR_COLORVALUE( 0.0, 1.0, 0.0, 1.0 );
pVertices[3].vPosition = D3DXVECTOR3( 0.0f, 2.0f, 0.0f );
pVertices[3].crDiffuse = D3DCOLOR_COLORVALUE( 0.0, 1.0, 0.0, 1.0 );
//
pVertices[4].vPosition = D3DXVECTOR3( 2.0f, -2.0f, 2.0f );
pVertices[4].crDiffuse = D3DCOLOR_COLORVALUE( 0.0, 0.0, 1.0, 1.0 );
pVertices[5].vPosition = D3DXVECTOR3( 4.0f, 2.0f, 2.0f );
pVertices[5].crDiffuse = D3DCOLOR_COLORVALUE( 0.0, 0.0, 1.0, 1.0 );
//解锁顶点缓冲区。
pVB->Unlock();
上面的代码是先创建合适的顶点缓冲区,然后设置6个顶点的值。由这6个顶点就可以连接成为5条直线。显示的代码如下:
m_pd3dDevice->SetStreamSource( 0, m_pvbLineStrip, 0, sizeof(VT_CAIPRIMITIVE) );
m_pd3dDevice->SetFVF( VT_CAIPRIMITIVE::dwFVF );
m_pd3dDevice->DrawPrimitive( D3DPT_LINESTRIP, 0, m_nLineStripCount*2 -1 );
上面的DrawPrimitive函数设置为D3DPT_LINESTRIP显示,就是线带方式显示。最后一个参数指明了它要显示多少条直线。
本电子书、
MM3D
引擎源程序
、例子源程序共
49
元一套
联系人:蔡军生
联系方式:
QQ: 9073204
EMAIL: caimouse1976 at sina.com
相关文章
- 《2022年上半年游戏安全洞察报告》发布:外挂肆虐,内容安全问题依旧严峻
- Unity 3D 游戏引擎
- 3d游戏建模全解[通俗易懂]
- 求做3D游戏的一些想法,最好能用C++
- 【说站】狼人杀微信娱乐游戏小程序源码
- Unity 3D游戏开发学习教程
- vivo游戏:全程陪伴用户和开发者,携手共创至臻体验
- 喜报|牛信云本月连获两项优质游戏服务商奖项
- 一个人,仅30天!开发一款3D竞技足球游戏!他究竟经历了些什么?
- 游戏开发中的数学问题:技能伤害的区域检测(圆形)
- 杀疯了!通过游戏“元宇宙”,Deepmind让AI学会玩各种没玩过的游戏,骚操作不断
- 【Unity3D】游戏物体操作 ① ( 场景简介 | 添加游戏物体 | 操作游戏物体 | 选中游戏物体 | 场景显示效果缩放 | 重命名游戏物体 | 复制游戏物体 | 删除游戏物体 | 移动物体 )
- 【Unity3D】游戏物体操作 ② ( 3D 原生物体 | 立方体 | 球体 | 平面 | 物体移动 | 沿坐标轴移动 | 沿坐标平面移动 | 在 Inspector 检查器窗口设置坐标属性 )
- Echarts实现3D环状图效果(非3d)
- Python 三维姿态估计+Unity3d 实现 3D 虚拟现实交互游戏
- Android斗地主游戏的牌桌实现详解编程语言
- 东京奥运会开幕式直播 中国代表团入场:BGM系游戏配乐
- 今日谷歌涂鸦庆祝东京奥运会开幕:复古RPG游戏冠军岛运动会开赛了
- 游戏厂商为何偏爱N卡?老黄揭秘:我们软件好
- Intel DG2独立显卡首次亮相 10款游戏 帧率成谜