2009年1月29日星期四

Nebula3基础层概述

Nebula3基础层为渲染和音频提供一个通用的平台抽象服务。它位于Nebula3层次模型中的最底层并且可以为其它不需要3d渲染应用程序提供一个易于使用的底层框架。

基础层已基本完成了,并带有完整的测试类和性能测试类。

基础层包含以下几个子模块:

1.Core:实现基本Nebula3对象模型,并且支持引用计数智能指针动态运行时(RTTI)和通过类名或者FourCC创建对象。

2.Memory:提供内存管理和一些包装的方法。

3.Util:一些工具类,不同类型的容器类,一个功能强大的字符串类,一个guid包装类等等......

4.Timing:提供时间管理的类。

5.IO:一个全新的功能强大的IO子系统,它的设计灵感来源于.NET IO框架。使用URI作为IO资源标识符,stream类提供通用的数据通道,

6.Threading:为多线程提供一个底层的类包装。

7.Messaging:Mangalore消息系统的一个升级版本。为相同线程不同线程或者在同一台机器上的两个应用程序或者网络上的对象间提供一个标准通信方式。

8.Math:一个单独的向量数学库。它的设计思想是使数学库的代码看起来像HLSL shader代码,并且在多种平台和编译器上提供最好的执行效率。

9.Net:一个底层的网络子系统。为socket,IP address,一个简单客户/服务器系统提供包装,并提供基本的HTTP支持。

10.Scripting:Nebula3的脚本系统比Nebula2来的易用,并且容易扩展。现在标准脚本语言是LUA(在Nebula2中是TCL),大大降低了内存空间。脚本现在不再是绑定在架构上。很容易禁用脚本提高内存的利用率。当然也可以增加其它脚本语言的支持。

11.Attr:实现来自Mangalore中动态属性的概念,Attributes的键/值对是编译安全的,因此提供了编译时检查Attributes名称和数据类型。Attributes是数据库子模块的基础。

12.Db:数据库子系统是Mangalore数据库子系统的升级版本。为存储应用程序不同的数据类型提供一个抽象的,高效的SQL数据库接口。使用SQLite作为标准的后台数据库实现,为了获得数据库最优的性能该代码已经被仔细调整过。(在最新版本中该子系统已经被移出基础层)

13.Naming:(在最新版本中该子系统已被删除)

原文: Nebula3 Foundation Layer Overview

[声明]:限于译者水平,文中难免错漏之处,欢迎各位网友批评指正;

没有评论:

发表评论