[英]How to scale a 2D wave simulation by elapsed time?
我有一個波浪模擬,其計算值如下:(偽代碼)
for(x):
for(y):
new_value = (current[x-1,y] + current[x+1,y] + current[x,y-1] + current[x,y+1]) / 2 - previous[x, y]
new_value -= new_value * damp
previous[x, y] = new_value
swap(current, previous)
將周圍點的平均值減去該點的先前值加倍。
現在變化發生在每一幀,所以它的速度取決於幀速率。 問題是,我不知道如何通過經過的時間來擴展這個過程。 我嘗試獲取新舊值之間的差異並對其進行縮放,但這根本不起作用; 可能與換板有關,但我不確定。
我可以讓它工作還是我需要一種完全不同的方法?
好的,我想通了。 我的問題是基於這樣一個事實,即我認為我必須每幀都運行這個算法——我沒有。 如果你只是每隔幾幀運行一次,那么顯然生成的動畫並不流暢; 但我不認為你可以只做線性插值來獲得從舊狀態到新狀態的平滑過渡,這會產生我滿意的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.