Urho3D简介

3D引擎:Horde3D:App类 Horde3D引擎 主要位于 Horde3D/Source/Horde3DEngine/Debug/下的 Horde3D.lib。 其源码位于Horde3D/Bindings/C++/Horde3D.h和 Horde3D/Source/Horde3DEngine/下的cpp文件里 Horde3D引擎资源的加载API 主要是 位于Horde/Source/Horde3DEngine/D 阅读详情
AI摘要

Urho3D是一款基于MIT许可的免费开源游戏引擎,支持多种图形API和跨平台运行。它具备全面的游戏开发特性,包括物理模拟、网络支持、动画系统及脚本接口等。尽管其工具链相对简单,但代码质量高且易于扩展。

 

简介

 

Urho3D是一个轻量级、跨平台的C++免费开源游戏引擎,在MIT许可协议下发布。极大地吸收了Ogre(http://www.ogre3d.org)和Horde3D(http://www.horde3d.org)的特点。虽然借鉴了Ogre,但代码远比OGRE 1.x的清新和简洁,效率也远比Ogre 1.x好。据说Ogre 2.x代码非常简洁和高效,但是正在开发中,先不做评价。先上图,有个直观的感受。

 

 

基于物理的材质

 

 

场景编辑器

 

特性

 

通用

 

  • 运行时使用c++语言和面向对象编程。

  • 基于任务的多线程。

  • 层式性能分析工具。

  • 场景和对象支持保存和读取多种格式:二进制、XML和JSON。

  • 多线程工作队列等任务的剔除和动画更新。

  • 支持Unicode字符串。

  • 可以从Open Asset Import Library支持的格式中读取模型、场景、动画和材质;也可以从OGRE支持的mesh.xml和skeleton.xml文件里读取模型和动画数据。

  • 资源后台加载。

  • 支持多种IDE:Visual Studio、Xcode、Eclipse、CodeBlocks、CodeLite、QtCreator、CLion。

  • 支持的编译器工具链包括:MSVC、GCC、Clang、MinGW以及它们的交叉编译派生工具。

  • 支持32和64位编译。

  • 可以编译成单个外部库文件(以静态或者动态的方式链接)。

  • 使用SDL 2.0支持跨平台(目前可以运行在Windows、Linux、macOS、iOS、tvOSnew、Android、Raspberry Pi,还包括其他的通用ARM主板,以及使用Emscripten工具链支持Web)。

    图形和图像

  • 支持所有通用的图形API:Direct3D 9、Direct3D 11、OpenGL 2.0 or 3.2、OpenGL ES 2.0和WebGL。

  • 着色语言使用HLSL或者GLSL,支持HLSL字节码缓存(只在第一次用到时编译一次,将编译结果存到本地硬盘上,之后使用直接读取,从而节省加载时间)。

  • 使用xml灵活定制渲染流程:向前渲染或者延迟渲染,启用哪些后期处理。默认实现了前向着色、light pre-pass(也就是延迟光照)和延迟着色。

  • 支持点光源、聚光灯和方向光。

  • 所有光源种类都支持阴影;方向光使用级联阴影(cascaded shadow maps);除了深度偏移还支持法线偏移(normal offsetadjustment)。

  • 在支持SM3的硬件上自动合批。

  • 粒子渲染。

  • 投影纹理。

  • 环境&雾区。

  • 高度雾。

  • 地形系统支持层级细化。

  • 静态和蒙皮贴花。

  • 附加的视口渲染(实现反射等)。

  • 几何形状、材质和动画都支持LOD。

  • 后期处理。

  • HDR和PBR。

  • 能融合进3D场景的2D精灵和粒子。

  • 使用stb_image加载图片文件;支持DDS、KTX、PVR压缩纹理。

    场景管理

  • 基于组件的场景模型。

  • 场景加载/保存在XML和二进制格式。

  • 基于八叉树的场景管理和剔除。

  • 使用软件光栅化实现了遮挡剔除。

    动画

  • 硬件蒙皮的骨骼动画。

  • 场景节点动画。

  • 顶点变形动画。

  • 对象属性的关键帧动画。

  • 动画混合。

    物理

  • 使用Bullet作为物理引擎。

  • 2D物理使用Box2D。

    网络

  • UDP客户端-服务器网络使用kNet库。

  • 使用kNet支持HTTP请求。

  • 场景属性支持网络复制。

    人工智能

  • 使用Recast/Detour库,支持寻路和人群模拟。

    声音

  • 2 D和3 D的音频回放。

  • 使用stb_vorbis支持Ogg Vorbis;支持WAV。

    用户界面

  • 内置的UI系统。

  • 使用XML描述UI布局。

  • 使用FreeType渲染TrueType字体;支持AngelCode位图字体。

  • 本地化和数据子系统。

    脚本

  • 支持AngelScript,这是官方推荐的。

  • 除了Web平台,在所有平台上可选用使用Lua或者LuaJIT实现的脚本接口。

  • 场景组件可以在脚本中定义。

    输入

  • 支持键盘、鼠标、操纵杆和触摸输入。

    工具和编辑器

  • 使用脚本实现的场景编辑器和UI布局编辑器,具有撤销和重做功能。

  • 内容导入使用开放资产导入库。

     

 

效果

 

 

图1动画模型

 

 

图2多个点光源

 

 

图3静态场景

 

 

图4小地图(多台摄像机,还有Bloom效果)

 

 

图5物理碰撞压力测试,这么多立方体刚体,帧率没有明显下降

 

 

图6触发和布娃娃系统

 

 

图7汽车物理

 

 

图8水面渲染

 

 

图10一个忍者打雪仗游戏,这个引擎的人工智能做的不错

 

 

图11粒子系统

 

 

图12各种2D物理

 

 

图13 2D动画

 

 

图14 2D物理

 

 

图15更炫的粒子特效

 

 

图16 2D物理

 

个人评价

 

优点:

 

1、基于MIT协议的开源引擎,限制非常小。

 

2、所包含的特性非常全面。Ogre只是个渲染引擎,虽然有众多的插件,但是插件本身大都质量很低,另外要想做游戏,整合是个很大的工作量。

 

3、代码质量非常高。架构清晰容易拓展,代码简洁高效,包含PBR等诸多商业引擎最新特性。

 

4、有一个简单的场景编辑器,比起Godot的编辑器差了不少。编辑器是用Angel script写的,跟个普通游戏一样,在移动端也能运行,曾想着修改下是否以后也能在移动端上直接编辑游戏内容了,兴奋。

 

缺点:

 

1、像所有的免费开源引擎一样,大部分算法都达不到商用级别,需要魔改。

 

2、只有一个简单的编辑器,跟Unity这样工具链全面和易用性极高的商业引擎比起来差太远。

 

3、官方文档太少,社区还比较单薄,有问题可探讨的人不太多。

 

总结:

 

总的来说,在免费开源引擎里面,除了Godot,这是我目前见到的最好的引擎,各方面跟Unity的设计比较像。如果加大投入,开发出一个“开源的Unity”也不是什么问题。

 

还有个避不开的永恒的话题需要讨论,那就是使用商用引擎还是自研引擎开发游戏。没有绝对的好和坏,只有看是不是适合团队和项目。通用商用引擎的优点是实现的功能面广,工具链完整且易用,稳定性好。但是如果项目特殊需求多或者对技术水平要求苛刻,要求在某些方面深挖,就不如自研引擎灵活了。由于自研引擎有源码,且一般代码量少,所有模块都能完全掌控,只要有了方案,整合进引擎非常容易。而如果使用Unity这种没有源码的引擎,面对特殊需求只能用一些怪异的方式拼凑出来一个低效的方案,或者干脆劝说策划放弃。UE4虽然开源了,但是单单运行时就200万行,国内敢改底层的估计也就腾讯、网易这样的大厂了。概括来说就是,自研引擎是“倒吃甘蔗”,而使用商用引擎开发这个类型的项目正好相反。

 

当然,对于自研引擎来说,团队的技术实力也有一票否决权。如果引擎团队没有个有经验的负责人,或者公司舍不得投入资源,那千万不要染指自研引擎,还是乖乖地用Unity或者UE4做常规一些的项目吧。

 


3D引擎:Horde3D:小感 我们在 使用 Horde3D 写一个  Demo时,      真正的只需要与Horde3D的 以下几个类打交道就行了:     1  SceneManager类,2 ResourceManager类       通过 它们提供的接口 来添加资源类 和 节点     每添加一次, 都会创建一个 这个类的引用     3 Resource类       不同的Resource都继 阅读详情

相关推荐

Horde3D:Horde3D是小型3D渲染和动画引擎。 编写该文档的目的是为了使引擎尽可能轻巧并在概念上保持清洁

部落3D Horde3D是一种用C ++编写的3D渲染引擎,力求尽可能地轻巧和概念上的简洁。 Horde3D需要完全兼容OpenGL 2.0的图形卡。 就DirectX而言,这意味着至少支持Shader Model 2.0或更高版本的卡。 对于移动操作系统(Android和IOS),需要具有OpenGL ES 3.0的设备。 特征 现代的,跨平台的,基于着色器的体系结构(需要OpenGL 2.0+) 轻巧,无干扰的设计,几乎没有依赖关系,在可能的情况下避免了复杂性 C样式的API,几乎可以从任何编程语言轻松使用 资源管理 垃圾收集的资源,实际上是从任何类型的数据流中加载的 热重载资源以在开发过程中进一步提高生产力 访问顶点数据以进行碰撞检测以及与物理引擎的互操作性 基于Übershader的可自定义渲染管道 管道热装,可快速测试各种渲染技术 支持后期处理效果,例如光晕,景深或运动模糊

Urho3D — 您的全能游戏开发伙伴

在寻求一款轻量级、高性能且功能全面的游戏引擎时,Urho3D应运而生。作为一款免费的跨平台2D和3D游戏引擎,Urho3D凭借其简洁的架构和强大的渲染能力赢得了无数开发者的青睐。 随着技术迭代,Lasse Öörni——Urho3D的创始人已投身于新的项目Turso3D,为游戏开发者提供更前沿的技术支持。同时,Dviglo社区也在积极维护着Urho3D的代码库,确保这个经典引擎持续进化。 ##...

gitblog_00270的博客 531

S4 HANA 1809+折旧过账(AFAB/AFABN)凭证行数据存储逻辑变迁:从BSEG到ACDOCA的深度解析

本文深度解析了S4 HANA 1809+版本中折旧过账(AFAB/AFABN)凭证行数据存储逻辑的变迁,从传统的BSEG表迁移到ACDOCA表。文章详细探讨了这一变更的技术背景、官方设计意图及实际影响,包括数据存储量减小和系统性能提升等优势。同时提供了升级项目的应对策略和最佳实践建议,帮助用户顺利过渡到新的数据存储模型。

weixin_28731223的博客 294

Urho3D用户界面

Urho3D用户界面

weixin_41220464的博客 1485

深入浅出SSD:固态存储核心技术、原理与实战(文末赠书)

作为经典畅销书的升级版,本书在第1版的基础上新增了大量新知识(如闪存、UFS、测试、文件系统等),并改写或删减了许多过时或不适用的内容,总修改量超过60%。本书由SSD技术社区SSDFans的核心团队成员联合业界、高校SSD方面的专家共同完成,相对于第1版,内容更全面、更新,也更有深度。本书从产品、技术和应用3个维度展开,全面、详细讲解了SSD的发展历史、产品形态、工作原理、整体架构,以及各个功能模块的原理和使用,从SSD的前端接口协议到FTL算法,再到后端的闪存和纠错,以及测试,本书都有涉及。

阿玥的小博客 3123

新手避坑指南:手把手教你从零编写DC综合的.synopsys_dc.setup配置文件

本文详细介绍了如何从零开始编写DC综合的.synopsys_dc.setup配置文件,帮助新手避开常见误区。内容涵盖工艺库路径设置、核心参数详解、实用调试技巧以及高效配置模板,特别强调了配置文件在数字IC设计流程中的重要性。通过实战案例和常见报错解决方案,读者可以快速掌握DC综合配置的关键技能。

weixin_30517215的博客 296

如何编译Urho3D引擎

urho3D编译

weixin_41220464的博客 500

半监督的医学分割数据集(LA, Pancreas, ACDC和PROMISE12)分享

这篇文章提供了四个常用的半监督医学分割数据集,所有数据集都已经被处理成了.h5文件。下载之后就可以直接使用

qq_45691955的博客 4179

Urho3D 项目下载及安装教程

Urho3D 是一个免费、轻量级、跨平台的 2D 和 3D 游戏引擎。它支持多种平台,包括 Windows、macOS、Linux、iOS 和 Android。Urho3D 使用 C++ 编写,并支持多种脚本语言,如 AngelScript 和 Lua。该项目旨在为开发者提供一个高效、灵活的游戏开发工具,适用于各种规模的游戏项目。 ## 2、项目下载位置 Urho3D 项目的源代码托管在 Gi...

gitblog_01237的博客 1018

中兴FTTR光猫变简易OLT:低成本搭建全光监控与局域网实战指南

本文详细介绍了如何将中兴FTTR光猫改造为简易OLT设备,实现低成本全光监控与局域网扩展。通过LOID认证、桥接模式设置及终端数破解,用户可利用二手设备搭建高性能光纤网络,适用于远程监控和长距离组网场景,显著降低部署成本。

chair的专栏 2033

峰岹FU6832L双核电机控制芯片实战:从FOC算法到BLDC/PMSM驱动开发

在嵌入式系统和电机控制领域,磁场定向控制(FOC)是实现无刷直流电机(BLDC)和永磁同步电机(PMSM)高效、平稳运行的核心算法。其原理是通过坐标变换将三相交流量分解为直流量,实现类似直流电机的转矩与磁场解耦控制,从而提升效率、降低噪音与振动。这项技术的工程价值在于能以更低的处理器开销实现高性能驱动,广泛应用于消费电子、工业自动化与智能家电。本文以峰岹FU6832L芯片为例,深入解析其独特的双核架构——将实时性要求极高的FOC运算交由专用硬件引擎处理,解放主控CPU处理应用逻辑,并结合PID参数整定、电流

weixin_29570795的博客 512

Urho3D引擎初始化和主循环

Urho3D引擎初始化和主循环

weixin_41220464的博客 1994

SFT看这一篇就够了!万字长文:监督微调(Supervised Fine-Tuning, SFT)技术全解析【从理论到实战】

大家好,我是大 F,深耕AI算法十余年,互联网大厂技术岗。分享AI算法干货、技术心得。欢迎关注,一起探索技术的无限可能!

大F子的智能小课 712

使用Urho3D库

使用urho3d库

weixin_41220464的博客 508

手把手教你学Simulink--FIR滤波器的设计与优化仿真

FIR滤波器的设计目标通常包括指定的频率响应特性(如低通、高通、带通或带阻),以及特定的应用需求(如线性相位、最小化误差等)。Simulink提供了一个直观且强大的平台来模拟这些设计,并允许用户通过调整参数实时观察其对系统性能的影响。明确你的系统需求,比如输入信号类型(如正弦波组合)、采样率、FIR滤波器的设计参数(如滤波器类型、阶数、截止频率等)。假设我们需要设计一个低通FIR滤波器,用来去除高于1kHz的所有频率成分,保留低于1kHz的信号成分。采样率为8kHz。

MHD0815的博客 347

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

urho3d数据库

urho3d数据库

weixin_41220464的博客 499

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Urho3D 事件Events

Urho3D 事件Events

weixin_41220464的博客 461

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Urho3D 项目教程

Urho3D 项目的目录结构如下: ``` Urho3D/ ├── bin/ ├── CMake/ ├── Docs/ ├── Source/ │ ├── ThirdParty/ │ ├── Urho3D/ │ └── Tools/ ├── Data/ ├── Scripts/ └── CMakeLists.txt ``` ### 目录介绍 - **bin/**: 存放编译生成的...

gitblog_00044的博客 613

Urho3D 技术文档

Urho3D 是一个免费的轻量级跨平台2D和3D游戏引擎,基于MIT许可证发布。要开始使用Urho3D,遵循以下步骤进行安装: 1. **获取源码**: 访问Urho3D的GitHub仓库([https://github.com/urho3d/Urho3D](https://github.com/urho3d/Urho3D)),点击“Code”按钮下载ZIP文件或者通过Git克隆仓库到本地: ...

gitblog_01238的博客 720

Urho3D整体结构

Urho3D整体结构

weixin_41220464的博客 1464

Urho3D物理

Urho3D物理

weixin_41220464的博客 403

Urho3D渲染

Urho3D渲染

weixin_41220464的博客 532

Urho3D的Lua脚本

Urho3D的Lua脚本

weixin_41220464的博客 285

Urho3D场景

Urho3D场景

weixin_41220464的博客 428

Urho3D序列化

Urho3D序列化

weixin_41220464的博客 403

urho3d工具

urho3d工具

weixin_41220464的博客 601
上一篇: 给立志于游戏引擎研发的新手的一些建议
下一篇: 新手使用Urho3D的常见问题解答
CrazyEngine
博客等级 码龄10年 111粉丝 37原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值