游戏开发实验7

游戏开发实验7

ID:39892101

大小:1.55 MB

页数:14页

时间:2019-07-14

游戏开发实验7_第1页
游戏开发实验7_第2页
游戏开发实验7_第3页
游戏开发实验7_第4页
游戏开发实验7_第5页
资源描述:

《游戏开发实验7》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验七:广告板技术一、实验目的掌握广告板技术的原理,熟悉广告板技术使用方法.二、实验仪器VisualStudio2005三、实验原理及过程//网上检索广告板技术相关知识Billboard理解与实现Billboard是一项使用非常普遍的技术,很多一些绚丽的特效可以使用它来实现,当然公告板、姓名板等是它较早的用途。Billboard的主要思想是在XY平面上建立一个绘图区域,在此区域上渲染一张贴图的一个区域,并且此平面要一直面向摄像机。Billboard的主要实现:1.Billboard的绘制区域是建立在自身坐标系的XY平面上,绘制区域的

2、正面朝向为自身坐标系的Z轴的方向。由于Billboard需要朝向摄像机,所以Billboard在构造渲染顶点数据的时候需要将原始的Billboard绘制区域的左右对调后再填充定点数据(即原来的区域left与right)。2.Billboard朝向问题:Billboard需要一直朝向摄像机,即通过YawPicthroll(由于旋转是相对于Billboard自身坐标系,所以YawPicthroll分别对应YXZ)三次旋转后达到billboard永远朝向摄像机的目的。一般程序实现分两种,固定Yaw轴(Billboard的上方向

3、不变)与不固定Yaw轴。固定Yaw轴的Billboard旋转的时候要使Yaw轴保持固定所以不能进行Picth和Roll旋转,只需要沿Yaw轴旋转。固定Yaw轴的Billboard需要三次旋转Billboard旋转D3D代码://由于Billboard的旋转是按自身坐标系旋转,所以up/right/foward分别对应Y/X/Z轴//首先得到billboard应该被设置成的朝向向量即摄像机的朝向向量的反方向D3DXVECTOR3lookAt(0.0f,0.0f,1.0f);lookAt=-pCam->GetDirection();//

4、再得到lookAt投影到XZ平面上的向量,用于计算Pitch值(相当于沿X方向旋转的角度)D3DXVECTOR3adjustLookAt=lookAt;adjustLookAt.y=0.0f;//必须要将向量变为单位向量D3DXVec3Normalize(&lookAt,&lookAt);D3DXVec3Normalize(&adjustLookAt,&adjustLookAt);D3DXMATRIXrm_x;//沿X轴的旋转矩阵D3DXMATRIXrm_z;//沿Y轴的旋转矩阵D3DXMatrixIdentity(&rm_z);/

5、/如果摄像机的上方向的Y值小于0则需要将Billboard的up方向向反方向调换一下if(pCam&&pCam->GetUp().y<0.0f)D3DXMatrixRotationAxis(&rm_z,&D3DXVECTOR3(0.0f,0.0f,1.0f),D3DX_PI);//Billboard朝向与XZ平面的夹角dot=D3DXVec3Dot(&adjustLookAt,&lookAt);//如果Billboard朝向是沿Y轴向下则绕X轴正向旋转,否则沿X轴反向旋转,//左手坐标系下的旋转符合左手定则,比划一下就能知道为什么i

6、f(lookAt.y<=0)D3DXMatrixRotationAxis(&rm_x,&D3DXVECTOR3(1.0f,0.0f,0.0f),acos(dot));elseD3DXMatrixRotationAxis(&rm_x,&D3DXVECTOR3(-1.0f,0.0f,0.0f),acos(dot));rm_x=rm_z*rm_x;D3DXMATRIXrm_y;//绕Y轴旋转的矩阵//旋转的角度为Billboard朝向与Billboard原始朝向的夹角dot=D3DXVec3Dot(&D3DXVECTOR3(0.0f,0.

7、0f,1.0f),&adjustLookAt);//根据Billboard朝向方向是偏X轴的正方向还是反方向决定绕Y轴的正方向或反方向//同样用左手比划一下就知道为什么if(adjustLookAt.x<=0)D3DXMatrixRotationAxis(&rm_y,&D3DXVECTOR3(0.0f,-1.0f,0.0f),acos(dot));elseD3DXMatrixRotationAxis(&rm_y,&D3DXVECTOR3(0.0f,1.0f,0.0f),acos(dot));3.Billboard渲染时需要根据使用情

8、况决定是否需要开启灯光渲染。Billboard的实现步骤:一:定义广告版矩形顶点结构和顶点格式二:创建广告版矩形和纹理对象三:接下来就是设置一些Alpha混合系数四:根据观察的方向来广告版矩阵,通过旋转矩阵对象使它面向观察者。//利用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。