# Dagor LODs and Collisions Generator
## 安装
[安装脚本](installation.md) 按照提供的说明进行作。
```{important}
此脚本需要 3ds Max 2018 或更高版本才能运行。
```
## 概述
与 MultiRes 或 ProOptimizer 等工具相比,此脚本提供了卓越的三角形优化。它只需按一下按钮即可简化流程。该脚本可以更准确地保留纹理坐标和纹理坐标边缘。此外,高级功能支持高质量的碰撞生成和为 Dagor 引擎量身定制的特定设置。
### 优化质量比较
下图说明了优化质量的差异:
### 关键优势
1. **More Accurate Contour Representation**. 优化的模型更紧密地遵循原始对象的轮廓。
2. **Increased Segment Density**. 沿半径生成更多的线段,从而产生更精细的网格。
3. **Enhanced Knot Detail Preservation**. 关键细节(如结)被保留,而这些细节在其他优化方法中通常会丢失。
该脚本可以更有效地优化三角形的放置,确保以更高的精度传达对象的形状,即使三角形数量相同。
## 访问 LODs 和 Collisions Generator
1. 导航到 **Gaijin Tools** {bdg-dark-line}`1` **> LOD Generator...** {bdg-dark-line}`2`。这将打开 Dagor LOD 生成器的主窗口。
2. 要验证脚本的版本 {bdg-dark-line}`3`,请前往 **Gaijin Tools > About**。**About**窗口将显示当前版本。定期检查以确保您的脚本是最新的,这一点很重要。
```{note}
确保插件版本至少为 `1.4`。
```
## 使用 LODs 和 Collisions Generator
要打开脚本窗口,请导航至菜单中的 **Gaijin Tools > LOD Generator...**。
### 关键参数和控制
- **Vertex %** {bdg-dark-line}`1`: 定义每个 LOD 中三角形数量减少的百分比(细节级别)。例如,LOD01 将包含原始模型 50% 的三角形,LOD02 将包含 25%,依此类推。
- **Iterations** {bdg-dark-line}`2`: 指定优化算法的迭代次数。迭代次数越多,点放置的质量通常越高。最佳数量 10 是通过实验确定的,但在某些情况下,建议使用最大允许值。
- **Number of LODs:** 指定将创建的 LOD 数量。
- **Engine Optimization Type** {bdg-dark-line}`3`: 允许您为某些任务选择更合适的优化算法。MultiRes 更适合具有激进 LOD 优化的任务。ProOptimizer 在优化设置方面更加灵活。
- **Protect Borders** {bdg-dark-line}`4`: 开放边将从优化过程中排除。这使它们不会失真。
- **Keep UV Bondaries** {bdg-dark-line}`5`: 包含 UV 坐标边的点将从优化中排除。允许您保持边上未扭曲的 UV 坐标不变。
- **Build LODs!** {bdg-dark-line}`6`: 启动生成过程。该脚本可以批量处理所有选定的模型,并为每个模型创建 LOD 或碰撞。
```{important}
**支持的模型类型**。该脚本适用于 **Edit Poly**、**Edit Mesh** 和 **GrowFX** 模型类型。其他模型类型不受支持,可能会导致错误。请注意,如果应用于 LOD 和碰撞的所有修饰符用于生成 LOD 或碰撞的模型,则它们将被删除。
```
此基本功能涵盖 MultiRes 和 ProOptimizer 的使用。对于熟悉这些工具的用户,该脚本应该足以实现最佳结果。要在不损失视觉质量的情况下进行更高级的碰撞生成和进一步优化,请考虑探索下面详述的高级设置。
### 高级选项
1. **加载测试场景:** 加载以下测试场景:
{download}`tree_cocos_nucifera.max <_examples/tree_cocos_nucifera.zip>`.
```{important}
此场景需要 3ds Max 2021 或更高版本。
```
此场景具有应用了 Multi/Sub 材质的复杂对象。正确命名 子材质 至关重要,因为这会影响碰撞的生成。
2. **Material Keyword Filtering:** 在 **Keep Material Name** {bdg-dark-line}`14` 字段中,您可以输入以逗号分隔的关键字,以指定在碰撞生成期间应保留哪些材质。例如,在棕榈树上,您可以排除根和果实,但保留名为 “bark” 的任何内容。 将保留与指定关键字匹配的材质,而所有其他材质及其关联的三角形都将被删除。
**示例:** 突出显示棕榈树。在{bdg-dark-line}`14` 中输入 “bark”。单击按钮 {bdg-dark-line}`6` 运行脚本。
结果将显示所有不必要的三角形(例如,叶子、根、果实)都已从碰撞生成中删除:
可以使用 **Collision Use Name Mask** {bdg-dark-line}`9` 复选框来关闭此筛选。
```{warning}
如果对象没有 Multi/Sub Material,脚本将发出警告并跳过处理。在这种情况下,不会进行任何更改。
```
3. **Collision Height Cutoff:** 启用 **Collision Cut FromTop** {bdg-dark-line}`8` 复选框允许您在指定高度处截断碰撞网格,该高度在 **Collision Cut Height** {bdg-dark-line}`13` 参数中设置。这对于通过删除碰撞网格中不必要的上部部分(例如角色无法与之交互的树枝或树干)来优化性能非常有用。
**示例:** 高亮显示棕榈树并在参数 {bdg-dark-line}`13` 中设置所需的截止高度。再次使用按钮 {bdg-dark-line}`6` 运行脚本以查看结果:
4. **Additional Options:**
- **Collision Generation** {bdg-dark-line}`7`: 启用或禁用碰撞生成。
- 自定义属性允许将默认自定义对象属性替换为字段 **LODs Custom Properties** {bdg-dark-line}`15`(LOD)和 ***Collision Custom Properties** {bdg-dark-line}`16` 中指定的属性。
- **Collision Remove Small Parts** {bdg-dark-line}`10` 和 **Collision Part Size %** {bdg-dark-line}`12`。 此功能将允许根据对象的边界框大小删除对象的小非必要部分(例如,小树枝或碎屑)。这将有助于优化 LOD 和碰撞。
### Support
- **Open Local Documentation** {bdg-dark-line}`18`: 提供对本文的访问。
- **Contact with Developer** {bdg-dark-line}`19`: 提供对开发人员 Web 页的访问。