[CEDEC08] MGS4 & others

http://www.watch.impress.co.jp/game/docs/20080910/cedec_mgs4.htm

「METAL GEAR SOLID 4」関連セッションレポート その1

戸島サウンドディレクターが明かす”戦場ストリーム”とは何か!?

一個發售到現在其實只過了3個月的第一線title,願意在CEDEC08上大規模地公開資料,而且和GDC不同,CEDEC的日程限制很多的關係,一款遊戲開到3個分開的時段絕對是異數。

願意拿出來講真的是有很大的衝擊。

先前CAPCOM的呼籲(希望日本廠商彼此之間能夠進一步共享技術資訊,以求彼此的互惠)是真的有帶來一些影響。

http://www.watch.impress.co.jp/game/docs/20080912/cedec_mgs.htm

「METAL GEAR SOLID 4」関連セッションレポート その2

次世代機という”理想”と、PS3という”現実”の狭間でもがくエンジニア達

CEDECの技術セッションとしてはこれ以上は望めない絶好のモチーフだが、どちらかといえばあまり外に出したくなかったはずであり、

それにも関わらずゲーム産業のために情報を提供してくれたKONAMIには最大限の讃辞を送りたい。

並不是「檢討後放棄實作」,而是「已經實作,但是PS3規格確定後不得不移除,而嘗試別的方法」這點是重點。

當然這一切都是因為PS3規格當時還沒有訂好,訂好之後又與初期SDK有落差。

1. FP16的話filltate不足所以換成int8下的encoding

2. 因為有encoding所以無法直接用alpha blending,所以又加了blend buffer、並且對buffer使用降低解析度的方法來減少負荷

3. 在人物打光技法上追加了「分離pre-lighting」的獨家手法,將部分的打光資訊寫進頂點資料,並在之後用shader合成,類似HL2的radiosity normal-mapping,和單純的lightmap相比可以減少材質解析度;但是和RSX的相性不好的關係,結果在打光上也得作一些限制。

4. 煙塵和積水之類的特效使用的是vector color。因為shader和材質容量其實是一體兩面,增加shader的話就是代表得增加材質。

5. 所有的demo都是real time。3D polygon demo全部real time之外,連2D都是靠flash。(!!)

辛苦的地方是motion資料增加的同時得追加角色關節、物件數量、連動態資料都有所壓縮。

2D動畫使用的flash上也要顧及容量,所以BD顯然也不是容量什麼多充足的東西。

「これは『MGS4』固有ではありますが。”違うシステム”の上に、無理矢理移植した関係で、かなり制限がありました。たとえば座標系の表現できる範囲とか、あとはサポートしていない機能とか。

実際にコンバートしてから、これはまずいかなと気づいて、制限に引っかかった場合は、データの修正を依頼して、これを回避しました。そこがちょっと今回、まずかったかなという点です」

我只能說小島工作室的人都超有愛的,辛苦了!



http://www.watch.impress.co.jp/game/docs/20080912/sonic.htm

セガ、新作「ソニック ワールドアドベンチャー」におけるライティング技法を公開

“次世代水準”の映像美を実現するグローバルイルミネーション

http://www.watch.impress.co.jp/game/docs/20080910/awards.htm

ゲーム開発者達が開発者を称える「CEDEC AWARDS 2008」を初実施

宮本茂氏が特別賞を受賞

http://www.watch.impress.co.jp/game/docs/20080909/imagire.htm

「IMAGIRE(今給黎) DAY」、国内ゲームグラフィックスの最新研究発表

http://www.watch.impress.co.jp/game/docs/20080910/nvidia.htm

GPUに秘められた膨大な計算力を活用。PhysXによる物理処理、CUDAによる超高速演算の可能性



http://www.watch.impress.co.jp/game/docs/20080911/cedlink.htm

「CESAデベロッパーズカンファレンス 2008」記事リンク集

在〈[CEDEC08] MGS4 & others〉中有 17 則留言

  1. eji兄你有用過1920*1080規格電漿/液晶接X360嗎?效果如何?
    目前XBOX360的遊戲原生都只有到720p
    使用1920*1080規格電漿/液晶接X360
    訊號勢必要經過scaling演算過程才能顯示
    那麼失真將是無可避免

  2. 沒錯阿
    就是用720p訊號輸入到1920*1080規格的電漿/液晶
    這樣要經過電漿/液晶內部的演算晶片up-scaling
    印象中幾年前..那時的效果好像都滿慘的
    像我這台數年前買的1024*768規格的老舊液晶用來顯示800*600訊號可以說是慘不忍睹
    很久沒關心平面顯示器的發展了
    這麼多年過去了
    也不知道最近有沒有進步了

  3. 沒錯阿
    就是用720p訊號輸入到1920*1080規格的電漿/液晶
    這樣要經過電漿/液晶內部的演算晶片up-scaling
    印象中幾年前..那時的效果好像都滿慘的
    像我這台數年前買的1024*768規格的老舊液晶用來顯示800*600訊號可以說是慘不忍睹
    很久沒關心平面顯示器的發展了
    這麼多年過去了
    也不知道最近有沒有進步了

  4. MGS4開發團隊怎沒像當初龍穴開發團隊使用 共享記憶體 技術 使用XDR 分擔的類似技術….難道沒挑戰到嗎?
    怪哩!

  5. MGS4開發團隊怎沒像當初龍穴開發團隊使用 共享記憶體 技術 使用XDR 分擔的類似技術….難道沒挑戰到嗎?
    怪哩!

  6. >>1. FP16的話filltate不足所以換成
    >>int8下的encoding
    這完全可以預期….FP16在G70上,
    沒多少遊戲跑的到720P.
    如果有FP10就好了.
    >>2. 因為有encoding所以無法直接用
    >>alpha blending,所以又加了blend buffer、
    >>並且對buffer使用降低解析度的方法來減少負荷
    把半透明畫到另一個blend buffer再當成貼圖
    合成回來,其實也是很浪費FillRate,
    而且也浪費記憶體,所以用縮小buffer來省些資源.
    如果有FP10應該就不用這樣事倍功半了.
    還可以把encode浪費的shader能力用來做更多效果…
    >>3. 在人物打光技法上追加了「分離pre-lighting」
    >>的獨家手法,將部分的打光資訊寫進頂點資料,
    >>並在之後用shader合成,類似HL2的
    >>radiosity normal-mapping,
    >>和單純的lightmap相比可以減少材質解析度;
    >>但是和RSX的相性不好的關係,結果在打光上
    >>也得作一些限制。
    這裡寫錯了,
    人物是不可能pre lighting的.
    它是說”場景”的光照,
    把部份光照pre-baked到頂點屬性資料中,
    這樣就可以省下lightmap,
    但是缺點是畫質比Lightmap差,因為頂點數量
    通常比LM的texel數量少很多,資料量不足.
    和RSX的相性不好的部份大概是–>(動的な変更が可能)
    頂點屬性資料通常很適合即時修改,
    因為頂點不多(和texel相比).
    計算上不會太耗資源,可以做些即時效果.
    但是這修改是由CPU進行,而RSX若把模型放在繪圖
    記憶體,CPU(CELL)存取就有困難.
    如果是X360的架構就很適合…..
    因為CPU和GPU共用一個512MB.
    >>4. 煙塵和積水之類的特效使用的是vector color。
    >>因為shader和材質容量其實是一體兩面,
    >>增加shader的話就是代表得增加材質。
    繪圖記憶體不足的關係,一些角色上的效果,
    只好延用上一世代的技法vertex color…..
    放棄比較細致的貼圖做法.
    不過水還是有heightmap貼圖,
    用shader把它轉成normalmap來用.
    那其實蠻耗shader效能.
    鏡頭前的Fog大氣效果也還是得用貼圖,
    同樣採用縮小的buffer, 1/16…畫到小buffer,
    再當成貼圖合成回畫面上.
    >>5. 所有的demo都是real time。3D polygon
    >>demo全部real time之外,連2D都是靠flash。
    >>辛苦的地方是motion資料增加的同時得追加
    >>角色關節、物件數量、連動態資料都有所壓縮。
    那個壓縮,似乎是指依據鏡頭視點和物體的距離來
    決定用多細的模型….也就是事先決定好LOD而已.
    因為即時demo時,過場動畫的分鏡都是事先安排好的,
    所以有些物體不會近看,它們的頂點量和骨架數可以
    用少一點.
    過場動畫的同時物件數通常比遊戲時還多,所以這樣
    可以節省資源….不然根本跑不動.
    所以應該不是實質上的即時壓縮,而是他們把資料的
    最佳化省資源說成一種壓縮了,
    看不到他們有做任何形式的失真/非失真資料壓縮.
    應該是運用BD的大容量全部丟進去而已.
    而且他們也沒有真的用完,沒有壓縮的必要.
    很多音樂甚至用linear pcm.
    實在用的很奢侈….
    其實遊戲因為有一堆音效混在一起.
    遊戲時對單一檔案的品質的要求不是很高.
    其他平台通常是adpcm和mp3
    目前看起來MGS4那些東西都是GPU上的實作,
    受限的都是GPU的性能.
    其實沒有什麼是不能移植的,甚至到360上很有可能跑的
    更有效率…..很多技巧都是為了克服RSX的缺點而且
    多費功夫.
    如果GPU強一點,也許MGS4不用做這麼久,甚至做更好.
    360唯一不如的就只有光碟容量.
    那部份就真的只能靠壓縮技術或硬碟安裝了.

  7. >>1. FP16的話filltate不足所以換成
    >>int8下的encoding
    這完全可以預期….FP16在G70上,
    沒多少遊戲跑的到720P.
    如果有FP10就好了.
    >>2. 因為有encoding所以無法直接用
    >>alpha blending,所以又加了blend buffer、
    >>並且對buffer使用降低解析度的方法來減少負荷
    把半透明畫到另一個blend buffer再當成貼圖
    合成回來,其實也是很浪費FillRate,
    而且也浪費記憶體,所以用縮小buffer來省些資源.
    如果有FP10應該就不用這樣事倍功半了.
    還可以把encode浪費的shader能力用來做更多效果…
    >>3. 在人物打光技法上追加了「分離pre-lighting」
    >>的獨家手法,將部分的打光資訊寫進頂點資料,
    >>並在之後用shader合成,類似HL2的
    >>radiosity normal-mapping,
    >>和單純的lightmap相比可以減少材質解析度;
    >>但是和RSX的相性不好的關係,結果在打光上
    >>也得作一些限制。
    這裡寫錯了,
    人物是不可能pre lighting的.
    它是說”場景”的光照,
    把部份光照pre-baked到頂點屬性資料中,
    這樣就可以省下lightmap,
    但是缺點是畫質比Lightmap差,因為頂點數量
    通常比LM的texel數量少很多,資料量不足.
    和RSX的相性不好的部份大概是–>(動的な変更が可能)
    頂點屬性資料通常很適合即時修改,
    因為頂點不多(和texel相比).
    計算上不會太耗資源,可以做些即時效果.
    但是這修改是由CPU進行,而RSX若把模型放在繪圖
    記憶體,CPU(CELL)存取就有困難.
    如果是X360的架構就很適合…..
    因為CPU和GPU共用一個512MB.
    >>4. 煙塵和積水之類的特效使用的是vector color。
    >>因為shader和材質容量其實是一體兩面,
    >>增加shader的話就是代表得增加材質。
    繪圖記憶體不足的關係,一些角色上的效果,
    只好延用上一世代的技法vertex color…..
    放棄比較細致的貼圖做法.
    不過水還是有heightmap貼圖,
    用shader把它轉成normalmap來用.
    那其實蠻耗shader效能.
    鏡頭前的Fog大氣效果也還是得用貼圖,
    同樣採用縮小的buffer, 1/16…畫到小buffer,
    再當成貼圖合成回畫面上.
    >>5. 所有的demo都是real time。3D polygon
    >>demo全部real time之外,連2D都是靠flash。
    >>辛苦的地方是motion資料增加的同時得追加
    >>角色關節、物件數量、連動態資料都有所壓縮。
    那個壓縮,似乎是指依據鏡頭視點和物體的距離來
    決定用多細的模型….也就是事先決定好LOD而已.
    因為即時demo時,過場動畫的分鏡都是事先安排好的,
    所以有些物體不會近看,它們的頂點量和骨架數可以
    用少一點.
    過場動畫的同時物件數通常比遊戲時還多,所以這樣
    可以節省資源….不然根本跑不動.
    所以應該不是實質上的即時壓縮,而是他們把資料的
    最佳化省資源說成一種壓縮了,
    看不到他們有做任何形式的失真/非失真資料壓縮.
    應該是運用BD的大容量全部丟進去而已.
    而且他們也沒有真的用完,沒有壓縮的必要.
    很多音樂甚至用linear pcm.
    實在用的很奢侈….
    其實遊戲因為有一堆音效混在一起.
    遊戲時對單一檔案的品質的要求不是很高.
    其他平台通常是adpcm和mp3
    目前看起來MGS4那些東西都是GPU上的實作,
    受限的都是GPU的性能.
    其實沒有什麼是不能移植的,甚至到360上很有可能跑的
    更有效率…..很多技巧都是為了克服RSX的缺點而且
    多費功夫.
    如果GPU強一點,也許MGS4不用做這麼久,甚至做更好.
    360唯一不如的就只有光碟容量.
    那部份就真的只能靠壓縮技術或硬碟安裝了.

  8. 來個空泛的想法:
    小島工作室的人提到的是在PS3上有問題的部分,這些問題是因為SDK到實機是從G70改為RSX而產生的。
    原文上面也有:「”違うシステム”の上に、無理矢理移植した関係で、かなり制限がありました。」
    也就是說,關鍵是對小島工作室誇口說SDK和實機相同的SCE造成的。
    我們可以把這些問題提出來,然後說”這些問題在360上不會有發生”,因為架構特性的關係;但是這並不代表說在”PS3上沒問題的部分”,上了360上會不會有問題。
    比方說LinearPCM的部分,他是同時播放四個4ch、總計16ch的BGM,作法是直接調低不同軌的音量高低,以達到平順的轉換需求。
    也就是說這和繪圖一樣,實質上是”設計需求”,如果說”奢侈”而去掉的話,那就和繪圖縮水一樣,即使如此實作也意義不大。
    說起來720p和以前480p比起來何嘗不是奢侈?(轉頭某Wxx)
    為什麼360沒做的功能就說用不到、奢侈,其他主機沒做的功能就是不合時宜、罪惡?這有點先入為主了吧?
    為什麼解析度、材質改變的部分就會指指點點,聲音這方面的變更卻總是被視為”浪費容量”?
    好吧,關鍵大概是因為實質上360硬體也無法輸出多channel的LinearPCM吧,所以”放了真的沒有意義”….

  9. 來個空泛的想法:
    小島工作室的人提到的是在PS3上有問題的部分,這些問題是因為SDK到實機是從G70改為RSX而產生的。
    原文上面也有:「”違うシステム”の上に、無理矢理移植した関係で、かなり制限がありました。」
    也就是說,關鍵是對小島工作室誇口說SDK和實機相同的SCE造成的。
    我們可以把這些問題提出來,然後說”這些問題在360上不會有發生”,因為架構特性的關係;但是這並不代表說在”PS3上沒問題的部分”,上了360上會不會有問題。
    比方說LinearPCM的部分,他是同時播放四個4ch、總計16ch的BGM,作法是直接調低不同軌的音量高低,以達到平順的轉換需求。
    也就是說這和繪圖一樣,實質上是”設計需求”,如果說”奢侈”而去掉的話,那就和繪圖縮水一樣,即使如此實作也意義不大。
    說起來720p和以前480p比起來何嘗不是奢侈?(轉頭某Wxx)
    為什麼360沒做的功能就說用不到、奢侈,其他主機沒做的功能就是不合時宜、罪惡?這有點先入為主了吧?
    為什麼解析度、材質改變的部分就會指指點點,聲音這方面的變更卻總是被視為”浪費容量”?
    好吧,關鍵大概是因為實質上360硬體也無法輸出多channel的LinearPCM吧,所以”放了真的沒有意義”….

  10. >>關鍵大概是因為實質上360硬體也無法輸出
    >>多channel的LinearPCM吧,
    >>所以”放了真的沒有意義”….
    的確是.
    音樂品質比較少受注目了,因為即使WMA或OGG也已經
    到了一般人覺得ok的程度.
    所以這方面的取捨往往比較不在意.
    大家會在意GPU是G90還是RV770,256或512bit bus
    卻沒多少人在乎主機板上有無專屬的音訊晶片.
    花成本在這方面不容易討好市場.
    很難不先入為主.
    360唯一不如的只有光碟容量也是IDSoft方面的看法.
    …..事實不是如此,但是遊戲開發者現在目光焦點都是
    3D繪圖技術,自然放大來看.
    720P和480P太容易分辨了,所以很難類比到音效上.
    甚至720P都還不夠高解析,因為人眼辨識力遠高於此.

  11. >>關鍵大概是因為實質上360硬體也無法輸出
    >>多channel的LinearPCM吧,
    >>所以”放了真的沒有意義”….
    的確是.
    音樂品質比較少受注目了,因為即使WMA或OGG也已經
    到了一般人覺得ok的程度.
    所以這方面的取捨往往比較不在意.
    大家會在意GPU是G90還是RV770,256或512bit bus
    卻沒多少人在乎主機板上有無專屬的音訊晶片.
    花成本在這方面不容易討好市場.
    很難不先入為主.
    360唯一不如的只有光碟容量也是IDSoft方面的看法.
    …..事實不是如此,但是遊戲開發者現在目光焦點都是
    3D繪圖技術,自然放大來看.
    720P和480P太容易分辨了,所以很難類比到音效上.
    甚至720P都還不夠高解析,因為人眼辨識力遠高於此.

  12. > 的確是.
    > 音樂品質比較少受注目了,因為即使WMA或OGG也已經
    > 到了一般人覺得ok的程度.
    > 所以這方面的取捨往往比較不在意.
    > 大家會在意GPU是G90還是RV770,256或512bit bus
    > 卻沒多少人在乎主機板上有無專屬的音訊晶片.
    > 花成本在這方面不容易討好市場.
    > 很難不先入為主.
    專屬的音訊晶片倒還好,我並不反對軟體處理,SONY給VAIO用的SoundReality系列也證明,CPU夠猛+某種程度的電源好好做的話,HD-CODEC還是可以有一定程度的表現….更往上的話我覺得還是只有電源的需求,不見得一定要自備DSP。
    不過360/PS3沒有類比多聲道,只有數位多聲道之外,360更只有lossy的多聲道,也就是說用光纖和用那個HDMI是完全一樣,這點是蠻可惜的;但是取捨這畢竟也是他們可以早推出的理由之一,PS3好不容易等到X.V.Color,還是只能做8ch LPCM,對消費性產品而言,數位是比類比好作一些,品質就不見得了。
    —-
    >720P和480P太容易分辨了,所以很難類比到音效上.
    >甚至720P都還不夠高解析,因為人眼辨識力遠高於此.
    應該說,繪圖能發展這麼快,當然是因為差距比音效來得明顯。
    顯示器換了效果立見幾乎沒有其他環境因素,音效不只和擴大器與喇叭有關、還和房間有關係。
    另外一方面,回頭用當初G70用的那些code來改、搬到360上應該會比拿ps3的code要來得有效率、效果也會比較好;但是debug之類的事情等於全部都要重來,整個開發過程重跑;但是販賣數量能兩倍嗎?好像說起來還蠻令人提心吊膽的。

  13. > 的確是.
    > 音樂品質比較少受注目了,因為即使WMA或OGG也已經
    > 到了一般人覺得ok的程度.
    > 所以這方面的取捨往往比較不在意.
    > 大家會在意GPU是G90還是RV770,256或512bit bus
    > 卻沒多少人在乎主機板上有無專屬的音訊晶片.
    > 花成本在這方面不容易討好市場.
    > 很難不先入為主.
    專屬的音訊晶片倒還好,我並不反對軟體處理,SONY給VAIO用的SoundReality系列也證明,CPU夠猛+某種程度的電源好好做的話,HD-CODEC還是可以有一定程度的表現….更往上的話我覺得還是只有電源的需求,不見得一定要自備DSP。
    不過360/PS3沒有類比多聲道,只有數位多聲道之外,360更只有lossy的多聲道,也就是說用光纖和用那個HDMI是完全一樣,這點是蠻可惜的;但是取捨這畢竟也是他們可以早推出的理由之一,PS3好不容易等到X.V.Color,還是只能做8ch LPCM,對消費性產品而言,數位是比類比好作一些,品質就不見得了。
    —-
    >720P和480P太容易分辨了,所以很難類比到音效上.
    >甚至720P都還不夠高解析,因為人眼辨識力遠高於此.
    應該說,繪圖能發展這麼快,當然是因為差距比音效來得明顯。
    顯示器換了效果立見幾乎沒有其他環境因素,音效不只和擴大器與喇叭有關、還和房間有關係。
    另外一方面,回頭用當初G70用的那些code來改、搬到360上應該會比拿ps3的code要來得有效率、效果也會比較好;但是debug之類的事情等於全部都要重來,整個開發過程重跑;但是販賣數量能兩倍嗎?好像說起來還蠻令人提心吊膽的。

  14. blend buffer….
    突然想到Larrabee.
    其實這類似把ROP一部分功能軟體化了.
    ROP主要負責Blending計算以及FP32轉Int8或FP16.
    MGS4為了HDR只用後者,放棄免費的Blending計算線路.
    用shader的ALU指令TEX指令,來取代ROP的Blending.
    Blend用Shader基本指令就可以模擬了,
    不過Pixel精度轉換就比較麻煩,
    Larrabee應該是自己有特別的指令負責轉Int8或FP16.

  15. blend buffer….
    突然想到Larrabee.
    其實這類似把ROP一部分功能軟體化了.
    ROP主要負責Blending計算以及FP32轉Int8或FP16.
    MGS4為了HDR只用後者,放棄免費的Blending計算線路.
    用shader的ALU指令TEX指令,來取代ROP的Blending.
    Blend用Shader基本指令就可以模擬了,
    不過Pixel精度轉換就比較麻煩,
    Larrabee應該是自己有特別的指令負責轉Int8或FP16.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料