Flash GPU渲染,最容易遇到的问题就是GPU与CPU时钟同步的问题。我们可以把CPU和GPU比作两个军人一起走踏步走。如果其中两个人踏步节奏个稍微慢了一拍,就会出现不同步的问题。军人A左脚的时候,军人B右脚。就会出现等待GPU 时间过长的问题。如下Scout截图:
我打开gpu-z查看了一下GPU的负载,发现GPU根本没有出现超负荷的情况。那么基本可以断定游戏出现了时钟不同步的问题。
那么如何解决这个问题呢?
很简单,让GPU渲染这块的引擎停止一帧,不做contex3d.present()GPU呈现。这样就可以调整就可以让GPU等一次CPU,从而解决不同的问题。
我这里的方法更加简暴,直接让Stage3D 相关的计算,每隔一帧,停止一帧。
然后完美解决这个问题: