[連結] Verbatim 機器人大戰 on Nexus One

看板Flash作者 (嗯)時間15年前 (2010/04/30 14:17), 編輯推噓3(3023)
留言26則, 2人參與, 最新討論串1/1
With Flash 10.1 of course. http://www.youtube.com/user/flashstreamworks#p/u/1/0VlYNKTQOfA 不過 Roxik 說好的 open source 呢 .. :~~ 等兩年啦 .... 我只是單純想知道他的一些簡單 3D Scene 不會吃滿 CPU 是怎麼做到的? http://temp.roxik.com/datas/perform/index.html 這個應該之前有人貼過,不過不知道有沒有針對 performance 的討論? 跑 512 顆球 in 3D 還有 DoF 效果,Ram 吃不多,CPU 的話吃我一個 cpu core 不到一半,另一個 core 大約才 25%,一直加到 3000+ 顆 cpu 才吃滿 連我同學用 Mac 小白機說他光是看 youtube/nico 影片電腦都會起飛, 跑這個竟然聽不到風扇在轉。 不過他 lag 時個效果也蠻特別的,不是 frame rate 掉下來 而是看起來他把某些沒辦法 fit 在同一 frame 裡的運算自動跳掉, 所以本來一起動的物件變成了分開動 .. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.72.57.78

04/30 21:13, , 1F
省CPU效能最重要的技巧之一就是caching
04/30 21:13, 1F

04/30 21:13, , 2F
你仔細看那些3D面的亮度變化是不連續的
04/30 21:13, 2F

04/30 21:13, , 3F
表示他其實是把各種亮度的面先cache成material
04/30 21:13, 3F

04/30 22:31, , 4F
可是 PV3D 裡大家應該也常看過那個幾乎一模一樣的 demo
04/30 22:31, 4F

04/30 22:32, , 5F
銀色的球跑來跑去變化的那個,原作者 Mr. doob
04/30 22:32, 5F

04/30 22:32, , 6F
他也是有做一樣的 cache .. 可是效率光是幾百顆球就不行了
04/30 22:32, 6F

04/30 22:33, , 7F
Roxik的512粒子demo也是有作cache的
04/30 22:33, 7F

04/30 22:33, , 8F
各種顏色的粒子的各種blur程度都有預先繪製好bitmap
04/30 22:33, 8F

04/30 22:33, , 9F
至於不同尺寸的粒子是否也有作cache我就不知道了
04/30 22:33, 9F

04/30 22:33, , 10F
如果有的話,那效能肯定是會爆增的
04/30 22:33, 10F

04/30 22:34, , 11F
yeah, I mean,兩者應該都有做類似的 cache,但效率還是差
04/30 22:34, 11F

04/30 22:34, , 12F
很多 ...Mr doob 的那個 demo 我也自己拿 src 來玩過
04/30 22:34, 12F

04/30 22:35, , 13F
所以我只能猜想主要是 sharikura 3D 和 pv3d 內部有什麼
04/30 22:35, 13F

04/30 22:37, , 14F
決定性的不同?不過你提到才想起來,mrdoob 那些球大小有變
04/30 22:37, 14F

04/30 22:42, , 15F
經你這麼一說激起了我的好奇心,我剛用SWF Decompiler把
04/30 22:42, 15F

04/30 22:43, , 16F
512粒子解開來看,發現他根本沒有用Sharikura耶
04/30 22:43, 16F

04/30 22:43, , 17F
全部的3D只用三個class作掉,所以function call stack
04/30 22:43, 17F

04/30 22:43, , 18F
超級少,跟肥肥的PV3D的確不能比 :p
04/30 22:43, 18F

04/30 22:44, , 19F
不過這就是在inline code和code encapsulation之間作抉
04/30 22:44, 19F

04/30 22:44, , 20F
擇了...懶惰的我是會選擇後者的XD
04/30 22:44, 20F

04/30 22:48, , 21F
唉呀,發現了另外一個512粒子的render技巧
04/30 22:48, 21F

04/30 22:48, , 22F
他其實是用BitmapData.copyPixel()將粒子畫上去的
04/30 22:48, 22F

04/30 22:49, , 23F
所以會比PV3D直接把DisplayObject顯示出來的效能還好
04/30 22:49, 23F

04/30 22:49, , 24F
難怪他不讓你用右鍵zoom in,不然bitmap就露餡了
04/30 22:49, 24F

04/30 22:51, , 25F
使出 Decompiler 禁招啦 XDD <(_ _)> ...
04/30 22:51, 25F

04/30 22:52, , 26F
所以看來只有下面三個特別註明 sharikura 的才真的有用到
04/30 22:52, 26F
文章代碼(AID): #1BsdNuyZ (Flash)