相对于Sep 2008SDK的新内容:
工具
-
新命令行工具: archiver3 – 为多平台文件档案生成所做的包装
-
新命令行工具: n2converter3 – 转换.n2 文件到.n3文件(Nebula 图形对象)
-
新命令行工具: suiconverter3 –SUI (simple user interface)资源的批处理转换器, 现在只在Wii平台有效
-
新命令行工具: synctool3 – 从版本服务器上同步本地工程目录(只对我们内部的开发流程有用)
-
新命令行工具: countlines3 – 对N3 源代码行数进行统计并生成Excel兼容的csv文件(comma separated values)
基础层
-
更新Wii平台到最新(当然这不属于公开的SDK)
-
Util::CmdLineArgs 更名为Util::CommandLineArgs
-
Scripting 子系统移入一个addon
-
Remote 子系统移入一个addon
-
新宏__ConstructInterfaceSingleton / __DestructInterfaceSingleton
-
做为Maya插件编译时采用新的标准定义__MAYA__
-
新内容: ExitHandlers (见Core::ExitHandler)
-
新的底层调试方法Core::SysFunc::MessageBox()
-
新内容"根目录(root directory)" (见 CoreServer::SetRootDirectory)
-
为了在N2/Mangalore中使用N3的代码所做的各种各样的改变 (N2 现在基于很少一部分的N3基础层)
-
SizeT 和IndexT 现在是有符号的了(为了兼容N2/Mangalore不得不这样)
-
IO::Console 现在是一个InterfaceSingleton
-
各种HTML调试处理(handler) 页面的表格可以按列进行排序
-
Debug::DebugServer 现在是一个InterfaceSingleton
-
加入一个最小的Debug::HelloWorldRequestHandler 做为HttpRequestHandler 的示例
-
好用的新方法Http::HtmlPageWriter::TableRow2(), 结省创建两列HTML表格时所需要的代码量
-
加入 Http::HttpClient 类, 允许发送请求至HTTP服务器
-
Http::HttpInterface 现在是一个InterfaceSingleton 并且从Interface::InterfaceBase派生
-
新类Http::HttpRequestWriter
-
新类Http::HttpResponseReader
-
为HttpServer加入一个"单线程模式"
-
加入一个新类InterfaceBase 和InterfaceHandlerBase
-
把IOInterface相关的移到IO 下
-
新类Debug::ConsolePageHandler, 在web服务器上显示命令行输出
-
Zip 文件系统应归于档案文件系统, ZIP支持做为一个特例(Wii上使用 ARC文件代替)
-
ZipFileSystem 现在是一个InterfaceSingleton (没有增加各线程的内存消耗)
-
为IO::FileTime增加一个"AsString()" 方法
-
Win360FSWrapper中新的方法: SetFileWriteTime(), GetAppDataDirectory(), GetProgramsDirectory()
-
IO::ZipFileStream 类移动到io/zipfs
-
移动路径重定向(path assign)方法从IoServer 移动到新的InterfaceSingleton: IO::AssignRegistry
-
新的Windows下的标准重定向符(assign): "appdata" 和"programs", 主要用于工具
-
修正IO::ExcelXmlReader 对于表格包含空单元格时的Bug
-
新类IO::HistoryConsoleHandler, 捕获命令行输出到一个环形缓冲(Debug::ConsolePageHandler使用)
-
URI 模式方法从IoServer 移动到IO::SchemeRegistry InterfaceSingleton
-
从Stream::Open / Stream::Close 中删除临界区
-
新方法: IO::XmlWriter::WriteComment()
-
新的float4特殊加载方法: Math::float4::load_float3(), Math::float4::load_ubyte4n_signed()
-
Math::float4 的向量比较方法更加直观和灵活了
-
Math::matrix44() 默认构造函数设置自身为单位矩阵(Math::float4的默认构造函数仍然为空!)
-
Math::quaternion的新的从float4构造的构造函数
-
从scalar.h移动许多数学方法到d3dx9_scalar.h , 使平台特定的优化成为可能
-
Memory::Heap 构造函数现在接受初始化和最大堆大小
-
Memory::Heap的内存泄露检测 (还不是很令人满意)
-
移除全局堆: SmallBlockHeap, LargeBlockHeap, StringHeap
-
加入全局堆: PhysicsHeap, AppHeap, StringObjectHeap, StringDataHeap
-
试验性的Win360MemoryPool新类
-
Messaging::AsyncPort: 现在可以在已经打开的端口(port)中加入消息处理器(message handler)
-
加入"延迟处理(deferred handled)" 标记到Messaging::Message (用于渲染线程中的CreateEntity消息在加载完之前保持履行职责)
-
包装套接字和TCP/IP 类使Wii上的"TCP/IP-over-HIO2-Tunneling" 成为可能
-
System::Win32Registry(): 把Read() 方法分成ReadString() 和ReadInt()
-
System::ByteOrder::Convert<TYPE>() 现在返回一个值, 加入新方法System::ByteOrder::ConvertInPlace<TYPE>()
-
新方法Threading::Interlocked::Exchange() 和 CompareExchange()
-
Win360Thread::IsRunning() 现在使用Win32 函数GetExitCodeThread() 来检线程是否运行中
-
新方法Threading::Thread::YieldThread() (放弃时间片)
-
新类Threading::SafeFlag
-
新内容: Timing::MasterTime 和Timing::SlaveTime, 主线程有一个MasterTime 对象, 分发"main time" 到附属线程 (如渲染线程)
-
Util::Array 现在有一个MinGrowSize 和MaxGrowSize 来防止巨大数组的内存浪费
-
试验性的新类Util::Delegate (不幸的是在Codewarrior中不能工作)
-
新方法Util::FixedArray::AsArray()
-
新方法Util::Dictionary::KeysAs<TYPE>(), 和Util::Dictionary::ValuesAs<TYPE>()
-
新类 Util::PriorityArray (我想应该不需要了吧)
-
新类Util::RandomNumberTable
-
新类Util::Round
-
很多Util::String 不常用的方法不再内联
渲染层
-
新的Character子系统(模块化的角色渲染, N2的Character3系统的重写)
-
新的CoreFX 子系统(从Mangalore的 VFX(visual effects) 子系统引入) -> 注意: 会被移进addon
-
新的CoreUI 和UI 子系统(简单的用户界面系统) -> 注意: 会被移进addon
-
新的Video 子系统(视频播放, 现在只有Xbox360的) ->注意: 会被移进addon
-
新的Particles 子系统(从头重写) -> 注意: 会被移进addon
-
新的PostEffect 子系统(从Mangalore引入) -> 注意: 会被移进addon
-
新的Vibration 子系统(游戏手柄震动支持) ->注意: 会被移进addon
-
新的 Vegetation 子系统(Drakensang的植被渲染, 现在在N3下不可用) -> 注意: 会被移进addon
-
新内容: RenderModules, 为渲染线程增加功能的干净框架(xoyojank: 正愁写demo咋办呢, 哈哈)
-
新内容: AnimEvents, 动作可以在特定的采样时间触发一个事件 (如在合适的时间播放脚步声)
-
新内容: 角色附属物(attachments) (剑什么的...)
-
Animation系统的很多bug修正和改进
-
新内容: AnimDrivenMotion, 以当间动作来同步角色的移动
-
新内容: 消息批次, 以客户端消息打包的方式彻底解决线程间的通信开销
-
新方法: Audio::AudioEmitter::Pause() 的Resume()
-
新方法: AudioDevice::SetGlobalVariable() / GetGlobalVariable()
-
加入/修正Xbox360 对 XACT 音频类的支持
-
新类: MultipleRenderTarget, 包装了MRT 渲染
-
新类: MouseRenderDevice (现在只在Wii实现了)
-
加入GPU 实体(instance)渲染
-
RenderTarget: 加入解析深度缓冲到纹理的支持(只有Xbox360才行)
-
RenderTarget: 加入创建张CPU可以快速访问的解析纹理的支持
-
加入"late-binding" 到 ShaderVariableInstance
-
D3D9StreamTextureLoader 和D3D9Texture 从win360 移至d3d9, 因为现在有Xbox360的特定版本了
-
Debug::MeshPageHandler 可以在web浏览器显示顶点数据
-
Debug::TexturePageHandler 现在显示当前资源状态(Initial, Pending, Loaded, 等等...)
-
新类CoreGraphics::MemoryMeshLoader
-
CoreGraphics::Shape 重命名为 CoreGraphics::RenderShape (因为CodeWarrior对于不同目录中的文件名会产生混淆)
-
Frame::FramePass 和 Frame::FramePostEffect中加入Multiple Render Target的支持
-
Graphics::Display::GetDisplayMode() 现在返回CoreGraphics::DisplayDevice设置的参数 (可能跟需要的显示模式不一样)
-
Graphics::GlobalLightEntity: 所有光源参数移动到渲染线程创建
-
Graphics::GraphicsEntity: 内部实体(entity)只有在资源在渲染线程中载入完毕后处理才可以
-
Graphics::GraphicsInterface 现在使用消息批次来跟渲染线程通信(一帧只发送一次消息)
-
Graphics::Handle 现在是一个智能指针(解决了渲染线程实体过早销毁的问题)
-
Graphics::ModelEntity: 支持AnimDrivenMotion
-
Input::GamePad 的新方法: ButtonAsString(), AxisAsString(), GetStateAsInputEvents()
-
InternalGraphicsEntities 由InternalGraphicsServer 进行注册
-
InternalGraphicsServer 的许多改变和需要适当整理的InternalModelEntity
-
为全局光加入双面光照支持
-
新类: Models::AnimatorNode 和Models::AnimatorNodeInstance (Nebula2 遗留)
-
新类: Models::CharacterNode 和 Models::CharacterNodeInstance, 使角色渲染与模型结点结合到一起
-
ModelNode的加载基本上重写了(新的.n3 文件格式, 还有n2converter3 工具用于转换.n2 文件到.n3)
-
新方法Model::OnResourcesLoaded(), 方便Model子类在资源加载完毕时做初始化工作
-
新方法用来在 ModelInstance中查找ModelNodeInstance
-
新类Models::StreamModelLoader
-
Models命名空间下的许多小的更改
-
新类: RenderUtil::MouseRayUtil, 转换2D鼠标位置到世界空间的3D射线
-
新方法: ResourceManager::CheckPendingResources(), 在当前没有等待加载的资源时返回true
-
SharedResourceServer: 几个方法现在创建共享资源时接受ResourceLoader 对象
这里还有一些针对Foundation和Render层的有趣的代码统计 (希望图片没有缩放的太失真):


"General"为平台无关的代码, "Win360" 是Win32 和Xbox360通用的代码.
分享到:
相关推荐
总结来说,Nebula3的Maya插件是连接Maya和Nebula3生态系统的重要桥梁,特别是其NVX2网格导出功能,为3D内容创作者提供了高效的数据交换途径。随着未来开发的推进,我们期待看到更多增强功能的出现,如N3格式的支持,...
《Nebula3命令行应用程序向导》是针对Nebula3框架的初学者设计的一款实用工具,旨在简化命令行应用程序的开发流程。Nebula3是一个强大的游戏开发引擎,以其高效、灵活和可扩展性著称。对于新接触这个框架的开发者来...
**Nebula3 Console Application Wizard** 是一个专为Nebula3框架设计的工具,用于帮助开发者快速创建和配置命令行应用程序。这个向导简化了命令行应用的开发过程,使得程序员可以更专注于核心功能的实现,而不用过于...
在Nebula3框架中,XML格式被广泛用于存储和传输数据,特别是在处理游戏或图形渲染等场景。本文将深入探讨“nebula3加载XML的核心实现”,关注于如何在Nebula3中读取、解析和利用XML文件来构建和操作ModelNode类型的...
3. **安全性**:Nebula模拟器提供了强大的隔离机制,确保各虚拟机之间的安全边界,防止恶意软件或攻击者跨虚拟机传播。 4. **可扩展性**:随着业务需求的增长,Nebula模拟器可以轻松添加新的虚拟机或扩展资源,无需...
**Nebula3 渲染程序向导** Nebula3渲染程序向导是一个专为开发者设计的工具,用于引导用户创建和理解基于Nebula3引擎的渲染应用程序。Nebula3是一款强大的游戏开发和实时图形渲染平台,它提供了一系列高级特性,...
《Nebula2.25汉化版:模拟器的便捷使用详解》 在IT行业中,模拟器扮演着至关重要的角色,它们使开发者和用户能够在一个平台上体验和测试其他平台的功能。Nebula,作为一款知名的模拟器软件,被广泛用于音频处理、...
3. **启动Nebula**:运行`docker-compose up -d`命令启动Nebula服务,后台运行。 4. **验证部署**:通过`docker-compose ps`检查各服务状态,`nGQL`客户端连接并测试查询功能。 5. **停止和清理**:使用`docker-...
【标题】"脱壳的nebula225b"是指的NEBULA模拟器的一个特定版本,经过优化和修改,解决了原本存在的某些问题。在这个版本中,开发者针对无法完整扫描到所有游戏子Rom的问题进行了修复,使得用户可以更加顺利地进行...
Nebula3 Engine是一款强大的游戏开发引擎,专为制作高质量的跨平台游戏而设计。它以其高度可移植性著称,允许开发者将游戏轻松部署到多个平台,包括iPhone在内的移动设备,大大拓展了游戏的受众范围。这款引擎的出现...
Java Nebula 客户端集成详解 Java Nebula 客户端集成是指将 Nebula 图数据库与 Java 应用程序集成,以便在 Java 应用程序中使用 Nebula 图数据库的功能。下面是 Java Nebula 客户端集成的详细过程。 一、建立 ...
将`nebula.zip`文件解压缩后,将其内容放入Eclipse的安装目录下的`dropins`文件夹中,这一步是将Nebula部件集成到Eclipse环境的关键步骤。`dropins`目录是Eclipse用来自动识别并加载插件的地方。完成这一步后,通过...
nebula-V3.3.0镜像资源包,包含meta、storged及graphd对应的镜像,以及nebula-console文件
《Nebula Graph Studio 3.8.0 在 ARM 架构下的编译与应用》 在当前数字化时代,图数据库作为一种高效的数据管理工具,正逐渐受到广泛关注。Nebula Graph,作为一款高性能、分布式、易扩展的图数据库,其图形化管理...
A game engine and framework. It is built to be portable to various platforms, including the consoles and the iPhone. It has been used in commercial projects.
NebulasDB JS-SDK 1. 介绍 1.1 NebulasDB NebulasDB是一款基于、去中心化、非关系型的数据库, 并且提供了JS-SDK、客户端控制台方便开发进行数据操作。 1.2 JS-SDK JS-SDK (Javascript-Software Development Kit ) ...
Nebula PaperClips是一款专为打印任务设计的软件组件,其版本1.0.4在打印领域提供了高效且灵活的解决方案。PaperClips的主要功能是帮助用户方便地管理和操作打印作业,它可能包含了诸如预览、编辑、格式转换以及多...
nebula-release-plugin, 基于 gradle git发布意见 nebula-release-plugin 这个插件为 gradle 提供的发布过程提供了一些意见和任务。应用插件plugins { id 'nebula.release' version '6.0.
标题中的"org.eclipse.nebula.widgets.grid_1.0.0.jar_gridview_everyt8y_"暗示了我们正在讨论的是Eclipse Nebula项目中的一个组件,具体是Grid Viewer相关的库,版本为1.0.0。这个库是用于构建用户界面的,特别适用...
内容来源:threathunter.cn https://www.threathunter.cn/nebula.html 文档地址:http://www.bookstack.cn/books/TH-Nebula 书栈官网:http://www.bookstack.cn 书栈开源:https://github.com/TruthHun 分享,让...