作者cjcat2266 (CJ Cat)
看板PlayStation
標題Re: [情報] 秘境探險4 EDGE雜誌記事統整
時間Tue Jan 20 13:56:02 2015
※ 引述《igarasiyui (かゆい うま)》之銘言:
: 1.使用一種自行開發兩年的物理渲染器,讓物品外觀更真實
: 推 makilight: 第一個應該就是最近很夯的Physically Based Shadid Shading?
是Physically Based Rendering沒錯
在這之前則是使用特殊用途的Prime Shader
Prime Shader是一個特殊的材質就寫一個shader
像是塑膠、玻璃、皮膚就各自有個shader
並且有不同組的參數供材質美術人員調整
Physically Based Rendering則是只寫一個master shader
僅提供一組統一的參數供調整,參數主要是將真實物理參數數值化
例如基底顏色、粗糙度、非勻相反光度、邊緣反射度等
如此統一的參數組合,會讓材質美術人員比較方便調整、統一思路
這個概念是由Disney於SIGGRAPH 2012所提出
詳細技術解說請見
http://blog.selfshadow.com/publications/s2012-shading-course/
Disney提出的參數好像是有10個吧(還是更多,我忘了)
ND為了效能與簡單化考量,只在shader中用了其中幾個參數而已
: 4.由SONY技術團隊和頑皮狗一起研發的新背景細節層次演算法(LOD)取代了曲面細分
: (Tessellation),物體表面看起來更精細
其實LOD(level of detail)不是什麼新概念
就是近的物件用比較細緻的模型、遠的物件用比較粗糙的模型而已
兩者之間如果做瞬間切換,會有視覺上的不連續(業界稱此現象為popping)
從PSX demo中,如果仔細看的話,可以發現U4在兩個模型之間有漸進式切換
這也不是什麼新穎的花招,用的技巧叫做dithering
這個技巧源自於印刷業,僅用CMYK四種顏色,靠色點的密度不同來營造不同顏色濃度
ND使用的dither花紋是Bayer Matrix
http://en.wikipedia.org/wiki/Bayer_filter
兩個細緻度不同的模型,用Bayer Matrix的花紋交替渲染
有研究過電腦圖學的人,可能就會想到也可以用alpha blending的方式做漸進式切換
這是可行的,可是alpha blending比單純的z-buffering耗效能
換句話說,半透明的物件比完全不透明的物件還要吃GPU效能
將兩個不同的模型,用非透明物件的方式渲染
然後用dithering的技巧來把兩個不透明物件的像素混在一起
會比把兩個半透明物件疊在一起渲染還要節省運算資源
: 7.一些動態事件,如老德跳向遠方並抓住把手的動作,不再是事先設定好的場景,而會
: 隨著跳躍的力道及角度進行實機運算。
PSX demo可以看出Drake的攀爬動作跟以前比起來流暢多了
這是因為一連傳的攀爬動作,不是單純把不同的動作片段拼接起來
而是在這些拼接起來的動作上,投入部分ragdoll效果
ragdoll指的是完全用物理模擬的生物骨架
最常見的用處是模擬死亡的角色落地後翻滾軟癱
在攀爬的動作上加入部分ragdoll效果之後
有部分的身體晃動是靠物理在模擬的,所以看起來比較不呆版
--
Ming-Lun "Allen" Chou
Web
http://AllenChou.net
Twitter
http://twitter.com/TheAllenChou
LinkedIn
http://www.linkedin.com/in/MingLunChou
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 75.84.49.95
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PlayStation/M.1421733367.A.74D.html
※ 編輯: cjcat2266 (75.84.49.95), 01/20/2015 13:56:47
1F:推 sunlockfire: 有個疑問 像CJ大文中說的由Disney提出的概念 01/20 13:58
※ 編輯: cjcat2266 (75.84.49.95), 01/20/2015 13:58:44
2F:→ sunlockfire: 算是專利嗎?其他工作室要用需要付費嗎? 01/20 13:59
3F:→ sunlockfire: 還是那只是一種類似理論 運用法看個人@@ 01/20 13:59
4F:→ cjcat2266: 應該是沒有,現在業界都往PBR轉型啊 01/20 13:59
5F:→ cjcat2266: 沒錯,是理論,各個工作室要自己實作 01/20 14:00
6F:→ sunlockfire: 所以像之前Disney有展示冰雪奇緣的雪如何作的更真 01/20 14:01
7F:→ sunlockfire: 其他工作室也可以就類似理論來實作就是了@@ 01/20 14:01
8F:→ cjcat2266: 這個我不敢說死,每一個公布的技術是否有專利要去查 01/20 14:02
9F:→ sunlockfire: 嗯嗯~了解XDD~ 01/20 14:02
10F:→ cjcat2266: 不過就我所接觸到的遊戲界與動畫界,在公開場合展示與 01/20 14:03
11F:→ cjcat2266: 說明的新技術,都是可以自由實作的 01/20 14:03
12F:→ cjcat2266: 我碰過的唯一例外,是PixelJunk Shooter的GDC技術發表 01/20 14:04
13F:→ cjcat2266: 說他們的水渲染效果,原本想要使用的box marching方法 01/20 14:04
14F:→ cjcat2266: 有專利,所以只好自己研發其他的替代方案 01/20 14:04
15F:推 igarasiyui: 推~ 01/20 14:11
16F:推 akilight: 詳細的解說,推~ :) 01/20 14:12
17F:→ akilight: 然後原來攀爬是在講身體晃動,難怪是用ragdoll 01/20 14:13
18F:→ akilight: 我還以為只是單純的手部/足部IK那樣XD 01/20 14:13
那就順便來說一下IK和animation blending :)
Drake的很多動作其實是有多重版本的,每一個版本"歪"的方向不一樣
像是跑步,就有向前跑、往左前方跑(身體往左歪)、往右前方跑(身體往右歪)
滑下斜坡,有筆直滑、往左滑(往左歪)、往右滑(往右歪)
玩家搖桿推送的方向,決定Drake轉向的角度(往左歪或往右歪)
轉向角度,決定歪的程度,又進而決定各個動作版本的權重
這個權重用來導入animation blending
多個不同的動作版本混和出來的結果,就是動作有無限種歪法
"歪身體"很重要,不然重心轉移會看起來很不自然
很多遊戲(尤其是早期)沒有用animation blending讓角色在跑步轉彎的時候"歪身體"
看起來就頗不自然,很像在飄移
animation blending的下一步,就是讓Drake的四肢安分一點
animation blending無法準確預測四肢的終點,所以誤差需要靠IK來修正
IK可以讓Drake的雙腳準確地貼在地上,雙手準確地抓在武器上
IK不是從T-pose開始就使用,不然結果會很獵奇
ND把IK當作是最後的誤差修正手段,而不是從頭計算完整全身動作的工具
[再補充]
說到animation,又有個想順便講的東西
ND的動畫師調出來的animation,直接決定角色的移動速度
而不是單純讓動畫師調出一個跑步動畫
然後由設計師把這個動畫丟入遊戲,搭配一個額外的速度參數
角色的移動速度,直接由跑步的animation資料中擷取
這樣的好處是,移動速度與角色的步伐是100%符合的
不會有角色的腳在地上飄移、滑動的情況出現
所以當角色的移動速度或者轉彎速度需要調整
不是透過設計師調整速度參數,而是要透過動畫師重新調整跑步動畫
以確保角色的步伐與移動速度100%吻合
19F:推 a83a83cjcj: 專業解說推~ 01/20 14:14
20F:推 kuku321: 會發到SIGGRAPH幾乎都是可以自己實作的啦 這還要版權的話 01/20 14:14
21F:→ kuku321: 根本沒辦法引用來比較阿XD 01/20 14:15
22F:→ kuku321: 更何況是Course 就是歡迎大家來用 一起改進的意思 01/20 14:16
23F:→ sunlockfire: 原來如此@@ 01/20 14:16
24F:→ kuku321: 蠻多遊戲廠都會定期分享技術阿 像2011戰神也有分享個 01/20 14:18
25F:→ kuku321: Dynamic lighting in God of War 3 的light tracing技術 01/20 14:19
每年的Game Developer Conference (GDC)是遊戲業最大的技術分享活動
有興趣的人可以去GDC Vault看看,有過去技術分享的投影片和錄影(有些要錢)
GDC可以認識很多業界人士,也可以找工作,每年因為參加GDC而找到工作的人非常多
敝人就是在GDC和朋友不小心撞到ND的recruiter
26F:推 sthho: cjcat2266還真的出來解說了!!! 有神快拜!!!! 01/20 14:20
27F:→ sthho: 旁邊的人問我為什麼跪著用鍵盤..... 01/20 14:21
28F:推 tp950016: 推 01/20 14:26
29F:推 asadoioru: 我們的德瑞克就拜託你們了(跪 01/20 14:44
30F:推 jayemshow: 有神快拜啊 !!!!!!!!!!!!!!!!!!!!!!!! 01/20 14:48
31F:推 sugizo0: 膝蓋好痛 01/20 14:54
32F:推 sx4152: 專業推 01/20 15:08
33F:推 zerosaviour: 推 01/20 15:16
34F:推 igarasiyui: 繼續推 不然會被人發現看不懂~ 01/20 15:21
※ 編輯: cjcat2266 (75.84.49.95), 01/20/2015 15:36:07
35F:推 kuninaka: 跪著鍵盤看 01/20 15:31
36F:推 akilight: 是的,cjcat你說的那作法就是我之前想提的,因為最近我也 01/20 15:33
37F:→ akilight: 用UE4做類似的東西,所以才往這方向想XD 01/20 15:33
38F:→ akilight: 不過ragdoll的確是被我忽略,沒想到可以在這邊應用的:) 01/20 15:34
39F:推 akilight: 看到你補充的那段,所以那邊是用root motion來做囉? 01/20 15:37
40F:→ cjcat2266: 我不確定這個方法的名字叫做什麼... 01/20 15:37
41F:→ cjcat2266: 速度資料擷取是透過animation與root node的相對移動 01/20 15:38
42F:推 leonh0627: 直接承認看不懂 但還是要推 01/20 15:38
43F:→ akilight: 應該是root motion,就是由角色動畫決定transformation 01/20 15:38
44F:→ cjcat2266: 所以我想你說的root motion應該是指同一個東西吧 01/20 15:38
※ 編輯: cjcat2266 (75.84.49.95), 01/20/2015 16:02:27
46F:推 BraveCattle: 快推,不然人家會知道我看不懂 01/20 17:02
47F:推 soreager: 算是看得懂所以要趕快推 01/20 18:43
48F:推 chiyun1994: 推!! 01/20 19:28
49F:推 bake047: 太專業啦 01/20 20:01
50F:推 ggBird: 還是當玩家幸福多了 01/20 20:10
51F:推 wuliou: 我媽問我為什麼跪著用電腦 01/20 21:08
52F:推 xc332211: 我爸問我為什麼跟媽媽都跪著看電腦 01/20 22:19
53F:推 arty: 看來這次Drake的動作會有大大的進步 超期待!! 01/20 23:26
54F:→ arty: 雖然Drake不是格鬥專家 不過希望近戰也能有豐富的動作演繹 01/20 23:27
55F:→ arty: 特別是擊中的反饋 和動作的銜接 01/20 23:28
56F:→ arty: 現今好多作品都是在看預錄好的動作 不管有沒有擊中或無視敵 01/20 23:30
57F:推 yuyuliu: 神之領域 01/20 23:30
58F:→ arty: 我大小 動作一律相同 像是最新的鐵拳說真的一點都沒有打擊感 01/20 23:31
59F:→ igarasiyui: 上次那個實機遊玩影片有不少動作都很流暢 看了就很爽 01/20 23:35
60F:→ igarasiyui: 光一段演示就很多戰鬥動作 01/20 23:36
61F:推 bagacow: 看不懂的推:-) 01/20 23:55
62F:推 loungebar: 推 01/21 12:31
63F:推 zhuyz9695: 不推不行 01/21 15:47
64F:推 dennis0608: 即使看不懂也要推 01/21 16:40
65F:推 NiGHTsC: 嗯嗯,就是這樣,解釋的還可以(  ̄ c ̄)y▂▂ξ(毆飛~~ 01/22 08:27