当前位置:文档之家› DirectX实验二报告

DirectX实验二报告

DirectX实验二报告
DirectX实验二报告

实验二DirectX渲染及图形绘制实验

实验报告

项目1:DirectX渲染管道实验

在例程Cub的基础上,完成以下步骤:

1.修改Display函数中物体的旋转变换矩阵,使三维模型不再旋转。

2.修改摄像机位置坐标、观察点坐标、向上向量的值,记录以下状态时的值:

a)远距离拍摄。

b)近距离拍摄。

c)平面旋转90度。

3.修改变换矩阵的创建参数,即D3DXMatrixPerspectiveFovLH()函数的参数,观察并记录以下参数对应的画面:

a)近平面距离设为1000,远平面距离设为1000。

b)近平面距离设为1,远平面距离设为5。

c)近平面距离设为1,远平面距离设为1000。

d)宽高比:(float)width*1.5/(float)height

e)宽高比:(float)width*0.5/(float)height

f)宽高比:(float)width/(float)height

1、修改Display函数中物体的旋转变换矩阵,使三维模型不再旋转。

操作截图如下:

修改后的运行结果截图如下:

2、修改摄像机位置坐标、观察点坐标、向上向量的值,记录以下状态时的值:

a) 远距离拍摄。

操作代码:

运行结果:

b)近距离拍摄。

操作代码:

运行结果:

c) 平面旋转90度。

操作代码:

运行结果:

3、修改变换矩阵的创建参数,即D3DXMatrixPerspectiveFovLH()函数的参数,观察并记录以下参数对应的画面:(在第二步的基础上)

a) 近平面距离设为1000,远平面距离设为1000。

操作代码:

结果窗口画面一片空白。

b) 近平面距离设为1,远平面距离设为5。

操作代码:

运行结果:

c) 近平面距离设为1,远平面距离设为1000。操作代码:

结果与上图一样。

d) 宽高比:(float)width*1.5/(float)height

操作代码:

运行结果:

e) 宽高比:(float)width*0.5/(float)height 操作代码:

运行结果:

g) 宽高比:(float)width/(float)height

操作代码:

运行结果:

项目2:DirectX图形绘制实验

在例程Cub的基础上,完成以下步骤:

1.修改8个顶点中任一个一个顶点的值,观察并记录画面。

2.增加一个顶点数据(第9个顶点),具体值为:(2.0f,1.0f,1.0f)。观察并记录画面。此处需要注意顶点缓冲区创建的缓冲区大小参数为9个顶点(Vertex)。

3.增加一个三角形数据,即三个索引缓冲区,具体值为:6,7,8。观察并记录画面。此处需要注意索引缓冲区创建的缓冲区大小参数为39个索引(WORD)。

4.再增加两个三角形数据,具体值为自行设定,观察并记录画面。此处需要注意索引缓冲区创建的缓冲区大小参数为39+6个索引(WORD)。

5.改变渲染状态,分别设置渲染的FILLMODE为线框模式、顶点模式和面模式,观察并记录画面。

1、修改8个顶点中任一顶点的值,观察并记录画面。

操作代码:

运行结果:

2、增加一个顶点数据(第9个顶点),具体值为:(2.0f,1.0f,1.0f)。观察并记录画面。此处需要注意顶点缓冲区创建的缓冲区大小参数为9个顶点(Vertex)。

操作代码:

运行结果与上图一样,没有任何变化,下图只是截图时的旋转角度不同:

3、增加一个三角形数据,即三个索引缓冲区,具体值为:6,7,8。观察并记录画面。此处需要注意索引缓冲区创建的缓冲区大小参数为39个索引(WORD)。

操作代码:

运行结果:

4、再增加两个三角形数据,具体值为自行设定,观察并记录画面。此处需要注意索引缓冲区创建的缓冲区大小参数为39+6个索引(WORD)。

操作代码:

运行结果:

5、改变渲染状态,分别设置渲染的FILLMODE为线框模式、顶点模式和面模式,观察并记录画面。

线框模式(D3DFILL_WIREFRAME):

操作代码:

运行结果:

顶点模式(D3DFILL_POINT):

操作代码:

运行结果(注意:画面上有点):

面模式(D3DFILL_SOLID):

操作代码:

运行结果:

项目一:1

2

A

B

C

A

B

C

D

E

F

1:

2:

3:

4:

5:

A:

线框模式:

点模式:

C面模式

实验心得

本次实验在大家看来是非常简单的,但是我的电脑本身是有系统自身的问题,所以很多问题其实并没有解决好。我下次一定

会好好解决这些问题。

相关主题
文本预览
相关文档 最新文档