RenderMonkey™ 最初的设计目标之一是赋能开发者,提供一个灵活且不会强加任何特定方法的工具。我们相信开发者比我们更了解自己的工作流程和需求。我们还希望确保开发者能够在 RenderMonkey 框架的基础上进行创新,而不必依赖 ATI 提供任何特定功能。解锁所有这些额外灵活性的关键在于 RenderMonkey SDK。SDK 允许创建自定义插件——这些插件可以独立于主 RenderMonkey 应用程序进行开发,并根据需要轻松集成。为了确保 SDK 真正有用,而不仅仅是一个点缀功能,我们在开发所有随 RenderMonkey 一起发布的插件模块时采用了“自产自销”的方法。开发者应该能够通过相同的接口轻松地复制或扩展任何现有功能。
RenderMonkey 已停止支持。AMD 不再支持 RenderMonkey,但仍可下载使用,但不对其提供任何保修。
除了允许开发者创建自定义插件来解决其项目特有的预期外的问题,SDK 还为 ATI 提供了一种机制,可以独立于
主发布周期更新特定组件。
- 示例插件
- SDK 要求
- 创建新插件
- 插件类型
- SDK 文档
SDK 使开发者能够做什么?
- 使用您应用程序/引擎的数据脚本直接导入/导出到 RenderMonkey
- 创建自定义 GUI 编辑器
- 过程式生成数据(几何对象、纹理、效果)
- 创建自定义几何体和纹理加载器以支持自定义格式。
除了提供 RenderMonkey 的标准接口外,SDK 还附带以下附加功能:
- Win32 和 MFC 小部件库,可用于维护应用程序的外观和风格。
- 一个高效的类似 STL 的库,用于在熟悉的数据结构(如链表、向量和字符串)中管理数据(支持 Unicode 和 ASCII)。
- 数学辅助函数和类
- 场景图网格管理
- 图像加载和集成的图像管理库。
示例插件
SDK 附带以下示例插件:
- 标量编辑器——用于编辑标量变量
- 颜色编辑器——用于编辑颜色变量
- HLSL 着色器编辑器——编辑 HLSL 着色器
- 纹理对象编辑器——编辑纹理对象,设置纹理阶段以及相关的纹理和采样器状态
- RenderMonkey 工作区包导出器(将任何 RenderMonkey 工作区及其所有纹理和模型导出到单个 zip 文件中进行分发)
- 过程式纹理生成器(使用 HLSL 进行纹理函数规范)
- 过程式几何体生成器
- 生成基本几何形状(立方体、球体等)
- 为您的模型生成退化的边缘四边形——并将其用于阴影卷、毛发等。
- 以及更多……
|
|
|
|
SDK 要求
- Windows XP
- Visual Studio 2005
- Win32 和/或 MFC 用于 GUI 开发
- DirectX 9.1 SDK
SDK 使用纯 C++ 编写。请参阅 SDK 中包含的示例项目,了解 MFC 和 Win32 插件的示例。某些 SDK 项目需要 DirectX 9.1 SDK 才能进行开发。
创建新插件
为了方便创建新插件,RenderMonkey 附带了一个 SDK 项目向导——可以从主 RenderMonkey 应用程序启动,以创建新插件项目的模板。插件向导位于“帮助”菜单下,为开发者提供可选的插件类型。只需选择合适的类型,输入项目名称,然后单击“确定”。RenderMonkey IDE 将在 {RenderMonkey Install Dir}/SDK/Projects/ 目录中自动生成 Visual Studio 2005 的源代码和项目文件。或者,您可以使用 RenderMonkey 支持的每种插件类型的一个示例(位于 SDK/Examples 目录中),然后就可以创建自己的插件了。
插件类型
![]() | IRmPlugIn |
- IRmEditorPlugIn 一个节点编辑器插件。主应用程序使用此插件来编辑此插件支持的节点。
- IRmImporterPlugIn 实现此接口的插件用于主应用程序将外部格式的数据导入运行时数据库。
- IRmExporterPlugIn 实现此接口的插件用于主应用程序将运行时数据库中的数据导出为外部格式。
- IRmGeometryLoaderPlugIn 此插件类型由主应用程序使用,用于将受支持文件格式的几何体数据导入 RenderMonkey 模型数据节点。
- IRmTextureLoaderPlugIn 此插件类型由主应用程序使用,用于将受支持文件格式的纹理数据导入 RenderMonkey 纹理数据节点。
- IRmGeneratorPlugIn 此插件类型由主应用程序用于为 RenderMonkey 节点生成数据。
SDK 文档
- SDK 概述和项目设置
- GDC 2004 RenderMonkey SDK 演示文稿: 使用 RenderMonkey SDK 进行自定义组件开发
标量编辑器
自定义颜色编辑器
HLSL 着色器编辑器
纹理对象编辑器