Answers:
一个简单的spring系统的10分钟实现(或者他在博客上说;))。该系统可以处理多个扭曲和其他扭曲网格的事物。
更新以添加一些次要的附加细节:
其他一些细节。过去曾在Bizarre Creations网站上进行过一次采访(该网站由于公司倒闭而消失了),这里有一个问题:
问:游戏中最引人注目的新图形功能之一是“重力网格”游戏区域。您如何使它看起来如此酷;游戏中的每个物体真的都有自己的引力吗? 网格本身由60,000个点组成,每个点都对其邻居施加少量力。模拟本身位于稳定性的边缘,这就是当其中一个游戏对象向其施加小的推动力时,导致其摇摆很大的原因!只有少数几种对象会影响网格。由于网格系统的计算相当昂贵,因此它实际上与音频系统一起在第二个内核上运行(第一个内核专用于游戏性和粒子,第三个内核用于渲染音频)。
我不知道是否有“正确”的方法可以执行此操作,但可能只是应用了美观的线性变换,并应用了从距离到点的衰减。
因此,对于您正在使用的任何元素,您将:
几何学战争(Iirc)将几何扭曲作为扭曲扭曲应用于某些元素,而其他元素(例如粒子)仅受“力”的影响而没有扭曲。假设您有足够的顶点可以平滑地采样效果,则可以在顶点着色器中应用变形。或者,您可以先将需要影响的所有内容渲染到屏幕外的缓冲区,然后将结果渲染到精细的细分四边形上,然后将失真应用到该四边形上,然后再将所有未失真的元素添加到顶部。
至于变换,缩放将使您看起来更吸引人。如果我没记错的话,还会发生一些扭曲,这只是一点点旋转。
您可以通过计算强度因子来获得越来越出色的效果,以获得更古怪的效果。例如,您可以计算元素相对于中心的角度(a),并将其作为因子。取cos(a)即可在效果中产生径向波。您要做的就是设置必要的脚手架代码,然后去城镇尝试各种不同的因素组合。