GameDesign 板


LINE

這篇是之前寫的筆記教學文章"遊戲中的碰撞檢測",最近網站掛掉重新更新部落格到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 https://i.imgur.com/AtOQPUv.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://webptt.com/m.aspx?n=bbs/GameDesign/M.1619488009.A.D13.html
1F:推 Unity: 1. 建議直接用 OpenGL 或是 DX, GPU 比 CPU 快上很多, 除非 04/27 09:56
2F:→ Unity: 你想土炮, 這樣的話你可以考慮用 OpenCL 或是 Cuda, 總之 04/27 09:57
3F:→ Unity: 要用 GPU 做, 純用 CPU 本來就沒辦法做到很快 (平行化問題) 04/27 09:57
4F:推 Unity: 2. 看起來你目前的攝影機是用 Orthographic, 這樣你應該比 04/27 10:10
5F:→ Unity: 較遇不到投影造成的變形 04/27 10:10
原來OpenCL跟Cuda是這樣用,了解了,感謝
6F:推 hodsala: 以學習了解為目的來個自幹軟體渲染器合理 但以順暢運行 04/27 10:49
7F:→ hodsala: 為目的的話 捨棄為了順暢運行而發展幾十年的硬體加速方 04/27 10:51
8F:→ hodsala: 案就比較怪了 04/27 10:51
9F:推 hodsala: 因為你的軟體方案也是 現在已經標準化成硬體的流程呀 04/27 11:03
10F:推 hodsala: 1-一 說得通,也可以這樣做, 但就很怪除非驗証所學或很 04/27 11:31
11F:→ hodsala: 特殊的目的 不然不會這樣做吧 shader是為了讓你取代硬 04/27 11:33
12F:→ hodsala: 體繪圖流程, 但你不是硬體呀 沒有固定繪圖流程需要被 04/27 11:35
13F:→ hodsala: 可程式化啊 因為你本來就可程式化 04/27 11:35
14F:噓 hodsala: 1-二 用openGL或DX就是和顯示卡溝通的方法呀 但照你的 04/27 11:40
15F:→ hodsala: 邏輯 你可能可以寫個不轉換的vertex shader和直出的pixel 04/27 11:41
16F:→ hodsala: shader 然後把這些都提前到你的軟體裡弄 就..只是可以 04/27 11:42
17F:推 hodsala: 也許你想寫模擬NVIDIA工程師的steam遊戲 這一切就合理了 04/27 11:45
18F:→ hodsala: 純按到噓 沒有什麼意思 04/27 11:46
原本單純覺得渲染效率太差,如果實作了比較進階的貼圖方式,或讀大模型時會跑不動 有點像是希望加速一點點讓比較大的模型讀進來能動這樣,不然讀大模型畫面都卡住 對的,原本想像中自製軟體渲染,就有點像你說的模擬NV工程師,但後面覺得現在實力沒辦法駕馭這麼大的項目 看完留言後感覺我的想法有點矛盾,可能我還是先專心學好圖學原理實作各種功能 先不要在意FPS,等真的需要效率的時候再直接轉OpenGL 感謝
19F:推 Bencrie: 1/z 非線性那個就 perspective division 吧 04/27 16:48
20F:推 Bencrie: 1. 其實你用 cl/cuda 畫完還是要用 CPU 貼到視窗上 04/27 16:54
21F:→ Bencrie: 至少 Windows 要啦。Linux 也許靠 eglimage + dmabuf 04/27 16:54
23F:→ oopFoo: perspective texture。 04/27 16:56
24F:→ Bencrie: 不然就是畫完用 GL/D3D 貼輸出 04/27 16:56
25F:→ oopFoo: https://reurl.cc/8yxqpR 04/27 16:59
26F:→ oopFoo: 不過你知道cpu渲染跟gpu渲染的速度差異嗎?萬倍以上 04/27 17:00
27F:→ oopFoo: 除非你要raytracer這種比較適合cpu的渲染。 04/27 17:01
28F:→ oopFoo: https://www.embree.org/, 高性能raytracing kernel 04/27 17:01
29F:→ oopFoo: https://ispc.github.io/ 不可不學,多cpu simd 04/27 17:02
30F:→ oopFoo: NavMesh,參考看看。如果你要3d,現在考慮轉SAT到GJK。 04/27 17:04
31F:→ oopFoo: gjk其實沒那麼難。 04/27 17:05
了解了,這些資料對我非常有幫助,感謝 ※ 編輯: md9830415 (114.41.131.43 臺灣), 04/29/2021 09:26:25
32F:推 newhandfun: 推,高手雲集 05/03 20:34







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP