這是一篇看了Mobile01上面的白痴討論有感而發的廢水,某位網友引用最新的美式英雄遊戲BATMAN的畫面,來質疑沒有PhysX物理運算,ATi到底能撐多久?想當然耳,這種文章出來肯定是討戰用的…果不其然,當場引來ATi的直持者們一片撻伐,站在阿岩我的立場上,我只能說…被狂婊是正好而已…

至於這篇文章為什麼會被阿岩認為是白痴討論呢?原因就在於有某位網兄提出來OpenCL這個標種技術,然後說:"我幹嘛要用PhysX?我用OpenCL就好啦!"

……阿岩只能說,這位老兄看似專業,實際上根本沒搞懂OpenCL是啥…要不然不會跟PhysX扯在一起;OpenCL是來自於GPGPU的觀念,這個技術各家顯示卡廠商已經發展很久,他主要的目的,是要透過閒置的GPU處理單元來進行輔助運算,簡單來說,他的概念就像以前的80387這顆浮點運算器一樣

物理運算牽涉到的層面非常得廣,廣到包括你玩撞球遊戲,白球打出去被撞到的球前進角度跟速度是物理運算
你玩賽車遊戲想甩尾過彎,也是物理運算
賽車遊戲裡面換不同的車胎,他的摩擦係數也是物理運算
你玩美式足球,你衝撞對手也是物理運算
你用Pro/E跟SolidWorks做機構熱力模擬運算,也是物理運算
你做機構強度模擬,那也是物理運算

簡單來說,物理運算的需求,無所不在,所有的遊戲都會用到物理運算
講得更過分一點,二三十年前你玩Apple II的超級運動員,你在地上挖個洞,人會往下掉而不是往上飛都算物理運算

回到主題,我要先強調,OpenCL跟物理運算一點關係都沒有...他是GPGPU的規範;而且,我也要強調一點,物理模擬不是物理特效,物理運算沒有特效
英文的Physical Effect講的是很中規中矩的反應物理現象而以
特效講的是打人打到雙手發光,眼睛可以冒雷射這種才叫特殊效果

的確,nVIDIA是透過CUDA讓顯示卡能對PhysX的物理運算需求進行處理
但是不代表有OpenCL,ATi就可以用顯示卡來做PhysX的運算支援
因為那依然是nVIDIA的專屬技術,想用?請付錢
他就算想在顯示卡上,透過OpenCL或Stream做HACOK的運算支援都要付錢給Intel
所以不要把OpenCL當作是萬靈丹,不是有了他,甚麼都可以做
也不是有了OpenCL,PhysX跟HAVOK就變成廢物,因為兩個是完全不一樣的東西

回到物理引擎上面來討論,的確,沒有PhysX對ATi來說是不痛不癢的
會認為沒有PhysX ATi就會倒其實是很無厘頭的結論...
但是,請注意,PhysX並不會因為DirectX 11內建物理運算引擎就這樣銷聲匿跡
因為我上面講了,物理運算的層面很多,DX 11有他做出來的物理運算部分
但是不可能涵蓋全部的物理運算,同樣的,PhysX也無法與HAVOK相互取代
Crytek也有一套自己的物理引擎,用在Crysis跟Farcry2上面
但是有因為這樣,PhysX跟Havok就成了廢物嗎?沒有
怎麼沒聽人去訪問Crytek的發言人,問問看他要不要因為DirectX 11放棄自家的物理引擎?

物理引擎的引用,對於遊戲設計師來說,一向都是Additional或是Optional的
沒人強迫你一定要引用哪家的物理引擎,在沒有物理引擎的年代,各家遊戲廠商或是3D繪圖/工業設計廠商
還是要自己手動寫一堆物理模擬函式出來,在那個年代,也不見任何一家廠商因為物理引擎而倒閉
以前不會這樣,現在也不會,將來更不可能

DirectX 11內建物理運算函式,的確是一個"相當便利"的選擇
但是並非"絕對唯一"的選擇,因為講穿了,OpenGL跟D3D從以前就已經有很多基本的物理運算
最有名的就是碰撞偵測,你之所以不會開賽車開到成為另外一台賽車的背後靈
就是因為有碰撞偵測,讓你跟他會有物理存在空間的不可侵犯性
其他還有更多,我沒有刻意去研究的部分,現在只是增加了物理運算的函式
並不會因此而取代任何一套現存的物理引擎,因為物理引擎本來就是外加的
而不是3D引擎的主體,所以本來就是你高興掛上哪家的物理引擎就掛上哪家的

所以從結論上來說:
1. 並不會因為有了DirectX 11,PhysX,HAVOK或是Crytek自家的物理引擎就會消亡
2. OpenCL是用來做GPGPU運算的,不是用來做物理運算的,這是兩碼子事,就算DirectX 11用OpenCL來運算物理函式,那也不代表OpenCL的主要工作是處理物理運算
3. 永遠不會有任何一家公司,因為沒有支援某套物理引擎而倒閉,因為這種事情從以前就沒發生過,將來也不可能發生,就算所有遊戲公司都選擇PhysX了,ATi只要付授權金就可以解決這問題,nVIDIA不授權,還有反托拉斯法案等著他
4. 你玩的所有遊戲,原本都已經在處理物理運算了,現在出來的這些物理引擎,只是方便遊戲公司不必自己撰寫物理模擬函式而已,沒有物理運算的遊戲,你根本玩不下去,像之前某套卡車賽車遊戲被人狂婊,爬坡的佳速跟平地一樣順暢,這就是沒有物理運算的範例之一

 

0 Response to “物理加速?你到底需不需要?”

Leave a Reply