概述
Polygon Cruncher SDK提供完整的3D引擎,包括完整的3D场景图。它包括:
Polygon Cruncher优化算法
大多数3D文件格式的读写功能,包括(Fbx,Cinema 4D, 3ds, lxo, collada, wavefront, vrml, sketchup…)
场景层次
UVs、顶点颜色、法线信息
材料信息
一套强大的3D功能,如网格清理、混淆点焊接、基于材料的网格塌陷或其他…
在内存需求方面非常紧凑,还允许内存分配回调
通过西门子JT SDK生成JT文件的LOD。
SDK可用作C++库:
对于带有64位VisualStudio(2010年至2017年)的Windows。
对于带有Xcode的MacOS。
对于Linux(CentOS/GCC4)
API调用非常容易实现,您可以快速将PolygonCruncher强大的优化功能集成到您的应用程序中。
应用领域涵盖了任何需要LOD模型的3D领域:视频游戏、CAD、实时可视化、3D建模、3D演示…
Polygon Cruncher SDK提供了自1999年以来开发的强大技术。它被多家公司(Autodesk、Anark、Act-3D、FMC Konsberg、Ka Ra…)在许多不同的应用环境中使用。
MooTools在集成阶段提供了紧密的支持,使集成变得快速和简单。
SDK示例
此示例应用程序显示了DirectX 9应用程序下的SDK的一些功能。它适用于x32和x64位Windows平台。
您需要在计算机上安装DirectX9才能运行此示例。
示例加载默认网格并对其进行优化。
加载对象(O key)
您可以加载wavefront obj、directx或pOpt文件。
如果加载Obj文件或directx文件,将加载并优化网格。然后将其转换为动态网格。这演示了下面管道的左侧部分。
如果加载popt文件,则示例将加载预计算的优化网格。没有优化步骤,动态网格直接可用。这说明了下面管道的正确部分。
保存预先计算的优化网格(SKey)
此选项优化加载的网格,并将优化保存到位于Mesh目录中的popt文件中。
示例:如果网格为furniture.x,则furniture.popt将保存在furniture目录中。
计算之后,可以使用O键加载此文件。只需选择popt文件。
此popt文件将优化保存为动态网格。加载时,它删除了繁重的计算过程步骤,并允许用户使用适当的优化设置直接获取动态网格。
SDK优化管道
PolygonCruncher SDK管道
左侧显示一个优化管道,其中用户与优化选项关联。他决定是否保留纹理,保护材质(…),并定义优化其三维资源的最合适设置。在选择了优化设置并执行了三维简化之后,多分辨率网格允许用户实时选择适当的LOD(细节级别)来渲染网格。Polygon Cruncher软件或ProOptimizer 3ds Max插件就是这种SDK集成的一个很好的例子。
右侧显示了不同的方法。在这种情况下,调用者向SDK提供一个三维网格以及预计算的优化数据。此数据以前是使用网格最合适的优化设置创建的。利用这些信息,去除优化步骤,实时运行SDK:立即生成动态多分辨率网格,实时调整LOD。当您希望在游戏或实时可视化环境中使用SDK提供预先优化的3D库时,这是理想的模式。
如果您购买包含I/O功能的SDK版本,您将能够读取大多数常见的3D格式(SketchUp、LightWave、Collada、Wavefront…)。加载后,您可以优化此三维资源或将其转换为自己的三维格式。也可以将您的3D资源保存为支持的3D格式之一。
优化实施
实施很简单。唯一要做的就是将您的3D结构转换为/从SDK 3D结构转换。
该算法适用于N边多边形网格。它返回带有纹理、顶点颜色和法线贴图的三角形网格,具体取决于提供的信息。
初始化
根据需要,可以将单个网格或整个场景传输到优化器。每个网格只能包含多边形信息或更复杂的数据集,其中可以包括:
一个或多个UV纹理通道。
一个或多个VC顶点颜色通道。
指定的正常信道。
选择信息,用于控制几何图形的可优化部分。
您还可以定义优化模式。所有Polygon Cruncher优化功能都可以通过API获得,例如保护边界、排除边界模式或锁定点、支持紧凑面模式…
执行转换后,优化器SDK将执行初始化步骤。在这一阶段,将生成一个多分辨率网格,以便在接下来的步骤中进行实时优化。
优化循环和终止
在执行初始化之后,您通常会给用户一个机会,通过一个滑块和一个视觉反馈来选择适当的优化比率。由于初始化阶段以前计算过任何东西,所以过程非常快,您可以提供实时反馈。在这一步中,您只需将3D SDK结构转换为您自己的3D结构。
如果应用程序需要,还可以直接指定一个预定义的优化比率,而无需任何交互。
因此,可以优化三维网格或三维场景。
优化序列化
还可以为网格准备整齐、完美的优化,然后在应用程序端保存优化数据。然后可以直接生成多分辨率网格,避免初始化步骤。可以用所有需要的通道(纹理、顶点颜色、法线)保存完整的优化数据,然后只使用一些通道(即纹理)。
按照该模式,多分辨率网格初始化及其在适当分辨率下的使用将以最低的内存要求实时执行。优化比率可以根据需要进行调整,就像前面描述的那样。例如,当对象离相机较远时,可以使用低分辨率,当对象靠近相机时,可以使用高分辨率网格。