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/cn.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灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP