





























1、该文档不包含其他附件(如表格、图纸),本站只保证下载后内容跟在线阅读一样,不确保内容完整性,请务必认真阅读。
2、有的文档阅读时显示本站(www.woc88.com)水印的,下载后是没有本站水印的(仅在线阅读显示),请放心下载。
3、除PDF格式下载后需转换成word才能编辑,其他下载后均可以随意编辑、修改、打印。
4、有的标题标有”最新”、多篇,实质内容并不相符,下载内容以在线阅读为准,请认真阅读全文再下载。
5、该文档为会员上传,下载所得收益全部归上传者所有,若您对文档版权有异议,可联系客服认领,既往收入全部归您。
撞检测程序开发到目前为止,引擎无法阻止个物体穿过另物体,或阻止物体穿过作为场景而创建的几何图形。
换句话说,对当前的代码而言,没有种方法可以检查是否可能发生碰撞,并对此做出响应。
如果物体之间相互穿过,或物体穿过环境,那就很难创建需要交互处理的对象。
边界体是个环绕个或组几何图形如球盒子椭圆球等的形状。
下面介绍两类边界体边界框和边界球,它们可以简化碰撞检测和加快处理速度,因为形状不像原始模型那样复杂。
每个边界形状都有自己的优缺点,但它们具有的共同点是它们要比其他可选方案要快得多。
边界框边界框是个围绕在物体周围的方框。
它用于实现许多不同的技术,诸如可见度判断,以及包含碰撞检测的方法。
边界框是个简单的结构,它由矢量的最大值和最小值构成。
物体的边界框尽可能地靠和物体的极点围绕物体。
图给出了个带有边界框的物体示例。
北京邮电大学世纪学院毕业设计论文图边界框示例截图边界框中有许多浪费的空间。
出现这种情况是因为框中的些区域不包含任何几何图形,只是为了让方框保证它的样子,才导致出现浪费的空间。
这样在碰撞检测中会导致精确度降低,因为在两个物体实际上没有发生碰撞时,测试结果也会显示为真。
为了更精确的计算碰撞,可以使用多个边界框,通过循环所有的对象顶点并确定的最大值和最小值就可以简单地计算出边界框。
这如同使用两个矢量样简单,个矢量代表最小值,另个代表最大值,使用语句可以检查每个三角形中每个点的每个轴要么比最小值小,要么比最大值大。
如果是这样的情况,那么更新那些变量,并移动到下个顶点。
当循环完顶点列表中所有的顶点时,就可以得到最大值和最小值。
算法如下列程序清单所示。
北京邮电大学世纪学院毕业设计论文边界球边界球完全围绕在些几何图形周围,它除了不用方框之外,和边界框结构非常相似。
边界球结构可以使用个浮点值确定。
前个浮点值代表了边界球的中心位置,第四个浮点数代表了边界球的半径。
和边界框相比较而言,边界球在处理碰撞检测和可见度时速度更快。
使用边界球存在的主要问题是它们环绕造成的空间浪费要比边界框多。
计算边界球像计算边界框样容易。
为了计算边界球,需要对被考虑的几何图形的各个轴循环计算,并确定顶点的最大值和最小值。
用最大结果值的平方根减去最小结果值的平方根就会得到球的半径。
边界球的中心坐标就是差值除以的结果。
下列程序清单给出了使用列顶点定义和计算边界球的方法。
北京邮电大学世纪学院毕业设计论文北京邮电大学世纪学院毕业设计论文引擎中添加对碰撞检测的支持引擎中的第个新文件是头文件。
该头文件包含了个类和两个函数。
第个类是边界几何图形基类,创建其他边界几何图形时可以从该类派生。
第二个类是边界框类,第三个是边界球类。
头文件中的两个函数分别是和。
这两个函数分别用于检测两个方框和两个球体之间的碰撞。
每个类中的成员函数分别是两个和。
在创建涉及的边界几何图形时,会用到函数。
函数和本章演示程序中创建的函数很相似,用于测试个点是否和个边界几何图形发生碰撞。
下列程序清单给出了头文件的完整代码边界几何图形基类测试个点是否和个边界几何图形发生碰撞计算每个框边外的平面个平面北京邮电大学世纪学院毕业设计论文查看射线是否真的在边界几何图形中,边界框类,边界球北京邮电大学世纪学院毕业设计论文检测两个方框之间的碰撞检测两个球体之间的碰撞输入检测和响应每个交互式程序都要为用户提供些与其交互的方法。
在游戏中,输入检测不仅要和大量的设备打交道,还要能够对具有速度高要求的视频游戏做出快速反应。
在操作系统中,输入可以通过汇总在起。
是的部分,负责对所有连接到机器上的设备进行输入检测。
的实现在中创建设备之前,首先要像为了能在屏幕上渲染对象必须创建系统样,必须初始化输入系统,这仅需调用函数即可。
北京邮电大学世纪学院毕业设计论文如果调用成功,函数将返回。
只要已经准备好输入系统,就可以调用输入系统的成员函数创建输入设备。
创建完设备后,在实际可以获取要使用的设备之前,必须先调用设备的成员函数。
该函数以描述设备返回的数据格式的机构地址为参数。
设置完数据格式之后,就可以调用函数设置设备的合作等级。
函数指定设备与其他设备实例以及与系统自身之间的交互方式。
该函数以程序窗口句柄和指定设备合作等级的标识符为参数。
在开始检测设备输入之前,最后个要调用的函数是。
该函数没有任何参数,用于获取输入设备。
如果设备获取成功,将返回,否则返回其他任意值。
为了检测来自设备的输入,就必须获取设备的当前状态。
调用函数即可完成该工作。
函数的参数包括用于存储设备状态的结构的大小以及存储状态的对象。
每个设备都有套可以发送给该函数的不同值。
因为有了函数,所以现在可以知道设备状态。
这意味着可以使用个简单的语句判断个按钮是否被按下。
对键盘和鼠标也确实如此。
关闭系统时,在释放设备之前,必须放弃设备。
这通过调用函数即可完成。
