上一页 1 ··· 181 182 183 184 185 186 187 188 189 ··· 191 下一页
摘要: <%@language=vbscript codepage=936 %><!--#include file="Conn.asp"--><%sql = "select * from smallclass order by smallclassid asc"set rs = conn.execute(sql)%><script language = "JavaScript">var onecount;onecount=0;subcat = new Array(); <% count = 阅读全文
posted @ 2006-08-20 10:40 ajuanabc 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 1、 使用索引缓冲区什么是索引缓冲区呢?其实索引缓冲区,就像指针一样的工具。顶点缓冲区里保存的是真实的顶点,而索引缓冲区只记录顶点缓冲区的顶点编号。比如顶点缓冲区里有4个顶点,而这4个顶点就可以构成两个三角形来显示。如果直接使用顶点缓冲区的话,就需要写6个顶点。这样就可以使用索引缓冲区,指明第一个三角形是由顶点编号1、2、3构成一个三角形,而第二个三角形就是1、3、4组成。现在把上面的立方体改为使用索引缓冲区,先创建8个顶点,如下:pVertices[0].vPosition = D3DXVECTOR3( -1.0f,-1.0f,-1.0f );pVertices[1].vPosition = 阅读全文
posted @ 2006-08-17 23:16 ajuanabc 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 2.10.1索引缓冲区上面已经学习了最简单的三角形显示,了解了整个3D物体的显示流程,下面来学习一个复杂一点的物体显示,使用12个三角形构造成的正方体显示。并且通过个例子学会使用索引缓冲区,提高图形绘制的速度和效率。1、 使用三角形构造立方体由前面可知,任何复杂的物体,都是由三角形组成的。现在就用12三角形构造一个正方体。先创建12点个顶点的缓冲区,然后再往里填写合适的数据,然后显示它出来。下面来仔细分析这段代码:在函数HRESULT CCAICube::Init(IDirect3DDevice9* pd3dDevice)里,先创建12顶点数据。const int nVTCount = 6*2 阅读全文
posted @ 2006-08-16 22:18 ajuanabc 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 1、 渲染物体经过前面这么多步骤,做足了准备工作,就可以渲染物体,显示三维空间的图像了。这时心情要兴奋起来,就看到自己辛苦的果实了。仔细地看一下前面的代码,创建的缓冲区还没有设置给D3D设备。下面就来做这方面的工作:// 渲染顶点缓冲区的内容。m_pd3dDevice->SetStreamSource( 0, m_pVB, 0, sizeof(VT_CAITRIANGLE) );m_pd3dDevice->SetFVF( VT_CAITRIANGLE::dwFVF );m_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 2 阅读全文
posted @ 2006-08-14 23:53 ajuanabc 阅读(132) 评论(0) 推荐(0) 编辑
摘要: <!--FLASH样式本例可以设置TOP的数字,从而可以动态控制图象的数量--><!--#include file="inc/conn.asp"--><%Set rs=Server.CreateObject("ADODB.Recordset")sql="select top 5 * from product where elite=true order by updatetime desc"rs.open sql,conn,1,1%><DIV style="DISPLAY: none 阅读全文
posted @ 2006-08-14 17:53 ajuanabc 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 1、 投影变换矩阵投影变换矩阵是做什么的呢?这个更容易理解了。大家都应看过照片吧,那大家又想过照片是怎么样表现原来的物体呢?看到远处的山是小的,近处的人是大的。并且只有在一定的范围内的物体才照得清楚,其它的就不见了。在D3D里就需要把三维的物体空间投影到二维的屏幕空间显示,这就需要投影了。本来人眼看现实的物体时,总是经过投影变换的,把三维的物体通通变换成二维东西,这样就在人眼上看见东西就是三维的了。现在这个投影变换就是模拟人眼的作用,沿着光线的方向,那些能看见,那些不能看见。那些是近的,那些是远的。通过这样的计算,就会生成二维的图像,跟人眼看到真实的世界是相同的。如下图所示:在D3D里通过设置 阅读全文
posted @ 2006-08-13 00:03 ajuanabc 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 1、 视图变换矩阵视图变换矩阵是做什么用的呢?为什么需要视图变换矩阵呢?其实这个问题很好回答和理解的。在3D世界里,所有东西都是跟现实中的实物一样的,当用人的眼睛去观看现实中的实物时,总是从某一方向去观察的,这样就看到实物组成的图像。就像你拿着照相去照相是一样的,首先要调好焦距,对准物体。在D3D里也需要调好焦距,对准物体,否则什么也看不到。因此在D3D里,就需要设置好视图变换矩阵。也就是相机的位置和焦距。在视图变换矩阵里,是使用两个点来表达相机位置和焦距,如下图所示:在D3D里使用向量来表示相机位置,如下:D3DXVECTOR3 vFromPt = D3DXVECTOR3( 0.0f, 0. 阅读全文
posted @ 2006-08-11 23:58 ajuanabc 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 1、 世界坐标变换矩阵在设置顶点缓冲区之后,就需要设置物体的世界坐标变换矩阵。从解析几何里可以知道,无论二维还是三维的图像都可以通过齐次坐标来变换的。目前在三维里的变换,采用的矩阵是4×4的矩阵来实现变换处理。在D3D里定义D3DXMATRIX类型,使用它来表达一个矩阵,并且定义一系列的函数可以实现矩阵的运算。它的定义如下:typedef struct _D3DMATRIX { union { struct { float _11, _12, _13, _14; float _21, _22, _23, _24; float _31, _32, _33, _34; float _41 阅读全文
posted @ 2006-08-11 00:15 ajuanabc 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 1、 顶点缓冲区顶点的数据是怎么样保存在内存里的呢?由于渲染需要,就要把顶点保存在内存缓冲区里。最简单的方法就是使用D3D提供的顶点缓冲区,即是使用IDirect3DVertexBuffer9接口的顶点缓冲区管理,它是通过D3D的设备来创建。这个接口实现顶点的资源管理,使用起来非常方便,由于它管理内存分配,这样就省了内存管理。下面就是通过IDirect3DDevice9::CreateVertexBuffer函数来创建一个顶点缓冲区:HRESULT hr;// 创建顶点缓冲区。if( FAILED( hr = m_pd3dDevice->CreateVertexBuffer( 3*2*s 阅读全文
posted @ 2006-08-09 13:14 ajuanabc 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 21 使用Direct3D2.11.1最简单三角形显示前面已经学习了顶点、平面以及平面的法向量。接着下面就带你进入奇幻的3D世界,由你去创造这个美好的3D世界。任何美好的事物都是简单的东西组成的,所以也需要从最简单的物体构造开始。这里主要显示一个三角形,其它关于窗口和初始化D3D的设备都已经由MM3D引擎做好了,目前只要设置顶点、世界坐标变换矩阵、观察变换矩阵、投影变换矩阵,然后渲染这个三角形,就可以显示屏幕里了。最终显示效果如下图:1、 顶点格式顶点格式是可变的,是灵活的。由前面可知,顶点肯定是有三个值的,就是三个坐标轴的值。下面先来看看最简单的顶点格式,它定义如下://定义顶点缓冲区里用到 阅读全文
posted @ 2006-08-08 13:16 ajuanabc 阅读(137) 评论(0) 推荐(0) 编辑
上一页 1 ··· 181 182 183 184 185 186 187 188 189 ··· 191 下一页