帧同步-逻辑渲染分离(客户端)
客户端逻辑渲染分离主要解决以下问题:
1,抗网络抖动导致的渲染抖动(各种表现不平滑),不分离的话网络抖动导致逻辑抖动进而影响渲染
2,新建线程处理逻辑层,避免逻辑渲染共用线程导致拖累渲染,平摊cpu资源,保证渲染资源不被占用。即无论逻辑层如何延迟,渲染层始终平滑。这样做还有好处是:逻辑和渲染可各自发挥最大效能,通常情况下逻辑层帧率在10到20间变化,可以轻松处理大几百单位的逻辑运算(寻路,避障,ai等)
3,逻辑层独立出来,可做服务端验算
具体做法:
1,渲染层位移使用采样+插值
2,逻辑渲染通信使用消息队列+volatile(坐标高度等频繁更新的数据)
3,消息队列优化:读写双队列,消费者取读队列时加锁(交换读写队列),然后无锁消费,生产者每次加锁写入写队列