#21天打卡游戏人的日常思考# #空间音频# 如何实时判定游戏角色是否身处空间中,该空间的大小、形状、材质参数,以及为了模拟早期反射声所需的位置、朝向、声音障碍物等信息?
简化的做法是只在游戏场景中划出空间区域,比如:山洞、房间等等,只需判断游戏角色是否在这个区域中,或是进入这个区域的入口边缘地带即可,这样的方式只能大致反映出发声点所处的空间环境信息,但基本上进入了这个空间后所有声音都是一样的,没有办法判断角色在这个空间中的具***置,通常对于空间定位要求不高的游戏会采用这种方式。
对于空间定位要求高的,基本主流都会使用射线+空间信息编辑的方式,即在地图编辑中,详细指定出空间的大小形状、表面材质、障碍物件等等信息。然后通过从角色位置不停发出大量的射线,来标记空间信息,并返回某一时刻角色在空间中模拟空间音频效果所需的关键数据。
这里我们可以看出,当然是射线越多效果越好,可是射线判定的系统消耗较大,硬件有限制的情况下就必须优化算法,有选择地发射线。比如,音源点到墙面的最短距离路径是最重要的,一定要有射线,音源后方的射线必要性较小,可以简化,等等。
总的来说,就是主机游戏性能限制小,射线可以多,但手游性能限制就很大了,通常只能给出几条射线,是远远不够精确反馈空间信息的。
简化的做法是只在游戏场景中划出空间区域,比如:山洞、房间等等,只需判断游戏角色是否在这个区域中,或是进入这个区域的入口边缘地带即可,这样的方式只能大致反映出发声点所处的空间环境信息,但基本上进入了这个空间后所有声音都是一样的,没有办法判断角色在这个空间中的具***置,通常对于空间定位要求不高的游戏会采用这种方式。
对于空间定位要求高的,基本主流都会使用射线+空间信息编辑的方式,即在地图编辑中,详细指定出空间的大小形状、表面材质、障碍物件等等信息。然后通过从角色位置不停发出大量的射线,来标记空间信息,并返回某一时刻角色在空间中模拟空间音频效果所需的关键数据。
这里我们可以看出,当然是射线越多效果越好,可是射线判定的系统消耗较大,硬件有限制的情况下就必须优化算法,有选择地发射线。比如,音源点到墙面的最短距离路径是最重要的,一定要有射线,音源后方的射线必要性较小,可以简化,等等。
总的来说,就是主机游戏性能限制小,射线可以多,但手游性能限制就很大了,通常只能给出几条射线,是远远不够精确反馈空间信息的。
全部评论
相关推荐
点赞 评论 收藏
分享
昨天 02:50
Columbia University 算法工程师 点赞 评论 收藏
分享
02-25 21:07
北京理工大学 Java 点赞 评论 收藏
分享