2009-12-04 35 views
5

我們有一個應用程序可以在運行時生成大約100個動畫,並且它們全部添加到單個故事板中,然後播放。問題在於動畫速度非常慢。正在進行動畫處理的對象是形狀和樣條線,並且在後端完成大量計算以生成自定義樣條線。正在運行的計算機是具有良好圖形卡的四核。我們如何提高WPF動畫的性能(其中100個)?

關於我們如何解決這個問題的任何建議?我們是否需要將動畫分成多個故事板或在不同的畫布上進行動畫製作?

謝謝

+0

什麼操作系統版本?動畫有多少UI元素? – 2009-12-04 01:41:53

+0

它在Windows 7中運行。在每個動畫中,只有一個對象是動畫的,但在故事板中有大約100個動畫。 – user180812 2009-12-04 01:43:49

+0

動畫僅僅是改變物體的位置還是涉及改變尺寸/形狀?如果第一個,那麼它應該有可能動畫那麼多的對象。如果以後那麼你給渲染器一個巨大的計算量,因此緩慢的性能。 – 2009-12-04 04:09:11

回答

2

它很少有人很難知道什麼是沒有看到動畫和代碼放慢你的動畫。但我會給你一些有助於改進的一般觀點。

  1. 如果計算量很大,請將您的計算移至不同的線程。調度程序線程忙於進行UI管理,因此如果將所有內容放入一個線程中,肯定會減慢速度。
  2. 重複使用樣條線,形狀等,這一定會對您有所幫助,因爲您還可以將您的應用程序從昂貴的垃圾收集例程中解放出來。 Infact在開始動畫之前,顯示一些不同的動畫像時鐘等,以創建開始時所需的所有對象。
  3. 探索位圖緩存選項並嘗試實現它們。