為什麼單機遊戲中的碰撞很不真實?物理引擎真的很難做到和現實一樣嗎?

時間 2021-05-05 14:42:56

1樓:MiiDK

乙個簡單點的回答

模擬器終究是模擬器,不能代替真實的情況…

第十一層樓電影中的玩法現階段不管是機器效能還是技術水平都達不到…

2樓:順著網線去旅行

遊戲裡用真實物理?拿出個籃球的碰撞場景來可能都需要一台天河的計算量。

再者程式工程師們也沒這個空閒時間給你去寫那麼多的場景變數和邏輯。一般擬真度達到一定水準就夠了,寫太多不但浪費記憶體,邏輯還容易出錯,沒人會喜歡乙個到處都是bug的遊戲,畢竟這又不是貓耳貓

3樓:輕颺

我覺得,遊戲物理碰撞如果真的還原成現實中的樣子,反而會讓玩家難以接受。

因為「現實世界」並不是玩家真正追求的,玩家想要的是遊戲能無限接近自己腦海中的樣子,但這個「樣子」往往跟現實不一樣。

4樓:羊脂酸

因為做得真實,就沒法玩了,現實世界中按照遊戲裡面那個速度,車一碰就散架了,碎成一堆渣,車裡的玩家直接就成了肉泥,還玩個卵的遊戲,你撞在電線桿上試試看看是什麼後果?遊戲裡動不動就是把樹撞倒電線桿撞飛?但是現實中你撞了電線桿後果就是你變成肉泥

5樓:不鏽鋼後槽牙

畢竟遊戲性大於一切。

別說物理碰撞了,有不少遊戲的引擎其實擁有很好的地圖破壞性的,然而為了所謂的遊戲性給閹割了。比如在遊戲裡面對一扇鎖住的門,作者希望你去找鑰匙,但如果地圖是可破壞的話我為什麼不炸開它或者炸開旁邊的牆?

6樓:小舟從此逝

只補充一點:很多回答裡似乎預設了 simulation 的頻率與畫面的幀率是一回事兒。

但實際上這兩者可以不相等。程式完全可以在乙個執行緒中做 simulation,另乙個執行緒中做渲染。甚至在我上物理引擎的課時,對某些作業老師明確說了要求我們用更高的 simulation 頻率,例如 10ms 或者 5ms 的步長(相當於每秒 100 或 200 次 simulation),以求更好的效果。

當然實際 3A 大作遊戲中採用了什麼方案我也不清楚,有可能為了節省計算量,讓物理引擎計算的頻率與畫面幀率一致。但在某些情況下,如果渲染本身的開銷比物理引擎大很多,是可以讓物理引擎以乙個比較高的頻率(即短步長)進行更真實的模擬,同時保持渲染開銷不變的(即渲染還是 60Hz)。

7樓:

技術不成熟

你要想,如果真有一天遊戲引擎能100%模擬現實的物理效果而那個時候AI跟人類相差無幾

讓我們把AI扔進遊戲裡,會發生什麼有趣的事情?

這個遊戲名字就叫地球OL

8樓:Cirnov

用幾十億個開關去模擬n*6.02*10^23個例子的運動?

emm當然你算個幾十年來模擬很短的一段時間也不是不可能,但是你是做遊戲,不是做cg

9樓:夏涵希

一堆人都在說技術問題,我來補充乙個遊戲性問題有那麼一款遊戲,叫做beam ng,這個遊戲的物理模擬可謂是過分真實,甚至遊戲中的碰撞測試可以和現實效果結果相似。

那麼就很簡單了,現實中飆車僅需60碼就能讓你車毀人亡如果遊戲裡也這麼逼真,想象一下gta,極限競速這樣的動不動300碼的遊戲?乙個小失誤會怎樣?遊戲還怎麼爽快?

戰地裡,如果啥都可以破壞,那乙個不注意是不是會被廢墟壓死?

遊戲減少一些物理上的真實,換來的是更高的娛樂性可玩性

10樓:琴梨梨

cpu和gpu目前都不能保證真實碰撞下足夠的幀率。

在僅僅5fps的幀率下,做真實並沒有技術問題,而且只要一塊E5配一塊P5000就能帶的動。但是5fps放到遊戲上那是人玩的嗎?

如果要達到144fps的真實物理碰撞,目前來看,8顆白金志強配4張志強屁加速卡都不一定行。

就拿csgo來說,其本身已經把5820k吃了80%了(144fps左右),而csgo本身的物理引擎已經算優化比較好的了。如果進一步增強真實性,丟雷瞬間可能真的要1950x以上的U帶的動了。

11樓:

有種熊掌和魚不可兼得的感覺吧,像2004的半條命2的物理效果依然很好,可是出於乙個引擎的後來者csgo並沒有超越它,反而物理效果被閹割了好多比如屍體不能被打得動起來。我想是因為出於電腦配置優化考慮的

12樓:村上吃樹

設計遊戲的第一性是可玩性,第二性才是真實性。

同理,遊戲的物理引擎也是先為遊戲的遊戲性服務,再向真實性靠近的。如果遊戲中的物理規則和現實世界一樣,很多遊戲根本就玩不下去了。

大部分遊戲給人一種物理引擎很真實的感覺,實際上主要還是這個遊戲能夠運用到物理引擎的地方很多,玩家可以充分地和遊戲的物理世界互動而已。

比如half-life2,重力槍的設定使得很多關卡需要運用物理引擎解密或者殺敵。因為遊戲設計上有這個要求,所以它的物理引擎才設計得非常出色。除了互動性很足以外,看上去也非常真實,特別是在題主所說的碰撞方面,令人記憶猶新。

但是就算這樣,它也不能說和現實世界的物理規則相同。如果要細究起來,能舉起車的重力槍為什麼不能舉起怪物?(實際上最後一關才可以)為什麼重力槍的碰撞不能把牆擊穿?

遊戲的物理引擎就是這樣,需要的物理規則就設計出來,不需要的就忽略不計,不然不僅可能做了無用功,而且還會適得其反。

比如碰撞引擎,GTA和半條命這種經常需要碰撞的遊戲便做得非常有力度(但也不是真實,現實生活中哪可能有撞不斷的樹和能飛那麼遠的人...),用不著碰撞的遊戲你跑步跑得再快碰到敵人和牆壁也只是原地踏步或者硬直一下。

一切還是為遊戲服務,不大需要的地方就不必要設計得那麼精細了。反過來說,如果你是乙個遊戲設計師,耗費精力設計了乙個引擎系統,那麼你也會竭盡全力把他展現在遊戲裡的,不然豈不是白費功夫?

不過遊戲還是照顧到真實性。當物理引擎不夠的時候,就靠美工貼圖,也就是遊戲畫面來湊了。比如車撞到牆上出現裂縫的貼圖,船開過水面出現浪花的貼圖等等。

這也是為什麼遊戲的畫面看上去都非常精美。因為畫面是遊戲最直觀的展現,所以要盡可能地全面。不僅要擦物理引擎的屁股,而且即使不重要的地方也不能說不做或者做得粗糙。

不然就很容易出現輻射4裡那樣的情況,精美的第一人稱槍械貼圖旁突然跑出馬賽克化的場景貼圖,一下就被人看出偷工減料的痕跡和深深的違和感了……

13樓:

人對物理效果是敏感的,包括視覺上也是。一旦你看到的所謂的基於物理計算的運動或者效果,你的大腦會自動將其和你日常所見所聞進行對比(我們自己甚至不會察覺到我們居然精通高深莫測的各種物理運算結果),一旦有一絲不符合你的預期,你會立即反應過來:這個物理效果不真實。

並且還有乙個問題在於:完全基於物理效果的表現結果難以預期,這樣會大大影響演出效果。

14樓:

真實的物理運算和真實的畫面運算都非常耗資源。

所以現在實時的物理和畫面運算,二者都用的是「取巧」(作假)的方式來實現的,只是讓你感覺上覺得像是這麼一會事。

而在使用同樣運算資源的去作假的情況下,畫面更容易呈現出讓人感覺「逼真」的效果,而物理卻不行。這不是在製作上有誰故意挑著搞,而是人感官敏感度和個體差異性的問題。

15樓:

因為沒用CTCD(連續時間碰撞檢測)加保證精確遍歷所有基本結構單元。

電影工業中用精確的碰撞檢測是可能的,但碰撞用到的演算法複雜度是巨大的,自碰撞之類的算一兩個月不是問題。遊戲一般追求實時的效果,通常用乙個簡單的包圍體加DTCD(離散時間碰撞檢測)就好了。

比如一些傳統的基於tile格仔的2D遊戲一般就直接檢測運動物體是否跑到了乙個相應的格仔邊上。做的好的可能會用一些簡單層次結構,比如八叉樹之類做加速,因此能在保證實時的情況做得更好。

保證每個單元做CTCD同時還能保證實時應該還是乙個open problem。此外更深入考慮還要涉及到不同的碰撞位置受到的彈力不同的問題,此外還涉及塑性形變和摩擦,似乎是乙個大坑。

16樓:gougou槐巨集文

很多朋友都從技術層面回答這個問題,其實,這個問題更多的是從遊戲設計和玩家手感方面考慮的,上面有朋友提到,計算機不是連續的,是離散的,並不完全正確,實際上很多碰撞演算法都有連續的碰撞檢測演算法,純從技術層面看待這個問題並不全面。

從遊戲開發角度來說,真實的物理有個問題,很難精確的從遊戲設計角度來控制反饋,在絕大多數遊戲開發中,讓玩家感到有趣,感到舒適的反饋很多時候都是不符合真是物理的。

舉乙個最簡單的例子,馬里奧踩敵人,踩到敵人之後,可以跳的更高,如果完全交給物理引擎來運算,很有可能真實的計算結果就是馬里奧沒辦法跳躍這麼高,但是從遊戲設計和反饋的角度來說,用「假的」物理來讓馬里奧跳的更高,會給玩家乙個「我成功殺死了敵人,獲得正向反饋的喜悅」,就比如說迪士尼的動畫,經常都會有誇張的變形,誇張的表情,都是類似的道理。這樣做還有可能是為了設計乙個玩法,「靠踩死敵人去到正常去不到的高度」,主要都是為了玩法服務。

在真正的遊戲開發中你會遇到非常多的方面,需要根據遊戲設計來精準控制,而不是根據真實物理來精準控制,主要都是為了給玩家更多好的feeback。

17樓:泛泛之輩

我覺的可以比喻在mc的世界裡造mc,還要和原世界一樣複雜可用。難度可想而知。不懂物理但是覺得不可能。

以後得技術最多做到無限接近(可能大概),但要說100%一樣。我覺不可能,畢竟1不能大於2。

18樓:

一、蒙特卡羅演算法

2023年,美國拉斯阿莫斯國家實驗室的三位科學家JohnvonNeumann, Stan Ulam和Nick Metropolis共同發明了蒙特卡羅方法。

蒙特卡羅方法(Monte Carlo method),又稱隨機抽樣或統計模擬方法,是一種以概率統計理論為指導的一類非常重要的數值計算方法。此方法使用隨機數(或更常見的偽隨機數)來解決很多計算問題的方法。

由於傳統的經驗方法由於不能逼近真實的物理過程,很難得到滿意的結果,而蒙特卡羅方法由於能夠真實地模擬實際物理過程,故解決問題與實際非常符合,可以得到很圓滿的結果。

蒙特卡羅方法的基本原理及思想如下:

當所求解問題是某種隨機事件出現的概率,或者是某個隨機變數的期望值時,通過某種「實驗」的方法,以這種事件出現的頻率估計這一隨機事件的概率,或者得到這個隨機變數的某些數字特徵,並將其作為問題的解。

有乙個例子可以使你比較直觀地了解蒙特卡洛方法:

假設我們要計算乙個不規則圖形的面積,那麼圖形的不規則程度和分析性計算(比如,積分)的複雜程度是成正比的。蒙特卡洛方法是怎麼計算的呢?假想你有一袋豆子,把豆子均勻地朝這個圖形上撒,然後數這個圖形之中有多少顆豆子,這個豆子的數目就是圖形的面積。

當你的豆子越小,撒的越多的時候,結果就越精確。在這裡我們要假定豆子都在乙個平面上,相互之間沒有重疊。

蒙特卡羅方法通過抓住事物運動的幾何數量和幾何特徵,利用數學方法來加以模擬,即進行一種數字模擬實驗。它是以乙個概率模型為基礎,按照這個模型所描繪的過程,通過模擬實驗的結果,作為問題的近似解。

蒙特卡羅方法與一般計算方法有很大區別,一般計算方法對於解決多維或因素複雜的問題非常困難,而蒙特卡羅方法對於解決這方面的問題卻比較簡單。其特點如下:

I、直接追蹤粒子,物理思路清晰,易於理解。

II、採用隨機抽樣的方法,較真切的模擬粒子輸運的過程,反映了統計漲落的規律。

III、不受系統多維、多因素等複雜性的限制,是解決複雜系統粒子輸運問題的好方法。

現在的單機遊戲傷害效果不真實是因為什麼?

阿丘 因為真實的沒人玩啊。真實系傷害的遊戲也不是沒有,比如 武裝突襲 系列,傷害夠真實了吧,跑步三小時打仗三分鐘,一不留神一顆花生公尺就gg。這遊戲體驗,呵呵 七海渡千秋 這個啊,建議玩一下武裝突襲3 不見人只聞聲,螢幕突然紅三次你就沒了 遊戲總歸是遊戲,就像電影需要做藝術化處理一樣太過於接近真實反...

為什麼有時候感覺生活很不真實

茶色 我也是!一樣的感覺!疫情後一直有種不真實的感覺,像在做夢,腳踩在棉花上,像跟現實世界有一層透明的但穿不透的膜,不知道眼前的東西是真是假,每天像潮水般湧來的新聞像在看電影一樣,不覺得事情是在真實發生 以為是太久沒出去沒正常社交,但出去後更說不上來感覺曾經熟悉的世界都是假的,自己被包裹著跑不出來,...

得來的太容易,是不是就感覺很不真實。?

阿惠 生於憂患死於安樂。我認為當你開始考慮這個問題的時候,你已經比一般人要領先一步。得來太容易,失去也有可能很容易。時刻保持著進步的動態很重要。 楊毅 假如一樣東西,你費了九牛二虎之力才得到,你會在得到的那一刻有一種心理上的成就感和滿足感。但是,這種感覺能否持續,與你得到它的難易程度沒有關係,與薪水...