筆記:《遊戲開發物理學》
筆記:《遊戲開發物理學》
ISBN:7-121-00208-6
這本書的內容主要可以分成三塊
- 基礎物理背景
- 具體情境
- 實時模擬
因為公式恐懼症,這本書我沒有細看。 主要是翻來覆去地翻閱,希望除了公式之外,這本書還能給我提供一些思想上的指導,也還有收穫。
我一直對遊戲和動畫很有興趣,不過一直也沒有深入,最都就是用html5的canvas畫一些小動畫。
我做動畫的模式主要就是處理一些最基本的運動,再加上對粒子的繪製。沒有加入過更復雜的效果。
看了這本書之後發現自己的認識不夠深入。
我的實踐主要就停留在了運動學上面,沒有引入力,也就沒有動力學。這樣有兩方面的後果
- 只能編寫簡單的粒子運動(複雜運動不好控制),而真實感是通過對引數的除錯尋找的
- 很難整合多種控制引數,引數多了,尋找一組較為真實的引數就很困難了
其實還有,我主要寫的是粒子的動畫,所以根本沒有涉及轉動方面的東西,而且粒子都是一樣的,碰撞處理也很簡單。
統一格式
看了這本書以後得到的一個最重要的觀點就是通過力來處理模擬世界裡的物體運動和物體間的相互作用(當然,真實世界本就如此)
這樣,可以統一“輸入”的“格式”,比如我們有一個賽車遊戲,可以通過鍵盤來控制油門。
可以直接由賽車本身儲存一個以畫素為單位的速度
欄位,而鍵盤輸入則可以直接改變該欄位(加速度
)。
通過這種方式,經過對速度
和加速度
的嘗試,也可以調整出比較真實的場景。
但是如果此時希望在遊戲中加入風
對賽車的影響又如何?如果我們希望有不同體積與質量的賽車由如何?
剛才我們所得到的引數沒有任何的現實意義,只不過是可以驅動動畫的經驗數值。此時環境的更改即意味著需要重新嘗試它們。
如果我們用更統一的場景呢?
設想,我們將運動與力的作用分開,形成兩部分
- 與顯示有關的是運動部分,包括
速度
,加速度
等,它們會對映為螢幕上的運動 - 另一部分與改變運動有關,即
力
,現在的鍵盤輸入對映為力
最簡單的賽車只需要給定質量
引數就可以實現初始賽車遊戲的功能。
而風,只不過是另一種輸入(力
)。而體積也不過是引起了阻力,是的,力
此時我們希望加入任何真實世界本來就有的現象都不會與之前的勞動衝突。
實際上,這只不過是表現出原有系統將一些物理引數固化
和隱含
表示了。
如果在遊戲中尋求的是真實感,那麼正確的建模方法應該是向真實世界學習。
很汗顏自己喜歡做動畫卻一直沒有領悟到這句話。
力的作用不僅僅表現在同一“輸入格式”上,力也是粘合物理場景中各個獨立單元的“膠水”。
如果嚴格按照物理來建模,那麼,一個封閉的模型環境只需要一組啟動引數
就可以執行下去了。
而對物體的控制則表現到對物體施加怎樣的影響。
而不是我之前的做法:在運動學層面規定每一個物體的軌跡
。
這也是為什麼我一直只能做出來簡單的移動和旋轉,主角永遠都是粒子。
反思
至於我為什麼一直裹足不前,沒有自己建立這一套思想?
我想應該是懶惰,也沒有找到很好的引導。
canvas
(以及其它基礎圖形介面)所提供的就是直接操作螢幕的能力。
我看到了別人的作品也只是那種控制螢幕上的東西的那種。
沒有見過大型的(自己也沒耐心去看)動畫,也就沒有見過複雜到上升抽象層次的必要。
所以一直也就停留在了手動在螢幕上控制運動的狀態。做不出來的效果也未深究。
應該學會對問題進行抽象,發覺本質
相關文章
- 學習筆記1熱力學與統計物理筆記
- PBR(基於物理的渲染)學習筆記2筆記
- 不懂物理的前端不是好的遊戲開發者(二)—— 物理引擎的學習之路前端遊戲開發
- TRIZ——物理矛盾應用筆記筆記
- 黃夫人物理筆記集筆記
- Adaptive AUTOSAR 學習筆記 5 - 架構 - 物理檢視APT筆記架構
- 遊戲開發流程與思想學習筆記(持續更新)遊戲開發筆記
- LTE-5G學習筆記6---LTE FDD物理通道剖析筆記
- DG學習筆記(4)_建立物理Standby步驟及注意事項筆記
- 百頁課程筆記,統計物理視角下的深度學習筆記深度學習
- 不懂物理的前端不是好的遊戲開發者(一)—— 物理引擎基礎前端遊戲開發
- 【計算機網路·第7版-學習筆記】第02章:物理層計算機網路筆記
- 學習筆記2——訊號調製與解調,物理層傳輸介質筆記
- numpy的學習筆記\pandas學習筆記筆記
- 獨立遊戲開發中的物理系統遊戲開發
- 18-《ARKit by Tutorials》讀書筆記5:特殊物理效果筆記
- android遊戲開發自學筆記3-2Android遊戲開發筆記
- Godot Breakeys Godot Beginner Tutorial 遊戲開發筆記Go遊戲開發筆記
- CUUG筆記 ORACLE索引學習筆記筆記Oracle索引
- 哲學筆記筆記
- 數學筆記筆記
- IT學習筆記筆記
- 學習筆記筆記
- 力學筆記筆記
- 【學習筆記】數學筆記
- 學習筆記-粉筆980筆記
- 【記錄】MySQL 學習筆記MySql筆記
- [記錄] MySQL 學習筆記MySql筆記
- JavaScript 遊戲開發:手把手實現碰撞物理引擎JavaScript遊戲開發
- HTML5遊戲開發進階 4 :物理引擎整合HTML遊戲開發
- cocos2dx遊戲開發——微信打飛機學習筆記(九)——BulletLayer的搭建遊戲開發筆記
- 《會計學》學習筆記筆記
- Elasticsearch學習筆記Elasticsearch筆記
- Scala學習筆記筆記
- MySql學習筆記MySql筆記
- 新手學 GO 筆記Go筆記
- jQuery 學習筆記jQuery筆記
- react學習筆記React筆記