[程式] 分離軸碰撞檢測的筆記與一些綜合問題
這篇是之前寫的筆記教學文章"遊戲中的碰撞檢測",最近網站掛掉重新更新部落格到hugo
文章連結:
https://davidhsu666.com/archives/gamecollisiondetection
運行效果:
https://i.imgur.com/xojIN67.gif
線上執行範例:
https://davidhsu666.com/downloads/Collision-MTV/versions/polygon-MTV-ver1.0-full/
---------
有了能用的碰撞處理後,嘗試從零開始做了一個簡易的2D遊戲框架
主頁面:
https://davidhsu666.com/archives/2dgame-nonename/
運行效果:
https://i.imgur.com/l39cxJ3.gif
關於裡面的物體,我是製作一個叫做Entity的本體,包含了所有需要的功能
然後讓遊戲中的物體都繼承這個Entity,不管是玩家、敵人、地圖的每塊Tile都是繼承這
個Entity
再給這些Entity加入一個"事件觸發器",功能是能指定特定的物體,並在每次更新的時候
對指定的物體執行事件內容
像是人物與地圖障礙物的碰撞(具體如網頁所寫)
當時會想做事件觸發器是為了解決上下坡不同碰撞層的問題:
https://i.imgur.com/oHtvDy5.gif
在下坡處設定是碰到就讓玩家Z-index減少,上坡處則是增加,以此來處理2D地圖中多層
地圖的碰撞問題
也想說如果未來加入NPC,也許能在NPC腳下放一個觸發器,就可以做到當玩家靠近時自動
跟玩家對話之類的效果
這部份想問:
我目前的做法會有什麼問題、該怎麼做會更好之類的,或是其他遊戲引擎大概是怎麼處理
這些功能的這樣
如果想繼續擴充的話,有什麼建議,或是推薦的參考資源
---------
之前發文詢問大學自學方向的時候受到很多幫助,也了解了很多圖學的學習方向
目前專題想嘗試從零開始做軟體渲染器,然後看能不能結合上面的遊戲框架
用C++來做一個非常簡易的創世神這樣,都從零開始是想說學到的比較完整
https://github.com/beadx6ggwp/RenderLearningPlan
目前遇到一個不曉得該不該處理的問題
運行效果:
https://i.imgur.com/EhAY1GR.gif
如上圖的GIF,目前使用Win32的HBITMAP來做所有像素操作
但就算使用Release來編譯,因為只有純CPU運算,加上沒有多核多執行續的執行
渲染的幀數只有50出頭,但這只是渲染一個模型而已,感覺這樣的效能不是很好
1. 想問該往哪個方向查資料才能做到順暢運行,我目前知道的是兩種
一. 做出基本功能的Shader,然後用CPU多核心多執行續來運算每個像素
二. 想辦法讓我的軟體渲染程式可以使用顯示卡運算
但具體都有點不曉得該怎麼做,還是就直接放棄自幹軟體渲染器,改用OpenGL
2. 投影轉換,Z-buffer中1/z的非線性問題,只知道會扭曲貼圖圖案,但具體解決的方法
看了很多篇都不太理解
---
不好意思有些問題思考的沒有清楚,想抱持僥倖的方式透過分享文章來順便問問題
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.98.179 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1619488009.A.D13.html
推
04/27 09:56,
3年前
, 1F
04/27 09:56, 1F
→
04/27 09:57,
3年前
, 2F
04/27 09:57, 2F
→
04/27 09:57,
3年前
, 3F
04/27 09:57, 3F
推
04/27 10:10,
3年前
, 4F
04/27 10:10, 4F
→
04/27 10:10,
3年前
, 5F
04/27 10:10, 5F
原來OpenCL跟Cuda是這樣用,了解了,感謝
推
04/27 10:49,
3年前
, 6F
04/27 10:49, 6F
→
04/27 10:51,
3年前
, 7F
04/27 10:51, 7F
→
04/27 10:51,
3年前
, 8F
04/27 10:51, 8F
推
04/27 11:03,
3年前
, 9F
04/27 11:03, 9F
推
04/27 11:31,
3年前
, 10F
04/27 11:31, 10F
→
04/27 11:33,
3年前
, 11F
04/27 11:33, 11F
→
04/27 11:35,
3年前
, 12F
04/27 11:35, 12F
→
04/27 11:35,
3年前
, 13F
04/27 11:35, 13F
噓
04/27 11:40,
3年前
, 14F
04/27 11:40, 14F
→
04/27 11:41,
3年前
, 15F
04/27 11:41, 15F
→
04/27 11:42,
3年前
, 16F
04/27 11:42, 16F
推
04/27 11:45,
3年前
, 17F
04/27 11:45, 17F
→
04/27 11:46,
3年前
, 18F
04/27 11:46, 18F
原本單純覺得渲染效率太差,如果實作了比較進階的貼圖方式,或讀大模型時會跑不動
有點像是希望加速一點點讓比較大的模型讀進來能動這樣,不然讀大模型畫面都卡住
對的,原本想像中自製軟體渲染,就有點像你說的模擬NV工程師,但後面覺得現在實力沒辦法駕馭這麼大的項目
看完留言後感覺我的想法有點矛盾,可能我還是先專心學好圖學原理實作各種功能
先不要在意FPS,等真的需要效率的時候再直接轉OpenGL
感謝
推
04/27 16:48,
3年前
, 19F
04/27 16:48, 19F
推
04/27 16:54,
3年前
, 20F
04/27 16:54, 20F
→
04/27 16:54,
3年前
, 21F
04/27 16:54, 21F
推
04/27 16:55,
3年前
, 22F
04/27 16:55, 22F
→
04/27 16:56,
3年前
, 23F
04/27 16:56, 23F
→
04/27 16:56,
3年前
, 24F
04/27 16:56, 24F
→
04/27 16:59,
3年前
, 25F
04/27 16:59, 25F
→
04/27 17:00,
3年前
, 26F
04/27 17:00, 26F
→
04/27 17:01,
3年前
, 27F
04/27 17:01, 27F
→
04/27 17:01,
3年前
, 28F
04/27 17:01, 28F
→
04/27 17:02,
3年前
, 29F
04/27 17:02, 29F
→
04/27 17:04,
3年前
, 30F
04/27 17:04, 30F
→
04/27 17:05,
3年前
, 31F
04/27 17:05, 31F
了解了,這些資料對我非常有幫助,感謝
※ 編輯: md9830415 (114.41.131.43 臺灣), 04/29/2021 09:26:25
GameDesign 近期熱門文章
PTT遊戲區 即時熱門文章
32
102