Nebula3学习笔记(1): 序

前言

目前这个引擎只是一个预览版, 很多功能仍在开发当中

硬件需求: 显卡支持ShaderModel3.0

作者Blog: http://flohofwoe.blogspot.com

用到的开源工程

为了避免版本之间的不兼容, 已经在SDK中包含

体系结构一览

  • Nebula3 分成三层, 每一层都是建立在另一层之上的:
    • 基础层: 最底层, 提供了一个图形和音频之下基本的平台抽象. 基础层可以用作任意类型的程序开发平台, 而不仅仅是实时3D程序.
    • 渲染层: 这是中间层, 它在基础层之上另加了许多特性, 像3D渲染, 音频, 物理和场景管理等.
    • 应用程序层: 这是最高的一层, 提供了一个完整的游戏框架, 这使得开发人员可以集中精力在游戏逻辑上, 而不用对关心各种细节实现.
  • Nebula3 会跟Mangalore 合为一个整体, Mangalore的各种子系统会集成到Nebula3的适合它们的层中去.
  • Nebula3 比 Nebula2更趋向于使用C++.
  • Nebula3通过引用计数和智能指针实现了对象生命周期的管理.
  • Nebula3的新对象模型使用一个4 byte的基类来代替Nebula2中70+ bytes的.
  • RTTI更高效, 更易用.
  • Nebula3仍然不使用C++异常, RTTI和STL(所有这些不是降低性能就是降低便携性).
  • 根据类名来创建对象更快更易用.
  • Nebula3 避免使用C Lib, 去除了附加的代码层.
  • Nebula3 使用LUA 代替TCL作为标准的脚本语言(当然也可以增加其它脚本语言的支持)

基础层

  • App 包含各种Application类
  • Attr 属性注册
  • Core                Nebula3的对象模型
  • Debug 程序内存转储和基于HTTP的调试信息(这个真是个好东西, 第一次听说)
  • Http 实现了HTTP服务器和客户端, 这样可以在浏览器中实时查看调试信息
  • IO 输入输出系统, 很方便
  • Math 基于C++的数学库, 没什么特别的
  • Memory 实现了定制的内存分配器
  • Messaging 消息定义
  • Net 最基本的基于TCP协议的C/S架构, 更多的功能会在高层的网络扩展中给出
  • Scripting 脚本系统
  • System 硬件平台和特定操作系统相关的一些特性
  • Threading 多线程
  • Timing 时间/定时器管理
  • Util 工具库, 包括各种容器, 数据结构, 还有一个强大的string类(抛弃STL吧!)

渲染层

  • CoreGraphics 图形库核心类
  • Frame 基于帧的处理, 如RenderTarget, PostProcess等
  • Graphics 一些实体类型定义, 如Camera之类
  • Input 输入设备, 就是鼠标键盘手柄…..
  • Lighting 光照处理, 包括阴影算法(竟然要SM3.0@_@)
  • Models 骨骼模型&粒子系统
  • RenderUtil 目前就只有一个Maya的摄像机…..
  • Resources 资源管理器

应用程序层

application_win32工程就是一个简单的游戏, 框架, 但是已经包含了许多特性, 如果物理, 数据库等. 不过好像还缺少GUI系统.

插件

目前有三个, 基于ODE的物理引擎, 基于SQLite的本地数据库, 基于nebula2模型的骨骼模型系统

编译

没什么好说的, 打开.sln直接编译就成了, 没见过这么简单的开源工程^_^

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据派THU

手把手教你用Pandas透视表处理数据(附学习资料)

来源:伯乐在线 - PyPer 本文共2203字,建议阅读5分钟。 本文重点解释pandas中的函数pivot_table,并教大家如何使用它来进行数据分析...

2285
来自专栏进击的程序猿

图数据库奥秘初探

主要参考书籍:graph database 近期工作中要做一些图谱的应用,于是这几天就调研了下图数据库,最后就有了本文。ps:本人第一次做图谱相关的应用,具体...

832
来自专栏腾讯游戏云的专栏

游戏差异更新—BSDiff算法解析

差异更新即在软件更新时只更新差异化的部分,以达到用最小的下载量完成软件的更新需求。该思想由来已久,从刚接触电脑时的操作系统、应用软件快速更新功能或填补漏洞,到迭...

22.2K9
来自专栏牛客网

分享一下面试题

阿里一面: 自我介绍; JVM内存模型; 你所知道的JVM几种gc算法; HashMap内部数据结构; 单例模式; 自己去实现线程池; 做过什么项目; 做项目时...

37411
来自专栏Jerry的SAP技术分享

腾讯AI开放平台的接口调用指南

最近无意发现腾讯AI开放平台上提供了大量好玩的人工智能云服务,而且是完全免费的。只需要用QQ号登录即可。这么好的东西,作为一个程序员,当然要试试了!

1.3K2
来自专栏大数据和云计算技术

数据组织核心技术

要高效地使用数据,就必须要有组织,因此业界对数据的结构化组织有很多探索。 1)Cube技术概念 OLAP的目标是满足决策支持或者满足在多维环境下特定的查询和报表...

3067
来自专栏吉浦迅科技

DAY53:阅读Profiler Counter Function

Each multiprocessor has a set of sixteen hardware counters that an application c...

732
来自专栏带你撸出一手好代码

使用测试用例来约束自己的代码

写测试代码这种事情 ,以前只在网上和书上看到过, 自己从来没有写过。 每当看到那些世界顶级程序员编写的技术书籍中出现“测试用例”“测试代码”的字样或者一些行业的...

3596
来自专栏我是攻城师

关于Elasticsearch里面聚合group的坑

4476
来自专栏Spark学习技巧

案例简介flink CEP

随着无处不在的传感器网络和智能设备不断收集越来越多的数据,我们面临着以近实时的方式分析不断增长的数据流的挑战。 能够快速响应不断变化的趋势或提供最新的商业智能可...

4912

扫码关注云+社区