clq
浏览(617) +
2022-11-13 12:37:02 发表
编辑
关键字:
[2024-09-01 19:12:16 最后更新]
⭐非著名 3D 引擎收集 这里说的非著名其实只是对我这非专业人士而言。最近在找纯 c /golang/js 版本的跨平台又想要主流非玩具型的,所以收集一下。 1. raylib 应该实用,不过没有 ios 版本? https://github.com/raysan5/raylib/blob/master/BINDINGS.md http://newbt.net/ms/vdisk/show_bbs.php?id=75144142757BE92C8D3C71F40BF3C2A3&pid=164 https://github.com/gen2brain/raylib-go " https://zhuanlan.zhihu.com/p/460726537 关于模型格式的讨论 在raylib中,可以直接导入obj、glTF、stl和fbx等格式的3d模型。 需要注意的是,raylib以及不同的建模软件对这几种格式支持的兼容程度不尽相同。笔者个人的经验是,raylib对blender导出的obj格式模型兼容性是最好的。如果某个模型不能被raylib正确载入,可以试试先导入blender,再用blender导出成obj格式模型,提供给raylib读取。 " raylib 据说的特点及“缺点”: 没有节点的概念,那就是没法方便的独立于父节点旋转了; 常常与 imgui 联合使用,那估计是没有 ui 库了; 另外 ImGui 有很多项目都在用,不知道实际怎样。 1.2 https://github.com/tdewolff/canvas g3n https://github.com/g3n/engine https://github.com/g3n/g3nd 1.3 https://davegreengames.itch.io/shape-engine shape-engine 似乎是基于 raylib 的 c# 引擎。它官网上的示例很有点意思。 https://blog.csdn.net/gitblog_00088/article/details/139487985 https://store.steampowered.com/app/1713770/Fracture_Hell 2. qt5 其实也是可以的,不过似乎 qt6 才有 ios ,而且 qt 自身限制越越来越多,还不如直接上 u3d 好了。 3. GLFW 经常见到这个库。不过它其实应该只是 opengl 的一个实现,并不是完整库。 https://github.com/go-gl/glfw https://www.glfw.org/ https://blog.csdn.net/pengrui18/article/details/114436712 https://www.jianshu.com/p/478f63781204 这里有一篇使用 Assimp 加载模型的方法,还是比较麻烦的。 3. https://github.com/fogleman/choppy 作者是位 golang 的 3d 程序高手,我甚至见过他不用 3d 引擎操作 3d 模型的库。非常推荐。 4. Babylon.js 这个是 js 的 3d 引擎 https://zhuanlan.zhihu.com/p/539177373 微软旗下 WebGL 框架 Babylon.js 5. thingjs 也是做的比较好看的,threejs体系的 threejs 是非常有名的 js 3d 引擎,不过 thingjs 嘛... https://www.cnblogs.com/fps2tao/p/16531471.html 这里有个很好的 threejs 入门教程。 6. cocos 现在其实也有 3d 功能,不过没看到什么著名项目?可以作为 u3d 的备份。另外它直接支持 typescript 这点很吸引我。 https://www.cocos.com/docs#creator https://www.cocos.com/products#CocosCreator 6.2 白鹭引擎 看到好多网友吐chao cocos 说是白鹭引擎更好,我看了一下它也是支持 typescript 的。 https://github.com/egret-labs/egret-core 它应该也是至少部分开源的。 不过听说现在大火的 “羊了个羊”游戏是 cocos 写的。 6.3 https://gitcode.net/hello_tute/SheepASheep godot引擎使用 c# 和一个类似 python 的脚本。当前不是很感兴趣。 一个很有意思的 godot 示例 https://blog.csdn.net/overpara/article/details/138136699 Godot第一课——制作一个桌宠(基础篇),从引擎的下载到入门 https://blog.csdn.net/overpara/article/details/138376109 Godot第二课——制作一个桌宠(进阶篇),完善第一期的内容,加入更多功能! 6.4 好消息是 cocos 天生支持 vscode http://docs.cocos.com/creator/2.4/manual/zh/getting-started/coding-setup.html 6.5 https://blog.csdn.net/elloop/article/details/52987649 https://zhuanlan.zhihu.com/p/31582820 MagicaVoxel比较容易上手, 画刷工具有六种, L 画线 C 圆 P V 自由矢量 F 面 B 方块 MagicaVoxel 是非常有趣的建模软件。 http://ephtracy.github.io/ 7. ue4 其实现在也是开源的,问题是在 linux 据说得自己编译 ... 8. Castle Game Engine - castle-engine 简单易用的 lazarus/pas/delphi 的半官方引擎。 http://newbt.net/ms/vdisk/show_bbs.php?id=27B82942153968696467D6FEBCFEFBA6&pid=159 这是个完整的游戏引擎,有刚体和碰撞体的概念。参考 https://castle-engine.io/features#_visual_editor "Unity 开发人员转CGE(castle Game engine)城堡游戏引擎指导手册" 的中文翻译 https://blog.csdn.net/xyzhan/article/details/132963370 9. Flax Engine https://github.com/FlaxEngine/FlaxEngine 可以看作 u3d 的平替。看上去很完善。 10. Xenko 也是一个引擎。未知。 11. Stride Game Engine https://github.com/stride3d/stride 似乎有网友抱怨不太行 https://blog.csdn.net/qq_43123093/article/details/106816093 12. https://github.com/bevyengine/bevy bevy 号称当前 github 上第二活跃的游戏引擎。(那第一是哪个?) 由 rust 开发,rust 就算了,非常不喜欢,不过它支持很多脚本。 13. https://layaair.layabox.com/#/demo laya 引擎感觉和 cocos 3d 很像。也是国内开发的,偏 web /小程序方面的。也有商业公司做后盾。 14. 意外发现有法国大佬直接用 delphi fmx 开发 3d 游戏的。 http://newbt.net/ms/vdisk/show_bbs.php?id=CF0A243DBC1FBF4E132DD87A4F268117&pid=164 ================================================================ ---------------------------------------------------------------- 顺便在这里写一下开发异同吧。 其实 cocos 等引擎还是做得很人性化的,操作与 u3d 很是接近。 1. cocos/u3d 都可以定义属性,然后把场景中的物体拖放到脚本属性上进行关连。 2. 都可以产将脚本拖放到物体上进行关联。 3. 都有刚体和碰撞体的概念,以及重力的概念,物体都是要有碰撞体后才能触发点击事件等。 都有射线的概念。 4. 都是在重载的 update 函数中平滑移动物体。 ----- u3d 的例子 Vector3.Lerp插值的理解 public static Vector3 Lerp(Vector3 a, Vector3 b, float t); 其中a代表起点,b代表终点。 下面是官方的例子是1秒动画位置从从from开始到to结束; public class example:MonoBehaviour{ public Transform start; public Transform end; void Update(){ transform.position = Vector3.Lerp (start.position, end.position, Time.deltaTime); } } ---- cocos 的示例 let cur_pos = this.mainCamera.node.position; let new_pos = cur_pos.clone(); new_pos.x = new_pos.x + 1; //cocos 中的位置单位是什么?米? let speed = 0.005; speed = 1; //表示每秒移动一个单位 cc.Vec3.lerp(new_pos, cur_pos, new_pos, deltaTime * speed); //cocos 的函数比较奇怪,这个大概相关于 u3d 中的 新位置 = lerp(起点,终点,速度) this.node.setPosition(new_pos); cocos 的接口似乎更好用一点,因为它的 deltaTime 两帧间隔时间直接在函数中就有了 update(deltaTime: number)
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.