推 cowbaying: 你這是把同樣把全部要做的事情都塞進update裡面吧 03/26 00:50
→ cowbaying: 這樣有沒有延遲5秒執行沒有差別阿 03/26 00:51
→ windkey: 的確只是單純的把呼叫次數降低而已 03/26 01:16
推 Frostx: 在開頭的時候把timer的第一次週期隨機分散 03/26 09:25
推 cjcat2266: 我自己是不太喜歡用timer,因為有不確定因素 03/26 10:03
→ cjcat2266: 因為用frame數來決定是否update的話,控制比較精確 03/26 10:04
→ cjcat2266: 一開始我會推薦最簡單的 (object index + frame#) % n 03/26 10:06
→ cjcat2266: 來決定是否update,不夠的話再看有沒有其他地方可以切 03/26 10:07
→ cjcat2266: 也可以試試看lazy update,有需要的時候才觸發update 03/26 10:08
→ cjcat2266: 下個frame再給結果,太多query的話就排隊timeslice 03/26 10:09
→ cjcat2266: Uncharted 4的就是用這種request-based lazy update 03/26 10:10
→ cjcat2266: 來算出NPC的最佳移動目的地,NPC有reqeust才開始update 03/26 10:11
→ cjcat2266: 要算的東西太多,就timeslice,過幾個frame再給結果 03/26 10:11
→ cjcat2266: 反正是決定層,慢個0.1秒才反映在動畫層也看不出來 03/26 10:12
推 softpak: 我的方法跟cj是一樣的 03/26 12:13
→ softpak: 用更新率來切step 03/26 12:14
→ softpak: 或者說就是最簡單的一招吧 XD 03/26 12:15
推 softpak: 這樣做是不用另開執行緒 03/26 12:17
→ softpak: 效能不足再開就好 03/26 12:17
推 cjcat2266: 如果平台支援fiber的話,可以在低overhead的狀況達到 03/26 15:07
→ cjcat2266: 多執行緒的效果,一開始開跟CPU core數量一樣的執行緒 03/26 15:08
→ cjcat2266: 然後用core affinity綁定CPU core,再用job system分配 03/26 15:09
→ cjcat2266: fiber給執行緒處理 03/26 15:09
推 lemmii: push~ 03/27 10:55
推 sakyer: 讚 03/27 14:40
推 breakself: 時域切割正夯 03/28 23:25