Re: [問題] 請教關於PS4性能到什麼程度

作者: cjcat2266 (CJ Cat)   2014-06-16 09:58:05
再怎麼好的硬體,沒有好好撰寫的遊戲軟體搭配,也是白搭
高檔的硬體,也可以因為遊戲開發者的沒有好好優化
而展現低檔次的效能
PC的硬體組合五花八門
其實對PC遊戲開發者而言是很辛苦的
(就像Android手機對遊戲開發者一樣)
唯一能夠廣為人接受的方式
就是提供各種不同的遊戲設定
讓玩家調整出最適合自己PC的組態
暴風雪算是很有良心的了
不但針對各種視覺特效提供不同等級的設定
每個項目還有說明文字,告訴玩家各選項是針對什麼硬體做調整
他們大可像大部分的遊戲一樣
簡單提供Low, Medium, High三種Graphics Settings選項即可
如同bachelorwhc說的一樣
可以把遊戲主機當作人家幫你組好的套裝機
或許綜合性能沒有辦法比過頂尖的PC
但是由於硬體規格統一
遊戲開發者可以針對單一硬體組態而做出最佳的優化選擇
主機獨佔的遊戲更不用說
硬體固然重要
但是能夠發揮出的效能,完全取決於遊戲開發者
DirectX或OpenGL是為了減輕開發者的負擔
而設計出的高階圖像API
其中不乏針對硬體指令操作不當的防呆機制
例如還沒有綁定shader program就發出繪圖指令
DirectX會直接當機加上輸出錯誤訊息
OpenGL則是透過函式回傳錯誤代碼
高階圖像API到頭來還是需要把高階的函式呼叫
轉換成GPU懂的機器語言代碼串流,包成封包餵給GPU
對於開發者固然是方便
但是多了至少一層的抽象層,就是代表效能的損失
頑皮狗不用考慮跨平台,所以可以完全針對PS4的硬體做優化
GPU方面
不使用DirectX或OpenGL這種高階API
而直接生成GPU的機器語言代碼串流封包,餵給GPU
CPU方面
不像PC開發者,無法事先得知總共有幾個可用的CPU核心
PS4的CPU核心就是八個,兩個被OS佔去,所以遊戲可用的是六個
頑皮狗的做法是生成六個常駐thread
透過設定CPU核心親和力,一個thread綁定一個核心
這樣可以省去透過OS層來分配thread執行時間的效能損失
每一個thread不停地把工作序列裡面的工作提出來執行
這些thread不太會被OS從CPU核心上換掉(因為一個核心就是綁定一個thread)
所以不會有context switch的效能損失
記憶體方面
對DirectX或OpenGL有經驗的人應該知道
如果要建構vertex buffer或texture
需要在main memory先把資料建構好
然後透過高階API的函式呼叫,把資料複製到video memory
這個兩段式的寫入,其實是浪費時間,因為寫入資料是一模一樣的
PC硬體由於可以自行搭配,main memory和video memory通常是分開的
main memory就是大家平常簡稱的"記憶體"
video memory則是跟繪圖卡綁定的GPU專用記憶體
PS4是統一規格,所以沒有必要把main memory和video memory分開
總共的記憶體就是8GB,被OS用掉2.5GB,所以遊戲可以用5.5GB
這5.5GB是可以CPU和GPU共用的 (unified memory)
CPU建構好vertex buffer或texture之後
只要把指標傳給GPU,GPU就可以對這些資料做存取
不像一般PC需要把同樣的資料寫入兩次
PS4相關的硬體組態和其他軟體優化重點
可以參考頑皮狗的Jaon Gregory在XXI SINFO的演講
https://www.youtube.com/watch?v=f8XdvIO8JxE
bachelorwhc也提到了GI (Global Illumination)
我把我所知道的一些GI技術分享一下
如果有學過電腦圖學
一開始通常是教phong shading之類的渲染技術
這種渲染方式是所謂的Local Illumination
因為單一個表面,只考慮光源直接對它的照明,而忽略周圍環境的影響
所謂的Global Illumination就是把環境的影響也考慮進去
如影子、環境遮蔽、環景反射
說起來容易,但是要在即時運算的速度下運算正確的GI結果是不可能的
連offline render的GI都是用離散的光子模擬的了,更別說即時運算
所以遊戲開發者必須用其他方式,做出很像是GI的效果來"騙"玩家
影子基本是必備的GI效果
在low-poly的時代,還可以使用shadow volume這個技術
但是隨著現代遊戲模型面數的增加,shadow volume也失去了實用性
現在流行的技術是shadow map,比較不會因為模型面數而拖垮效能
然而缺點是影子的品質取決於shadow map的解析度
解析度過低的shadow map,就會讓玩家看出放大的影子像素
為了避免這個問題,要嘛提高shadow map的解析度
要嘛對影子進行柔化的後製處理
環境遮蔽(ambient occlusion,簡稱AO)則是另外一個AAA遊戲必備的GI效果
之前也說過了,用離散光子模擬太慢了
現在的主流技術是一開始由Crytech提出的SSAO (Screen-Space AO)
利用Z-buffer周邊像素的資訊
來近似每一個像素因環境遮蔽而失去的漫射光量
這是全螢幕的後製特效
所以跟場景上的物件數和面數沒有關係
至於環境反射,通常是用一個反射environment map來蒙混過去
拿The Last of Us做例子
大樓的窗戶和地上的積水所反射出來的環境並不是真正周遭的環境
而是一個是先準備好的environment map
由於有經過模糊處理,沒有仔細觀察是不會發現的
有些賽車遊戲為了要真的在車身上做出真實環境反射的效果
必須以車身為中心,額外對周圍全場景做多次渲染
效能消耗取決於周圍環境和模型的複雜度
額外的draw call也是很貴的
最近有一個流行的環境反射"騙術"
是使用含有normal資訊的render target、main render target和Z-buffer
取得每一個像素一次光反射於main render target上的"著彈點"
用這個顏色資訊來模擬一次光反射的效果
這個技術叫做Screen-Space Ray-Traced Reflection,簡稱SSRR
如同SSAO,此技術為全螢幕後製特效
跟場景上的物件數和面數沒有關係
缺點是有時候反光著彈點不在main render target上
這個時候就會出現資料缺乏而反光資訊不完整的瑕疵
但是通常SSRR的反光會做模糊處理,所以玩家不太會注意到
PC版的Assasin's Creed IV就有使用SSRR
嗯...其實我寫到後來也忘記我一開始的主題是什麼了
就當作是brain dump好了
以上
作者: sugizo0 (臺灣魯蛇)   2014-06-16 10:01:00
(!)我媽問我為何要跪著上PTT...
作者: globe1022 (肉食兔)   2014-06-16 10:04:00
翻譯官~翻譯官!請求支援....這是哪國語言,看無阿囧rz
作者: eipduolc (松尾健太)   2014-06-16 10:06:00
豪門深似海...
作者: marsdora (CWES)   2014-06-16 10:08:00
???
作者: windfeather (W.F)   2014-06-16 10:08:00
專業推
作者: SHwEE (Boost)   2014-06-16 10:11:00
XD看來多玩本家的遊戲就會知道PS4的能耐在哪了是說德瑞克臉上那隻蒼蠅實在是滿厲害的(?
作者: thesky14 (七夜)   2014-06-16 10:13:00
原PO看來是射後不理 不用這麼認真拉XD
作者: opoppp (信 X JAPAN得永生)   2014-06-16 10:16:00
推!
作者: Kamikiri (☒☒)   2014-06-16 10:18:00
最近的看門狗室內景也有用到騙術 但不知道是不是同種類感覺騙術是未來趨勢(?)
作者: strike519 (噓我者 宅友也)   2014-06-16 10:22:00
你幫他把期末作業作完了 至少討杯50嵐ㄅ
作者: Hua0722 (引歸殺象吶)   2014-06-16 10:31:00
很多中文字不是嗎,怎麼看不懂QAQ
作者: b2284446 (滾來滾去~)   2014-06-16 10:35:00
是頑皮狗員工耶!(跪)
作者: crassus7217 (肯德鴨)   2014-06-16 10:36:00
完全看不懂
作者: jetalpha (月迷風影)   2014-06-16 10:38:00
長知識推!
作者: bachelorwhc (單身老王)   2014-06-16 10:39:00
我也跪下來了 竟然是CJ Cat大大
作者: tim971715 (呱呱)   2014-06-16 10:40:00
快推假裝看的懂
作者: uyry6 (蘿莉是正義 偽娘是真理)   2014-06-16 10:40:00
GTA V 跟 看門狗 是不是窗戶反射方法不同 GTA好像是真反射
作者: cjcat2266 (CJ Cat)   2014-06-16 10:41:00
不可能是真反射,因為真反射意味著每一片窗戶都需要^從窗戶的角度對整個場景重新做渲染,太貴了不過我也無法回答實際做法是如何,因為我還沒有玩...不過Remember Me和The Bureau: XCOM Declassified的地板是真反射,因為只有地板有反射,只需要渲染場景兩次缺點是場景主體精緻程度就無法衝高,因為要渲染兩次如果是整個場景有多個反射體,使用SSRR的機率很高
作者: LOXAERIC   2014-06-16 10:49:00
專業推!!
作者: ggyyggy (L'Arc~en~Ciel Hyde!)   2014-06-16 11:40:00
嗯嗯…說的有道理
作者: Bigcookie2 (ミン)   2014-06-16 12:06:00
不懂裝懂中 推
作者: kusanagi7331 (BEAR)   2014-06-16 12:21:00
神人出沒快朝拜!台灣之光!
作者: tp950016   2014-06-16 12:23:00
只能推啦
作者: ggBird (ggBird)   2014-06-16 12:30:00
我都看懂,但還是進不了頑皮狗
作者: NakedSnake   2014-06-16 12:34:00
推!
作者: zorroptt (毛毛鼠)   2014-06-16 12:34:00
原來是這樣呀 嗯嗯嗯嗯嗯
作者: simongarden (園丁)   2014-06-16 12:36:00
還好我只要負責玩就好了....
作者: mihonisizumi (中原岬マジ天使)   2014-06-16 12:55:00
推 太強了!
作者: XGOAT (不想再孤獨的過聖誕節了)   2014-06-16 12:56:00
我是原PO 感謝各位大大願意花時間解答 雖然專業部分不太懂玩主機比PC省事這原則我一直都在實踐 期待頑皮狗大能帶來更多神作造福玩家!
作者: mikeneko (三毛貓)   2014-06-16 13:05:00
嗯嗯,跟我想的一樣
作者: a83a83cjcj (馬馬虎虎)   2014-06-16 13:08:00
專業推!!
作者: wjuiahb   2014-06-16 13:14:00
寫的真好,我也這樣認為
作者: nomorepipe (不管了啦)   2014-06-16 13:18:00
跪了
作者: godrong95 (家暴)   2014-06-16 13:19:00
有神快拜
作者: igarasiyui (かゆい うま)   2014-06-16 13:42:00
請教大大 ICE team有在測試PS4的hUMA是真的嗎
作者: wuliou (wuliou)   2014-06-16 13:50:00
我室友問我為什麼跪著看PTT
作者: nvidiaxp (風花水月)   2014-06-16 13:57:00
我同事問我為什麼流淚了
作者: nightdragen (小二)   2014-06-16 13:59:00
我媽問我為什麼要跪著滑手機OTL
作者: cjcat2266 (CJ Cat)   2014-06-16 14:17:00
ICE team的工作內容保密,所以我不知道他們現在在幹嘛..雖然說ICE跟ND使用同個工作空間,但是他們還是待在一個神祕小房間裡面,只有吃午餐的時候會出來晃而已話說回來,就算我知道,有Sony的NDA也什麼都不能說啊 :/
作者: LOXAERIC   2014-06-16 14:23:00
CPU GPU共用記憶體其實對於異質運算架構感覺是有滿大幫助最近在使用CUDA,有時候光傳資料到GPU就佔了一堆時間Orz
作者: cash35 (Englishness)   2014-06-16 14:52:00
PS3的設計是主記憶體與視訊記憶體分開 360則是共用記憶體這種設計差異也會影響跨平台遊戲的設計吧
作者: chocoboex (肚子肥油三層)   2014-06-16 15:39:00
作者: callmelanpo (陳亨利)   2014-06-16 15:47:00
我居然看得懂= =
作者: Porianesu (微少年)   2014-06-16 16:22:00
完全看不懂 不過看到大神id只能推了orz
作者: sthho (sthho)   2014-06-16 16:52:00
看到神id推
作者: ivan4161 (弱的人容易被喜愛)   2014-06-16 17:07:00
太猛了
作者: yuyuliu (寧靜)   2014-06-16 17:14:00
看不懂沒關係,只要會玩遊戲就好
作者: chigo0123 (傑尼斯琦)   2014-06-16 18:31:00
看到最後,腦中一直浮現塵土記,真的是長知識了
作者: olddadwind (阿仔)   2014-06-16 18:50:00
有神快拜
作者: dimrain (有點懷念倫敦)   2014-06-16 18:53:00
原以為是老梗PC和CONSOLE戰文結果卻是專業神回覆討論串
作者: realfade (Re)   2014-06-16 19:17:00
雙腿不自主的跪下來了 這篇文跟台科學生證差不多......
作者: dukemon (dukemon)   2014-06-16 19:23:00
這篇請M吧...
作者: ivan761016 (小易)   2014-06-16 19:25:00
還沒看內文看到id就跪一半了
作者: chiyosuke (知夜介)   2014-06-16 19:37:00
(拜
作者: angus4003 (永遠立志)   2014-06-16 20:55:00
認真分析推
作者: shark0321 (這就是人生啊)   2014-06-16 21:57:00
推專業大大專業回文,專有名詞都看不懂..
作者: arty (阿宏)   2014-06-16 22:29:00
長知識了 推推!
作者: h51206yk   2014-06-16 22:58:00
專業推
作者: CrazyMika (溺汨客)   2014-06-16 23:06:00
專業推~
作者: topless (來首查特貝克吧..)   2014-06-16 23:14:00
專業推~~~
作者: CALLING (Hideki)   2014-06-16 23:57:00
看不懂 但有道光
作者: talan (---)   2014-06-17 00:15:00
雖然能進頑皮狗的程式設計師都一定很強但想知道Corrinne Yu是不是真的如傳說中那麼神
作者: cjcat2266 (CJ Cat)   2014-06-17 00:19:00
不太清楚,我跟她唯一的交集是一起吃過一次咖哩飯XD
作者: talan (---)   2014-06-17 00:21:00
她會說中文嗎 聽說是香港出身的?
作者: cjcat2266 (CJ Cat)   2014-06-17 00:25:00
從她的英文口音聽起來,英文的確不是她的母語所以應該會說中文沒錯,雖然我本人沒聽過就是了...ND華人不少啊,週三有華人外食團,當然會有非華人亂入就我所知,美術有一個台灣人,ICE也有一個程式部門就我一個,剩下還有沒有不清楚,之後慢慢找...順帶一提,週二是程式部門的咖哩外食團,據說這個傳統已經實施了十年了...每週二都去同一家日式咖哩店說實在的,House牌的佛蒙特咖哩塊還比較好吃不過我也不好意思一語道破,畢竟這是超過十年的傳統...我也不知道為什麼他們那麼愛吃,有一次一週還去四次
作者: talan (---)   2014-06-17 00:33:00
推 很有趣的內幕花絮 希望多聽一點 XDDD
作者: igarasiyui (かゆい うま)   2014-06-17 00:33:00
HOUSE wwwwww
作者: LOXAERIC   2014-06-17 00:42:00
吃咖哩XD 一周連續吃4次感覺好膩..
作者: llwopp (hotdogroll)   2014-06-17 00:44:00
大概外國人比較少吃到東洋的食物 感覺很神奇吧 XD
作者: zerosaviour (........)   2014-06-17 01:29:00
推一下認真的頑皮狗台灣人
作者: OGoTTe (A君)   2014-06-17 01:40:00
來朝聖一下Orz
作者: fhjqwefs (Kenshin)   2014-06-17 08:43:00
有神拜就對了
作者: sisik (sisik)   2014-06-17 10:22:00
ICE team的任務不就是打造第一方專用引擎,這之前就有透露了不需要保密.
作者: LonelyLove (傲然與懦弱)   2014-06-17 10:23:00
朝聖...
作者: cjcat2266 (CJ Cat)   2014-06-17 10:41:00
我指的是ICE詳細在做的事情
作者: sisik (sisik)   2014-06-17 10:49:00
PS4的專用引擎吧? 從之前的訪談推測.若SONY自己提供PS4的專用引擎給第三方用,第三方就不用被遊戲引擎商抽一筆費用,與其被遊戲引擎商抽,不如由SONY抽,這樣搞限時獨佔也容易.
作者: Aqery (腦殘巨嬰沒藥醫)   2014-06-17 13:32:00
有神快拜 XD
作者: bimmer3   2014-06-17 14:16:00
m(._.)m
作者: saedn (~自掛東南枝~)   2014-06-17 15:52:00
這篇好強大!! 太厲害了!! (跪)
作者: HolyBugTw (HolyBug)   2014-06-17 16:46:00
為什麼是綁定thread而非process?啊,白問了,access memory...
作者: Zsanou   2014-06-17 18:11:00
專業推
作者: cjodagiri (cjyang)   2014-06-17 20:00:00
我媽問我為什麼要跪著上大號
作者: cocowing (wing)   2014-06-17 21:49:00
太專業了!
作者: Kamikiri (☒☒)   2014-06-17 23:47:00
有點好奇怎麼跪著上大號 有真相嗎?
作者: forgenius (否雞)   2014-06-18 00:56:00
我比較想問...為什麼你上大號你媽會進來...
作者: KirinP (KirinP)   2014-06-18 05:57:00
(跪
作者: MACROSS2K (MACROSS2K)   2014-06-18 08:23:00
好強大
作者: nfsong (圖書館我來了)   2014-06-21 12:02:00
m(._.)m
作者: darkhit (K')   2014-06-21 18:51:00
專業~(跪)

Links booklink

Contact Us: admin [ a t ] ucptt.com