由于在opengles中没有累积缓冲区,我为了实现追踪而做了什么?如果我使用帧缓冲区来模拟它,那么使尾部看起来顺畅会花费太多吗?
答案 0 :(得分:1)
通常没有足够的数据来从单个州创建路径。如果球改变了运动方向,即使包括速度也会使它看起来很差。因此,先前对象状态的某种信息是非常必要的。
可以使用单独的通道来保存先前的状态,例如模板缓冲区,甚至可以创建衰减系统的alpha通道。这意味着你会在每个帧上在这个通道上绘制球,但在绘制它之前,你会将整个通道缩小一些值,这样“较旧”的部分会逐渐淡出。这个单独的球绘图需要像径向渐变一样,所以你将获得一个相对平滑的线索,但是远非完美,并且对于相对快速的移动,一些额外的后处理将是强制性的,除非结果显然是期望的效果。
更合适的方法是在CPU上包含对象位置跟踪。只需继续推动堆叠上的当前位置并移除那些太旧的位置(例如保留20个最新位置)。然后使用这些位置创建表示球尾的形状。在这一点上,机会是无限的。例如,您可以将尾部设计为图像,然后从位置创建一个类似矩形的形状,如果正确完成,会产生令人敬畏的尾部效果。