Re: [问题] 为什么做电影不做游戏?

楼主: cjcat2266 (CJ Cat)   2017-07-17 11:22:56
就我想得到的部分发表点浅见
最直接的答案就是电影跟游戏相比
可以使用的运算资源和时间根本不是同一个数量级的
电影的一个frame可以用几千几百台的电脑组成的render farm
运算个几个小时几天几个礼拜,只要最后有把frame算出来,就可以上架没有问题
游戏在游戏主机或PC上,只有一组CPU
一个frame要在33毫秒(30fps)或者16毫秒(60fps)以内运算完
光是模型面数,就不可能用得跟电影模型面数一样高
更何况算图只是一个frame的一部份,不要忘了游戏逻辑本身
举例来说,这个TLoU:R引擎投影片上秀出的例子(p.62)
该场景的一个frame只有约40%的时间可以拿来算图
http://bit.ly/2uttjSH
[补充]
的确,现在有可以将高面数模型降低面数的自动化工具
对于简化背景物体很有帮助,像是石头、树木等
但是自动简化生出来的低面数人物模型,往往布线不甚理想
布线不佳的模型,在骨骼复杂的地方运动时容易产生破图
叫模型师手动修正不良布线,不如从头自己做低面数模型来得划算
[/补充]
所以回答这个问题
: 推 tkigood: 最简单的原因就是面数太多跑不动 07/16 21:42
: 所以是可以做的吧?只是家机不给力?
没错,"理论上"有极其强大的硬件可以做到
但是以现在的硬件效能水准和经济考量,基本上不可能也不实际
说"只是"家机不给力有点过度简化问题
接下来针对头发的问题
: 记得之前哪个动画一个头发插了几百万根 … 啊游戏的可能只给你一个发片
非即时算图(又称离线算图)与即时算图,两者适用的模型定义方式不尽相同
离线运算适用的模型定义方式包含(但不仅限于)
传统的网线模型(mesh)和隐晦面(implicit surface)
网线模型就是用网线明确定义很多三角形,建构出模型
隐晦面则是用数学函式定义出模型的形状
不管是用哪个方式定义模型
在算图的时候就是在每个像素的位置模拟从摄影机位置射出的射线
撞到模型表面的时候计算反弹、穿透与折射的射线,继续模拟直到事先设定好的限制为止
接下来反推所有碰撞点应该会反弹的光色与强度,算出各像素的最终颜色
这个方法叫做光迹追踪(raytracing)
针对网线模型的光迹追踪很直觉
基本上就是解高中数甲的"求线段与三角形的交点"这个问题
隐晦面的光迹追踪比较麻烦
针对不同的数学函式,要自己推导出适合的射线交点解法
有时候使用的隐晦面甚至没有办法用数学算式表达出来(没有"闭型解")
这个时候就要用数值方法,片段地在射线上面取样,反复逼近隐晦面与射线的交点
可以比喻成用十分逼近法求平方根近似值的感觉,反复朝更准确地答案迈进
这个方法叫做光迹迈进(raymarching),因为有种一步一步前进的感觉
用个球体模型来举例
网线模型的定义方式就是用一堆三角形拼出个球型
优点包含与其他传统模型的定义方式一致,且要做形状微调的话可以直接改变顶点位置
缺点之一是镜头放大就会看到棱角
隐晦面定义方式则是使用球心与半径表达球体
优点是光迹追踪的时候可以明确算出正确球面,放大不会有形状上的瑕疵
缺点之一是不方便做形状微调
虽然说球射线与三角形的交点v.s.射线球体的交点,两者所需的计算资源量级差不多
但是很多隐晦面定义的模型,与射线交点的计算就复杂许多
头发一般就是用隐晦面的方式定义(e.g. 密度、发流、粗细等)
而且一次几百万根,计算量相当可观
用网线模型表达几百万根毛发,还要看不出棱角,资料量会太大
接下来看看即时运算
现行GPU的硬件架构,适合拿来在萤幕上面绘制三角形
所以几乎所有的游戏工作室,自然使用网线的方式定义模型,也就是你说的发片
主流的算图方式,是先算出三角形在画面上占到的像素
每个像素再执行一小段程式,算出该像素的颜色,这个程式叫做pixel shader
其实这种运算模式还是可以拿来算光迹追踪啦
方法就是叫GPU绘制一个全萤幕长方形(由两个三角形组成)
然后每个像素对应的pixel shader,实作光迹追踪的运算
现行GPU一般来说不够力执行真正的光迹追踪运算
所以通常是用光迹迈进来逼近光迹追踪的结果,并且将迈进步数限制得很低
迈进的步数不够高的结果,就是会看到"取样断层"瑕疵
相信以下这类的毛发和植披的取样断层瑕疵,很多玩家都有注意到
http://imgur.com/a/KFY9v
嗯...目前想到这样,而且写得有点累了XD
如果有可以补充的,就帮忙接力一下吧
作者: godrong95 (家暴)   2017-07-17 11:26:00
先推 免得被发现看不懂
作者: dklassic (DK)   2017-07-17 11:26:00
推 XD
作者: andytimmons (NothingButMusic)   2017-07-17 11:32:00
cj猫只能推
作者: OROCHI97 (OROCHI97)   2017-07-17 11:32:00
推专业
作者: dan5120 (别乱Q 屾(゚皿゚メ))   2017-07-17 11:37:00
哇 钓到大咖
作者: PTTfaggot (...)   2017-07-17 11:37:00
专业的来了
作者: Zetis (p p )   2017-07-17 11:42:00
推专业 更推这么有耐心仔细解释!
作者: strayfrog (蛙)   2017-07-17 11:45:00
推专业,看完文真心佩服!
作者: holyhelm (老鹰 鸭霸 西米露)   2017-07-17 11:49:00
.....钓到这么大的
作者: try66889 (小皮)   2017-07-17 11:51:00
推专业 !
作者: NiGHTsC   2017-07-17 12:06:00
每次看cj猫的文都以为我看的不是中文…
作者: a1s2d342001 (风吹裤子飞)   2017-07-17 12:08:00
先推 免得被发现看不懂
作者: Layase (小雷17æ­²)   2017-07-17 12:09:00
第一段 有哪部电影一个frame会用几百台电脑运算几个礼拜?
作者: sora333000 (sora333000)   2017-07-17 12:11:00
专业推
作者: SweetSixteen (Come Together)   2017-07-17 12:20:00
嗯嗯 跟我想得一样呢
作者: Hua0722 (引歸殺象吶)   2017-07-17 12:21:00
未看先推,竟然钓到本板神兽
作者: BDrip (蓝光~)   2017-07-17 12:25:00
那个只是比喻而已 如果时间成本无上限是可以这么做...
作者: blowchina   2017-07-17 12:27:00
师爷你给翻译翻译
作者: brmelon (清水西瓜)   2017-07-17 12:27:00
呼 好险看得懂
作者: joe71002 (电脑虫)   2017-07-17 12:33:00
简单的说,就是游戏机又要画图又要控制NPC还没薪水(?);电影可以全力专注画图这样?
作者: karta1453803 (ArtBread)   2017-07-17 12:42:00
数学系表示:我只看得懂10%(X
作者: bluoxy (bluoxy)   2017-07-17 12:47:00
看来我是87 推推
作者: vans24 (Vans)   2017-07-17 12:57:00
专业推
作者: jimmylily (jimmylily)   2017-07-17 13:03:00
cj猫大专业来了!!
作者: forgenius (否鸡)   2017-07-17 13:19:00
赶快推不然人家会以为我看不懂
作者: sunev (Veritas)   2017-07-17 13:21:00
frozen中Elsa建城堡的场景,一个frame要算130小时,用了26000 cores。
作者: freedom51710 (大‧幸运星)   2017-07-17 13:39:00
快推 不然别人以为我不懂XD
作者: barwan (barwan)   2017-07-17 13:42:00
作者: allen0205 (阿邱)   2017-07-17 13:44:00
变形金钢2有提过大力神的合体动画曾把ILM好几台电脑都给烧坏掉
作者: cohlint2004 (萧天鸣)   2017-07-17 13:44:00
不不不,PTT发文不需要开关([][/])呀XDDD
作者: walkmaster (初号机归位)   2017-07-17 13:44:00
推 我也是相关产业 写得很好那些动画电影算图时间都是以近“年”来算的而且他们的算图机器给我们一般人用是会飞天的xd更不用说他们是用“农场”不是只有一台不过我也是菜鸟 一下子看这些也得消化一下xd公司要出图一张一个小时我都快抓狂了勒
作者: sugizo0 (台湾鲁蛇)   2017-07-17 14:05:00
真的看不懂,但觉得好厉害~
作者: DM1984 (DM)   2017-07-17 14:42:00
虽然都是中文 但我看不懂 跪着推一个
作者: patrickleeee (派脆)   2017-07-17 14:53:00
简单说 人家电影一张画面 用几千几百台比PS4还强的电脑算个5.6天 才算好 你一台PS4 还是洗洗睡吧
作者: b160160 (HG Life is Foo~~~)   2017-07-17 15:08:00
推!
作者: ekanswang (ekanswang)   2017-07-17 15:24:00
推这篇!!!
作者: skybrest (Be Still My Heart)   2017-07-17 16:13:00
我看不懂可以推吗╮( ̄▽ ̄"")╭
作者: a83a83cjcj (马马虎虎)   2017-07-17 16:40:00
推!!
作者: zseineo (Zany)   2017-07-17 17:52:00
总之推
作者: NCTU87 (八七)   2017-07-17 18:37:00
推看不懂的中文
作者: cs853 (cs853)   2017-07-17 18:51:00
不懂也推
作者: Jack0213333 (Jack0213333)   2017-07-17 19:02:00
推,感觉看完,有长知识= =a
作者: IsonBrother (哀伤兄)   2017-07-17 19:22:00
必须推0口0
作者: marsdora (CWES)   2017-07-17 19:50:00
嗯嗯对,我也是这样想,被你先Po了
作者: naya7415963 (稻草鱼)   2017-07-17 20:04:00
推专业 好厉害
作者: kuku321 (halipapon)   2017-07-17 20:39:00
瑕疵OK的 TXAA一上去就消失了(误不过TXAA要看企划目标 有些企划的导演跟美术很痛恨他XD
作者: johnx (johnboy75129)   2017-07-17 22:38:00
作者: jianchang (拉格)   2017-07-17 23:44:00
推力够大 门板都能飞上天
作者: Sk8erBoi (滑板男孩)   2017-07-18 00:46:00
快推不然会被笑看不懂
作者: CSBS (地上波)   2017-07-18 03:18:00
有一个公司只做海水特效 就可以卖给一堆大公司
作者: Luos (Soul)   2017-07-18 12:12:00
推推推 完全看不懂 教授对不起
作者: gary886 (天佑日本)   2017-07-18 13:35:00
看完文章才发现是cj猫大大,谢谢分享
作者: iverson0968 (iverson0968)   2017-07-18 15:16:00
看不懂
作者: kenintw (Ken)   2017-07-19 23:18:00
认真看还是多少可以理解啦 不然辛苦写的东西一堆人说看不懂不是很那个吗
作者: love12548 (Ezio)   2017-07-20 11:49:00
回13楼 其实你看到大型特效电影都需要这么久....变形金刚就是其一

Links booklink

Contact Us: admin [ a t ] ucptt.com