[程式] 分離軸碰撞檢測的筆記與一些綜合問題

作者: md9830415 (DavidHsu)   2021-04-27 09:46:45
這篇是之前寫的筆記教學文章"遊戲中的碰撞檢測",最近網站掛掉重新更新部落格到hugo
文章連結:
https://davidhsu666.com/archives/gamecollisiondetection
運行效果:
https://i.imgur.com/xojIN67.gif
線上執行範例:
https://davidhsu666.com/downloads/Collision-MTV/versions/polygon-MTV-ver1.0-full/
作者: Unity (Unity3D)   2021-04-27 09:56:00
1. 建議直接用 OpenGL 或是 DX, GPU 比 CPU 快上很多, 除非你想土炮, 這樣的話你可以考慮用 OpenCL 或是 Cuda, 總之要用 GPU 做, 純用 CPU 本來就沒辦法做到很快 (平行化問題)2. 看起來你目前的攝影機是用 Orthographic, 這樣你應該比較遇不到投影造成的變形
作者: hodsala (猴的沙拉)   2021-04-27 10:49:00
以學習了解為目的來個自幹軟體渲染器合理 但以順暢運行為目的的話 捨棄為了順暢運行而發展幾十年的硬體加速方案就比較怪了因為你的軟體方案也是 現在已經標準化成硬體的流程呀1-一 說得通,也可以這樣做, 但就很怪除非驗証所學或很特殊的目的 不然不會這樣做吧 shader是為了讓你取代硬體繪圖流程, 但你不是硬體呀 沒有固定繪圖流程需要被可程式化啊 因為你本來就可程式化1-二 用openGL或DX就是和顯示卡溝通的方法呀 但照你的邏輯 你可能可以寫個不轉換的vertex shader和直出的pixelshader 然後把這些都提前到你的軟體裡弄 就..只是可以也許你想寫模擬NVIDIA工程師的steam遊戲 這一切就合理了純按到噓 沒有什麼意思
作者: Bencrie   2021-04-27 16:48:00
1/z 非線性那個就 perspective division 吧1. 其實你用 cl/cuda 畫完還是要用 CPU 貼到視窗上至少 Windows 要啦。Linux 也許靠 eglimage + dmabuf
作者: oopFoo (3d)   2021-04-27 16:55:00
作者: Bencrie   2021-04-27 16:56:00
不然就是畫完用 GL/D3D 貼輸出
作者: oopFoo (3d)   2021-04-27 16:59:00
https://reurl.cc/8yxqpR不過你知道cpu渲染跟gpu渲染的速度差異嗎?萬倍以上除非你要raytracer這種比較適合cpu的渲染。https://www.embree.org/, 高性能raytracing kernelhttps://ispc.github.io/ 不可不學,多cpu simdNavMesh,參考看看。如果你要3d,現在考慮轉SAT到GJK。gjk其實沒那麼難。
作者: newhandfun (新手方)   2021-05-03 20:34:00
推,高手雲集

Links booklink

Contact Us: admin [ a t ] ucptt.com