`
izuoyan
  • 浏览: 9375120 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Nebula3 SDK (Apr 2009)更新内容

阅读更多

相对于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子系统(模块化的角色渲染, N2Character3系统的重写)
  • 新的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 对象

这里还有一些针对FoundationRender层的有趣的代码统计 (希望图片没有缩放的太失真):


"General"为平台无关的代码, "Win360" Win32 Xbox360通用的代码.

分享到:
评论

相关推荐

    Nebula3的maya插件

    总结来说,Nebula3的Maya插件是连接Maya和Nebula3生态系统的重要桥梁,特别是其NVX2网格导出功能,为3D内容创作者提供了高效的数据交换途径。随着未来开发的推进,我们期待看到更多增强功能的出现,如N3格式的支持,...

    Nebula3命令行应用程序向导

    《Nebula3命令行应用程序向导》是针对Nebula3框架的初学者设计的一款实用工具,旨在简化命令行应用程序的开发流程。Nebula3是一个强大的游戏开发引擎,以其高效、灵活和可扩展性著称。对于新接触这个框架的开发者来...

    Nebula3 Console Application Wizard

    **Nebula3 Console Application Wizard** 是一个专为Nebula3框架设计的工具,用于帮助开发者快速创建和配置命令行应用程序。这个向导简化了命令行应用的开发过程,使得程序员可以更专注于核心功能的实现,而不用过于...

    nebula3加载xml的核心实现

    在Nebula3框架中,XML格式被广泛用于存储和传输数据,特别是在处理游戏或图形渲染等场景。本文将深入探讨“nebula3加载XML的核心实现”,关注于如何在Nebula3中读取、解析和利用XML文件来构建和操作ModelNode类型的...

    Nebula模拟器-Nebula模拟器-Nebula模拟器

    3. **安全性**:Nebula模拟器提供了强大的隔离机制,确保各虚拟机之间的安全边界,防止恶意软件或攻击者跨虚拟机传播。 4. **可扩展性**:随着业务需求的增长,Nebula模拟器可以轻松添加新的虚拟机或扩展资源,无需...

    Nebula3 渲染程序向导

    **Nebula3 渲染程序向导** Nebula3渲染程序向导是一个专为开发者设计的工具,用于引导用户创建和理解基于Nebula3引擎的渲染应用程序。Nebula3是一款强大的游戏开发和实时图形渲染平台,它提供了一系列高级特性,...

    Nebula2.25_汉化

    《Nebula2.25汉化版:模拟器的便捷使用详解》 在IT行业中,模拟器扮演着至关重要的角色,它们使开发者和用户能够在一个平台上体验和测试其他平台的功能。Nebula,作为一款知名的模拟器软件,被广泛用于音频处理、...

    nebula图数据库V2.6.0

    3. **启动Nebula**:运行`docker-compose up -d`命令启动Nebula服务,后台运行。 4. **验证部署**:通过`docker-compose ps`检查各服务状态,`nGQL`客户端连接并测试查询功能。 5. **停止和清理**:使用`docker-...

    脱壳的nebula225b

    【标题】"脱壳的nebula225b"是指的NEBULA模拟器的一个特定版本,经过优化和修改,解决了原本存在的某些问题。在这个版本中,开发者针对无法完整扫描到所有游戏子Rom的问题进行了修复,使得用户可以更加顺利地进行...

    nebula3 engine

    Nebula3 Engine是一款强大的游戏开发引擎,专为制作高质量的跨平台游戏而设计。它以其高度可移植性著称,允许开发者将游戏轻松部署到多个平台,包括iPhone在内的移动设备,大大拓展了游戏的受众范围。这款引擎的出现...

    java-nebula客户端集成(csdn)————程序.pdf

    Java Nebula 客户端集成详解 Java Nebula 客户端集成是指将 Nebula 图数据库与 Java 应用程序集成,以便在 Java 应用程序中使用 Nebula 图数据库的功能。下面是 Java Nebula 客户端集成的详细过程。 一、建立 ...

    eclipse nebula部件

    将`nebula.zip`文件解压缩后,将其内容放入Eclipse的安装目录下的`dropins`文件夹中,这一步是将Nebula部件集成到Eclipse环境的关键步骤。`dropins`目录是Eclipse用来自动识别并加载插件的地方。完成这一步后,通过...

    nebula-V3.3.0镜像资源包

    nebula-V3.3.0镜像资源包,包含meta、storged及graphd对应的镜像,以及nebula-console文件

    nebula-graph-studio-3.8.0 ARM架构编译完成的包

    《Nebula Graph Studio 3.8.0 在 ARM 架构下的编译与应用》 在当前数字化时代,图数据库作为一种高效的数据管理工具,正逐渐受到广泛关注。Nebula Graph,作为一款高性能、分布式、易扩展的图数据库,其图形化管理...

    Nebula 3 source code

    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-sdk:NebulasDB是一款基于星云链、去中心化、非关系型的数据库, 并且提供了JS-SDK、客户端控制台方便开发进行数据操作

    NebulasDB JS-SDK 1. 介绍 1.1 NebulasDB NebulasDB是一款基于、去中心化、非关系型的数据库, 并且提供了JS-SDK、客户端控制台方便开发进行数据操作。 1.2 JS-SDK JS-SDK (Javascript-Software Development Kit ) ...

    Nebula PaperClips打印例子

    Nebula PaperClips是一款专为打印任务设计的软件组件,其版本1.0.4在打印领域提供了高效且灵活的解决方案。PaperClips的主要功能是帮助用户方便地管理和操作打印作业,它可能包含了诸如预览、编辑、格式转换以及多...

    nebula-release-plugin, 基于 gradle git发布意见.zip

    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_

    标题中的"org.eclipse.nebula.widgets.grid_1.0.0.jar_gridview_everyt8y_"暗示了我们正在讨论的是Eclipse Nebula项目中的一个组件,具体是Grid Viewer相关的库,版本为1.0.0。这个库是用于构建用户界面的,特别适用...

    《星云监控.pdf》《TH-Nebula 技术文档》

    内容来源:threathunter.cn https://www.threathunter.cn/nebula.html 文档地址:http://www.bookstack.cn/books/TH-Nebula 书栈官网:http://www.bookstack.cn 书栈开源:https://github.com/TruthHun 分享,让...

Global site tag (gtag.js) - Google Analytics