數學在工作上的實際應用? - 工程師

Tom avatar
By Tom
at 2019-03-03T15:45

Table of Contents

※ 引述《qmqmqm ()》之銘言:
: 從簡單的開始就好
: 代數, 排列組合, 費氏定理, 證明, 幾何, 三角, 根號, 微積分, 無窮
: 各位真的在分析決策工作上有實際應用到這些嗎?
: 還是用著人家弄好的GUI操作講故事, 最後看官位決定?
: 又, 證明這件事個人覺得很實用, 但有多少人適用這種推倒演繹概念進行討論
: 而不是講話大聲, 或至少來個貝氏的概念, 而不是以口水批鬥桶人來引導決策方向?
: 想探知真正用科學方式做事的比例與情況~

我是在遊戲業做MMORPG,數學幾乎天天在用。
不過跟跑模擬或分析所使用的那種數學不同,
大多是直接解幾何、三角、線代、機率、搭配物理相關內容使用吧。
說矩陣之類不算數學我是不太認同就是,因為我還是會常常卡關QQ

另外還有像是BRDF(Bidirectional reflectance distribution function),
最近幾年蠻流行的物理based的光影投射計算式等等也都是要用數學去算的。
尤其是遊戲跑的大多是要求以0.033秒或0.016秒內完成的實時計算,
不可能像皮克斯電影那樣CG渲染可以一個場景我就丟上去給他算個2週,那自然漂亮。
遊戲要選擇細緻模擬/試圖作假,是要針對硬體性能跟資源去設計的。
所以算式的簡略/偷工化,然後視硬體進化效能提升再去做整體演算經度真實性調整。
這些都是長期在跑的持續性演進過程。

另外個人大多負責的是【視覺特效VFX】相關的開發,
基本運用shader去改變畫面質感的post effect或是反鋸齒等等算是基本功(也不難)。
再來就是根據特效美術需求提供新的特效物件,
例如有天特效美術突然跟你說,他想要做光束,然後要很炫泡那種,想做BOSS的雷射炮。
而且還希望像魔物獵人那樣,這個光束炮可以受到物件影響,觸發碰撞判定爆炸等等。

首先要先想辦法做出一根螢光燈,
https://i.imgur.com/Qe6uzxY.gif

他不是單純的棒棒,而是要像燈塔般運用菲涅耳透鏡的方式來發光(調整透明度),
讓光線可以在與視線垂直時看得很清楚,平行時要淡化以防刺眼。
(無法使用普通的通用算式,因為完全平行時會變完全透明,所以需要魔改造算式。)
所以要去做例外處理的算式去微調整畫面表現。
https://i.imgur.com/78A7unb.png

當有了螢光燈,我們需要讓他可以跟物件碰撞。
先實驗最簡單的跟地面碰撞(y=0,法線(0.0f, 1.0f, 0.0f)的最基礎平面)。

在遊戲內所謂的碰撞,就是2個frame(兩禎的世界)之間,
我的計算主體是否有穿透特定目標物的表面。
這用簡單的向量計算即可完成。

但是整個遊戲世界有多少物件? 每個物件之間都還能互相碰撞?
而且碰撞表現要精細,不是只用點來計算,而是物件的每個表面平面都要互相交叉計算。
這些內容要在0.016秒內完成,而且這還只是物件碰撞,
其餘AI、骨架動作計算、天候、物理模擬、戰鬥數值、UI呈現等等等都還沒考慮,
這該如何取捨做出最佳解,效率高又能看起來漂亮就是最大的問題。
完成後就變成這樣。
https://i.imgur.com/qyON2eL.gif

順帶一提,觸發的爆炸特效又是另外一種特效物件XD

然後這樣就只是完成一種特效的物理表現的製作而已,
其餘還有材質貼圖的疊合等運算,讓同一種特效物件看起來是完全不同內容大量生產。
https://i.imgur.com/lGEJaPv.mp4

再來美術還會不斷提出各種新的想法來進化他,
也可能說希望讓這根雷射炮能呈現波型,所以想辦法把三角函數也導入等等。
這樣才終於算完成一項特效物件。

其他也可能看到電影,襪靠,這龍捲風好屌喔。
然後就傳一封MAIL來說XXX這部電影的龍捲風好屌,我希望能夠有類似特效物件。
我就要思考怎麼搞,怎麼整合並提供參數給美術,要導入哪個數學曲線公式等等。
就算導入既有公式,你工具做好給美術也不可能是寫成:
・x =
・y =
・z =
這種形式,他們只會滿頭問號。
所以要想辦法把數學整理過後,提供中途參數輸入的管道,像是:
・龍捲風的迴轉圈數
・龍捲風的半徑成長
・龍捲風的旋轉速率
之類的整合起來提供美術使用。

然後這還只是特效物件製作上的一部份內容,
你特效要綁在哪個特效產生器上噴射,特效產生器又要綁在那個角色身上吐,
那個角色又會飛天下海,一下晴天一下雨天,轉上轉下,

過一陣子QA就會問你
【欸,為什麼男主角的光炮在這個關卡時會朝天空射而且顏色怪怪的?】
你就會滿頭黑人問號開始各種條件式跟矩陣運算抓漏。

現在新的演進是特效也要去受到周遭環境的物理影響,
可能要打上光影、隨風吹拂、受雨干涉等等。

以上這些數學難嗎?
企劃跟你說他想丟手榴彈,你就寫個算式去幫他跑起點終點路徑速率爆炸範圍,
拆開來看都不難,即使是物理模擬或光源計算等整理模型那些也都比傳統數學簡單不少。

問題在當不懂這些的人,突然一個天馬行空的想法,
你要想辦法幫他達成,還要兼顧硬體性能與畫面表現,來偷工偷時間,
需要整合的數學和物理的背景知識量還是很重要的。

再來就是把問題定義清楚,然後開始整理參數跟求解的過程吧。
不過程式工程師的基礎就是在做這工作,就不獻醜贅述了。

--

All Comments

Adele avatar
By Adele
at 2019-03-05T08:02
熱情真的很重要!
Zanna avatar
By Zanna
at 2019-03-06T09:49
好讚!!!
Charlotte avatar
By Charlotte
at 2019-03-08T10:05
是說計算光影是不是常常用到快速根號倒數演算法?
Megan avatar
By Megan
at 2019-03-09T14:34
很有趣的工作
Sarah avatar
By Sarah
at 2019-03-13T03:20
外行人問個小問題,請問這是在現成遊戲引擎(ex. Unity)
下開發的嗎,還是自建引擎?
Odelette avatar
By Odelette
at 2019-03-15T01:51
那那個演算法你是直接call還是也會去理解他怎麼計算
Heather avatar
By Heather
at 2019-03-17T22:36
哇 好酷哦 貴公司研發單位在台灣?
Dora avatar
By Dora
at 2019-03-22T16:20
http://i.imgur.com/RIEwhIy.jpg
Eartha avatar
By Eartha
at 2019-03-24T18:54
這篇文章真的是這系列唯一的優文
Daniel avatar
By Daniel
at 2019-03-28T09:11
這高中數學物理做的起來?
Lucy avatar
By Lucy
at 2019-04-01T11:35
優文推推
Gilbert avatar
By Gilbert
at 2019-04-04T10:17
推深度
Eden avatar
By Eden
at 2019-04-06T01:55
我目前待遊戲業 也是滿常用到數學的
Edwina avatar
By Edwina
at 2019-04-10T21:56
這樣年薪多少
Poppy avatar
By Poppy
at 2019-04-15T18:20
Daniel avatar
By Daniel
at 2019-04-20T06:39
Poppy avatar
By Poppy
at 2019-04-24T22:24
Mary avatar
By Mary
at 2019-04-25T20:46
Edwina avatar
By Edwina
at 2019-04-30T02:21
優文推
Wallis avatar
By Wallis
at 2019-05-04T13:55
突然想起某為大大的工作心得:我們就是許願池
Charlie avatar
By Charlie
at 2019-05-06T20:46
其實高端的前端程式是非常需要數學的,遊戲就是最好的例子
,否則寫不出跟別人不一樣的特效,或是執行效率就不會好
Vanessa avatar
By Vanessa
at 2019-05-10T21:59
推優質
Elma avatar
By Elma
at 2019-05-13T14:44
Dorothy avatar
By Dorothy
at 2019-05-14T04:15
Freda avatar
By Freda
at 2019-05-15T09:09
哇!!! 推
Wallis avatar
By Wallis
at 2019-05-17T05:29
優質

北京工程師月薪突破3萬人民幣

Irma avatar
By Irma
at 2019-03-03T14:14
有人說可以出去的都去歐美日 這說法代表跟本沒拿過offer 美國的話 當然有一定優先考慮 但2016之後大門越來越窄 不信你問問現在在那唸書的實習好不好找 而且印度人搞你 你華人遲早被趕走 大神賈清揚都得離開fb去阿里巴巴 歐洲 以前去不錯 但歐元從43 44掉到35甚至還有33 你去頂多300多 英國 ...

正要讀電資的大學新鮮人未來在哪?

Emily avatar
By Emily
at 2019-03-03T14:02
想知道那些號稱理工前段的私校碩 出來大概都在幹嘛 例如:中原逢甲輔大..... 這些學校的電類碩出來,真的只能進 設備、OP、 輪班、作業員、技術員、服務業.....的工作嗎? 這樣CP值也太低了點 1.學費比人家貴 2.在外頭找工作只能找科技業最底層的 畢竟看網路上許多文章,好像只有四大四中 ...

裁員是不是都先裁產線?

Madame avatar
By Madame
at 2019-03-03T11:38
※ 引述《d062637776 (Sylar)》之銘言: : 最近蠻多大公司陸續都在裁員 : 包含石頭、包子、英穩X : 工廠大部分都是向更自動化方向進行 : 所以被裁的大部分都會是技術員等產線相關直接人員 : 而不容易被裁反而更穩的就是自動化、資訊IT部門 : 所以工作還是需要選對方向和職位 : 才不容易失 ...

北京工程師月薪突破3萬人民幣

Barb Cronin avatar
By Barb Cronin
at 2019-03-03T11:31
你第三張圖,已經說明了一切,如果是學士的話,就是台灣輸人家了! 結果薪資三萬以上人民幣,要求學歷全是博士等級....... 我想問你,你是不是想要當記者??? 想當中X的記者? ※ 引述《ID113 (隨機迷)》之銘言: : 北京2019 一月份數據 : 平均月薪 不計獎金 : htt ...

裁員是不是都先裁產線?

Gary avatar
By Gary
at 2019-03-03T03:43
最近蠻多大公司陸續都在裁員 包含石頭、包子、英穩X 工廠大部分都是向更自動化方向進行 所以被裁的大部分都會是技術員等產線相關直接人員 而不容易被裁反而更穩的就是自動化、資訊IT部門 所以工作還是需要選對方向和職位 才不容易失去競爭力 - ...