登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> CLQ工作室开源代码 >> 主题: ⭐非著名 3D 引擎收集     [回主站]     [分站链接]
标题
⭐非著名 3D 引擎收集
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)



总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录
跨框架 3d 操作参考 更多



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1