- 博客(16)
- 资源 (44)
- 收藏
- 关注
原创 3D游戏从入门到精通-17
5、 三角形扇形列表最后一种三角形列表显示是扇形排列的三角形列表。这种排列方式,有一个特别的地方,就是所有三角形共享一个顶点,这样特别适合构成曲面的地方,比如球体和圆形的东西。下面看看这个例子显示的图:通过上面这个图,可以看到4个三角形共享一个顶点,这个顶点是红颜色的,其它不同的顶点不同的颜色。下面来看看程序是怎么样实现它的显示的: HRESULT h
2006-08-27 21:39:00 3196
原创 3D游戏从入门到精通-16
4、 三角形带列表三角形显示的方式总共分为三种,前面已经学习最多的是三角形列表,现在再来看看三角形带列表是什么样的,这样有什么优点呢?这里显示图形如下:上面的图形可以看出,只有6个顶点就可以显示4个三角形,而采用三角形列表的方式,只能显示两个三角形。因此采用这种方式就会大大提高渲染效率,减少占用内存空间,减少占用系统带宽。具体的程序如下: HRES
2006-08-24 22:58:00 21429 4
原创 3D游戏从入门到精通-15
3、 线带列表在D3D里还提供线带列表显示,这种显示方式是把所有直线顺着顶点连接显示出来。如下图所示:采用线带列表显示的方式,可以减少顶点占用内存空间,提高显示效率。下面这段代码就是显示6个顶点的直线。 m_nLineStripCount = 3; HRESULT hr; // 创建顶点缓冲区。 if( FAILED( hr =
2006-08-23 22:52:00 3076
原创 3D游戏从入门到精通-14
2、 线列表D3D还提供直线的显示,由于很多自然现现象需要它来显示。比如大雨,就需要使用直线来模拟出来。如下图所示:这里显示三条红、绿、蓝的直线。它的代码如下:pVertices[0].vPosition = D3DXVECTOR3( -2.0f, 0.0f, 0.0f ); pVertices[0].crDiffuse = D3DCOLOR
2006-08-22 00:12:00 2999
原创 3D游戏从入门到精通-13
2.10.1基本图形显示在D3D里只有几种基本图形可以显示的,它们分别是:点列表、线列表、线带列表、三角形列表、三角形带列表、三角形扇形列表。其它任何的图形,都可以由这向这几种基本图形组合出来。上面已经介绍了三角形显示了,所以这里就不再具体地说明它了。1、 点列表点列表主要显示为一个个像素点的集合,每个点都是单独显示,分离的。点列表作用是用来显示点元素,
2006-08-21 00:28:00 2854
原创 3D游戏从入门到精通-12
1、 使用索引缓冲区什么是索引缓冲区呢?其实索引缓冲区,就像指针一样的工具。顶点缓冲区里保存的是真实的顶点,而索引缓冲区只记录顶点缓冲区的顶点编号。比如顶点缓冲区里有4个顶点,而这4个顶点就可以构成两个三角形来显示。如果直接使用顶点缓冲区的话,就需要写6个顶点。这样就可以使用索引缓冲区,指明第一个三角形是由顶点编号1、2、3构成一个三角形,而第二个三角形就是1、3
2006-08-17 23:16:00 3756
原创 3D游戏从入门到精通-11
2.10.1索引缓冲区上面已经学习了最简单的三角形显示,了解了整个3D物体的显示流程,下面来学习一个复杂一点的物体显示,使用12个三角形构造成的正方体显示。并且通过个例子学会使用索引缓冲区,提高图形绘制的速度和效率。1、 使用三角形构造立方体由前面可知,任何复杂的物体,都是由三角形组成的。现在就用12三角形构造一个正方体。先创建12点个顶点的缓冲区,
2006-08-16 22:18:00 2882 1
原创 3D游戏从入门到精通-10
1、 渲染物体经过前面这么多步骤,做足了准备工作,就可以渲染物体,显示三维空间的图像了。这时心情要兴奋起来,就看到自己辛苦的果实了。仔细地看一下前面的代码,创建的缓冲区还没有设置给D3D设备。下面就来做这方面的工作: // 渲染顶点缓冲区的内容。m_pd3dDevice->SetStreamSource( 0, m_pVB, 0, sizeof(
2006-08-14 23:53:00 2988
原创 3D游戏从入门到精通-9
1、 投影变换矩阵投影变换矩阵是做什么的呢?这个更容易理解了。大家都应看过照片吧,那大家又想过照片是怎么样表现原来的物体呢?看到远处的山是小的,近处的人是大的。并且只有在一定的范围内的物体才照得清楚,其它的就不见了。在D3D里就需要把三维的物体空间投影到二维的屏幕空间显示,这就需要投影了。本来人眼看现实的物体时,总是经过投影变换的,把三维的物体通通变换成二维东西,
2006-08-13 00:03:00 3110
原创 3D游戏从入门到精通-8
1、 视图变换矩阵视图变换矩阵是做什么用的呢?为什么需要视图变换矩阵呢?其实这个问题很好回答和理解的。在3D世界里,所有东西都是跟现实中的实物一样的,当用人的眼睛去观看现实中的实物时,总是从某一方向去观察的,这样就看到实物组成的图像。就像你拿着照相去照相是一样的,首先要调好焦距,对准物体。在D3D里也需要调好焦距,对准物体,否则什么也看不到。因此在D3D里,
2006-08-11 23:58:00 3252
原创 3D游戏从入门到精通-7
1、 世界坐标变换矩阵在设置顶点缓冲区之后,就需要设置物体的世界坐标变换矩阵。从解析几何里可以知道,无论二维还是三维的图像都可以通过齐次坐标来变换的。目前在三维里的变换,采用的矩阵是4×4的矩阵来实现变换处理。在D3D里定义D3DXMATRIX类型,使用它来表达一个矩阵,并且定义一系列的函数可以实现矩阵的运算。它的定义如下: typedef struc
2006-08-11 00:15:00 3459
原创 3D游戏从入门到精通-6
1、 顶点缓冲区顶点的数据是怎么样保存在内存里的呢?由于渲染需要,就要把顶点保存在内存缓冲区里。最简单的方法就是使用D3D提供的顶点缓冲区,即是使用IDirect3DVertexBuffer9接口的顶点缓冲区管理,它是通过D3D的设备来创建。这个接口实现顶点的资源管理,使用起来非常方便,由于它管理内存分配,这样就省了内存管理。下面就是通过IDirect3DDevice9
2006-08-09 13:14:00 3483
原创 3D游戏从入门到精通-5
21 使用Direct3D2.11.1最简单三角形显示前面已经学习了顶点、平面以及平面的法向量。接着下面就带你进入奇幻的3D世界,由你去创造这个美好的3D世界。任何美好的事物都是简单的东西组成的,所以也需要从最简单的物体构造开始。这里主要显示一个三角形,其它关于窗口和初始化D3D的设备都已经由MM3D引擎做好了,目前只要设置顶点、世界坐标变换矩阵、观察变换矩阵、投影变换矩阵,然
2006-08-08 13:16:00 3352
原创 3D游戏从入门到精通-4
2.10.1平面的表示3D空间里的物体都是实体的,主要由平面组成。比如正方体,就有6个平面。在D3D里组成三维物体的基本平面是三角形,无论是多么复杂的物体,都是有三角形组成的。并且D3D里支持显示最小的图形也是三角形,它是没有点和直线显示的。因此,要显示正方体,就需要把每个平面分成两个三角形,才能显示。如下图所示: 为什么选择三角形作为D3D里最小的平面呢?由于三个点组成的平面,
2006-08-06 00:42:00 3550
原创 3D游戏从入门到精通-3
2.10.1坐标系在D3D里使用的坐标系是左手坐标系,就是当你看屏幕时,左手边是X轴的负方向,右手边是X轴的正方向。屏幕下边是Y轴的负方向,屏幕上边是Y轴的正方向。远离屏幕是Z轴的负方向,指向屏幕里面是Z轴的正方向。坐标系还有右手坐标系,还有其它各种各样的坐标系。如果需要从其它坐标里的图形显示在D3D里,就需要进行转换。2.10.2点在三维空间里表示物体位置,就需要用坐标来表
2006-08-04 13:13:00 4084
原创 3D游戏从入门到精通-2
21 介绍游戏2.11.1什么是游戏在《高级汉语大词典》中,“游戏”意为游乐、玩耍等,“游”意为游玩、结交、闲逛、学习等,“戏”有游戏、戏剧、角力等解释,而“玩”则有玩耍、欣赏、投入、反复体会等含义。从这些林林总总的含义中,我们是否可以得出这样一些理解: 游戏具有学习的特征――学习、投入、反复体会。游戏具有社会的特征――结交。游戏具有娱乐的特征――游
2006-08-04 13:05:00 3921
python抓取天气并分析 实例源码
2017-08-28
书《深度学习》
2017-03-13
国产8051模拟器
2016-09-10
tinyxml2配套源码
2016-06-27
selenium的浏览器驱动
2016-06-14
开源鸿蒙4.0不能进入桌面的补丁
2024-03-17
开源鸿蒙 4.0 RK3566开发板配置
2024-03-17
svm_hog_data.rar
2020-03-02
实现numpy的C++库扩展
2019-11-24
python web py入门配套源代码
2018-02-23
webpy演示例子1
2018-02-21
胶囊模型的代码
2018-02-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人