Unity性能优化利器:Poly Few自动减面与LOD生成实战指南
1. 项目概述为什么我们需要Poly Few在Unity项目开发的后期尤其是涉及到开放世界、大型场景或者移动平台时性能优化往往会成为压垮骆驼的最后一根稻草。我经历过不止一个项目在编辑器里跑得好好的一打包到真机上就帧率暴跌发热严重。排查下来十有八九问题都出在模型上——面数太高了。美术同学为了追求极致的视觉效果一个角色模型动辄几万甚至十几万个三角面当屏幕上同时出现几十个这样的角色时GPU的绘制调用Draw Call和顶点处理压力就会瞬间爆表。这时候LODLevel of Detail细节级别技术就成了我们的救命稻草。它的核心思想很简单距离摄像机远的模型玩家根本看不清细节用高精度模型纯属浪费性能不如用一个简化版的低模来渲染。Unity原生就提供了LOD Group组件来管理这套系统但问题在于创建这些不同精度的LOD模型本身是一个极其繁琐和耗时的过程。传统流程需要美术人员回到3D建模软件如Maya、Blender中手动为每个高模创建中模、低模甚至是一个面片广告牌Billboard。这个过程不仅重复劳动量大而且很难保证不同LOD级别之间模型外观的连贯性切换时容易出现“模型跳跃”Pop的视觉瑕疵。Poly Few的出现就是为了把开发者从这个泥潭里拉出来。它是一个Unity编辑器插件核心功能就两个自动减面优化和自动生成LOD链。你只需要把高精度模型拖进去设置好目标面数或减面比例它就能在Unity内部自动为你生成一系列从高到低、过渡平滑的LOD模型并一键配置好LOD Group。这不仅仅是省去了来回导出导入的步骤更重要的是它通过算法保证了模型在简化过程中的视觉保真度让性能与视觉质量达到一个最佳的平衡点。2. Poly Few核心功能与工作原理拆解2.1 核心功能一智能网格减面Mesh DecimationPoly Few的基石是其网格减面算法。这可不是简单的删除顶点而是需要智能地判断哪些几何细节对模型外观影响最小优先移除它们。减面算法浅析市面上常见的减面算法有边坍缩Edge Collapse、顶点聚类Vertex Clustering等。Poly Few采用的通常是基于二次误差度量Quadric Error Metrics, QEM的边坍缩算法。我简单解释一下这个听起来很学术的原理想象模型的每个三角面都是一张有弹性的膜顶点是膜的连接点。当我们想合并两个顶点即坍缩一条边时会改变周围所有相关面的形状。QEM算法会为每个顶点计算一个“误差矩阵”这个矩阵记录了如果这个顶点被移动或删除会对周围所有面的形状造成多大的“拉伸”或“扭曲”。每次坍缩时算法都会选择那条“坍缩成本”最低的边也就是对模型整体形状改变最小的边进行操作。注意减面算法并非万能。对于具有清晰硬边Hard Edge或需要保持轮廓的模型如机械模型、建筑纯粹的QEM算法可能会导致边缘圆滑。好的插件会提供“保持边界”、“保护UV接缝”、“保持法线”等选项Poly Few在这些方面通常做得不错。减面参数解析在Poly Few的界面中你会看到几个关键参数减面百分比/目标面数最直接的控制器。你可以选择将模型减少到原面数的50%或者直接指定一个目标比如“将10万面的模型优化到1万面”。保持UV这是重中之重。如果关闭减面后会重新展开UV这意味着你原有的贴图将完全错位必须重新烘焙或绘制。对于已有完整贴图的模型务必勾选此项算法会尽力在减面时保持UV坐标不变。保持法线/顶点色同样重要的属性。法线信息影响光照效果顶点色可能用于特殊着色效果。根据项目需求决定是否保留。网格质量阈值这个参数控制算法对“三角形质量”的容忍度。过度减面可能会产生极度细长或面积几乎为零的退化三角形影响后续的渲染甚至导致错误。适当调高阈值可以过滤掉这些坏面。2.2 核心功能二自动化LOD链生成这是Poly Few真正体现价值的地方。它不仅仅是生成一个低模而是生成一整条LOD链例如LOD0到LOD3。工作流程输入源模型指定你的高精度模型LOD0。定义LOD级别通常你可以设置3-4个LOD级别LOD1 LOD2 LOD3。为每个级别设定一个减面目标。例如LOD1 原面数的50%LOD2 原面数的20%LOD3 原面数的5% 或一个广告牌批量处理与预览Poly Few会按顺序为每个级别执行减面操作并在场景视图中实时显示一个滑杆。拖动滑杆你可以直观地看到模型随着距离或手动调节在不同LOD级别间切换的效果检查是否有明显的视觉跳跃。一键生成与配置满意后点击生成。Poly Few会做以下几件事在项目资产中创建新的网格文件Mesh通常命名会包含“_LOD1”、“_LOD2”等后缀。创建一个新的GameObject为其添加LOD Group组件。将生成的LOD0原模型、LOD1、LOD2等网格分别赋值给LOD Group中对应的Renderers。根据通用的经验值或你的自定义设置配置好每个LOD级别的切换距离例如LOD0在0-10米LOD1在10-30米LOD2在30-100米。实操心得自动生成的LOD切换距离只是一个起点。你一定要把生成好的模型放到实际游戏场景中用游戏摄像机视角去跑一遍观察切换时机是否自然。特别是对于角色模型当它在奔跑时LOD的切换可能会因为距离的快速变化而频繁发生如果设置不当会产生闪烁感。这时就需要手动微调LOD Group组件里的距离阈值。3. 在Unity项目中的完整实操流程下面我以一个具体的例子带你走一遍从导入高模到最终应用Poly Few LOD的完整过程。假设我们有一个名为“Hero_Character.fbx”的高精度角色模型面数约8万。3.1 前期准备与模型检查在动手之前准备工作至关重要。导入模型设置在Project窗口选中FBX文件在Inspector中检查导入设置。模型Model页签确保“Read/Write Enabled”在开发阶段可以勾选方便插件处理但发布前记得为性能考虑取消勾选。检查法线和切线Normals Tangents导入是否正确。材质Materials页签确认材质球和贴图已正确提取或引用。Poly Few处理的是网格数据不破坏材质引用。插件安装从Asset Store购买并导入Poly Few。导入后通常会在菜单栏出现一个“Poly Few”或“Tools/Poly Few”的选项。场景准备将“Hero_Character”模型拖入场景。创建一个简单的平面作为地面并放置一个摄像机。3.2 使用Poly Few进行减面与LOD生成打开Poly Few窗口从菜单栏打开Poly Few。它的界面通常分为几个主要区域模型列表、减面参数设置、LOD级别配置、预览窗口。添加模型将场景中的“Hero_Character”游戏对象拖入Poly Few的模型列表或者通过窗口内的“Add”按钮从场景或项目资产中选择。配置LOD链在LOD设置区域点击“Add LOD Level”来添加新的级别。我们计划创建LOD0原模型、LOD1、LOD2、LOD3广告牌四个级别。选中LOD1在减面参数中将模式设为“By Percentage”输入50。这意味着为LOD1生成一个面数约为4万8万的50%的模型。选中LOD2设置减面比例为20%目标约1.6万面。选中LOD3我们这次选择“Billboard”类型。Poly Few会生成一个始终面向摄像机的简单面片并用模型的图标或简化的纹理来表现面数极低通常2个三角面。高级设置勾选“Preserve UVs”、“Preserve Normals”、“Preserve Vertex Colors”。对于角色模型这些通常都需要保留。在“Quality Threshold”中可以保持默认值如果后续生成网格报错再适当调高。保持边界Keep Borders对于角色服装、武器的边缘需要清晰建议勾选。预览与生成点击“Preview”或类似按钮。Poly Few会快速计算并显示减面后的效果。你可以通过窗口内的距离滑杆模拟摄像机远离时LOD的切换效果。仔细查看特别是从LOD1切换到LOD2时角色的主要轮廓如头部、四肢是否还清晰可辨有没有出现奇怪的形变。确认无误后点击“Generate LODs”。插件会开始处理这可能需要几秒到几分钟取决于模型复杂度和你的电脑性能。处理完成后你会发现在原模型所在的目录下新生成了几个Mesh文件如“Hero_Character_LOD1”、“Hero_Character_LOD2”以及一个Billboard资产。同时场景中会出现一个新的游戏对象名字可能是“Hero_Character_LODGroup”它已经挂好了完整的LOD Group组件。3.3 集成到项目与性能验证替换原始模型在场景中删除最初放置的8万面高模游戏对象。将新生成的“Hero_Character_LODGroup”拖到相应位置。微调LOD切换距离选中LODGroup对象在Inspector中可以看到一个可视化的LOD层次图每个级别用一个矩形条表示宽度代表该级别有效的屏幕相对高度或距离范围。默认的切换距离可能不准确。最可靠的方法是在游戏运行模式下调整。点击Play然后选中LODGroup对象在Scene视图上方选择“LOD Groups”渲染模式。这样在Game视图或Scene视图中不同的LOD级别会显示为不同的颜色如LOD0蓝色LOD1绿色等。控制摄像机移动观察颜色变化。在你觉得模型细节开始因距离而变得难以区分的距离点暂停游戏然后去调整LOD Group中各个级别的百分比阈值直到切换时机看起来自然平滑。性能分析打开Unity的Profiler窗口Window Analysis Profiler。在运行游戏的状态下观察Rendering区域下的SetPass Calls和Batches。在摄像机视野中包含多个角色时对比使用LOD前和使用LOD后的数据。你会明显看到Draw Call的减少。更重要的是观察GPU时间。在移动平台上顶点处理是GPU的主要负担之一。面数的大幅降低会直接减少GPU Vertex Processing的时间从而提升帧率。4. 常见问题、排查技巧与进阶使用4.1 模型减面后出现破面或严重变形这是最常见的问题原因和解决方案如下问题现象可能原因解决方案模型局部出现空洞或撕裂减面算法过度坍缩了边界上的边破坏了网格的流形结构。1.勾选“Keep Borders”保持边界选项。这是首要检查项。2.提高“Quality Threshold”质量阈值。防止生成过于狭长的三角形。3.分部件处理。对于非常复杂的模型如带披风、飘带、复杂发型的人物可以尝试将模型拆分成几个部分身体、头发、武器分别应用减面然后再组合到一个LOD Group下。模型整体萎缩或膨胀比例失调减面过程中没有正确锁定模型的边界框或缩放。1. 确保在减面前模型的缩放值Scale是1,1,1。2. 检查Poly Few设置中是否有“Preserve Volume”或类似选项并开启它。3. 在3D软件中导出FBX时确认单位尺度和轴向统一。UV严重扭曲贴图错乱“Preserve UVs”选项未开启或者模型原始UV本身就存在严重重叠或拉伸。1.必须勾选“Preserve UVs”。2. 对于UV问题严重的原始模型减面也无能为力。需要返回建模软件优化UV布局。减面插件不是UV修复工具。实操心得对于重要的主角或BOSS模型我通常不会一键生成所有LOD。我会单独为LOD1中模进行一次减面生成后仔细检查模型外观特别是面部表情和标志性装备的轮廓。确认无误后再基于这个LOD1模型去生成LOD2低模。这种“链式”处理比直接从LOD0生成LOD2的成功率更高质量也更好。4.2 LOD切换时出现明显的“跳变”或闪烁视觉上的跳变感破坏了沉浸感需要细致调整。检查法线Normals这是导致光影跳变的元凶之一。确保生成LOD时勾选了“Preserve Normals”。如果问题依旧可以尝试在导入设置或Poly Few中选择在减面后“Recalculate Normals”重新计算法线并选择“Angle”或“Area”加权模式让法线在低模上更平滑。调整切换阈值如前所述在游戏运行状态下使用LOD Groups可视化模式精细调整切换距离。让切换发生在玩家不那么容易注意到的地方比如角色转身、进入阴影、或屏幕边缘。考虑LOD过渡Morph Target对于极其重要的模型高级的优化方案会使用顶点动画在相邻两个LOD之间做淡入淡出过渡但这需要额外的着色器支持和性能开销。Poly Few这类自动化工具一般不包含此功能这属于更定制化的方案。4.3 性能提升不明显或Draw Call不降反增这通常不是Poly Few的问题而是使用方式或Unity渲染设置的问题。静态批处理Static Batching与LOD的冲突如果你将带有LOD Group的物体标记为“Static”并开启了静态批处理Unity可能会为同一个物体的不同LOD级别创建不同的批处理反而可能增加Draw Call。对于大量重复使用的、带LOD的物体如树木、石头更推荐使用动态批处理针对小模型或GPU Instancing。对于独特的、重要的模型如主角、NPC可以不参与批处理其LOD带来的减面收益远大于批处理。检查LOD Group的“Crossover”设置在LOD Group组件中有一个“Fade Mode”。如果设置为“Cross Fade”Unity会尝试在相邻LOD间进行淡入淡出这需要渲染两个模型并混合会暂时增加开销。对于移动平台或性能紧张的项目可以设置为“None”或使用更高效的“SpeedTree”模式如果适用。广告牌Billboard的陷阱广告牌虽然面数极少但它通常使用一个独立的、带透明通道的Shader来渲染。如果场景中有大量广告牌且它们没有进行正确的渲染排序由近到远会导致严重的Overdraw过度绘制同样消耗GPU。确保广告牌使用的Shader是高效的并考虑使用 Billboard Atlas广告牌图集来合并绘制。4.4 批量处理与自动化集成当你的项目有成百上千个模型需要优化时手动一个个处理是不可想象的。Poly Few通常提供批处理功能或API。批处理界面在插件窗口中可能有一个“Batch Process”标签页。你可以指定一个包含多个模型的文件夹设置统一的减面规则如所有模型生成LOD1 50% LOD2 15%然后让它自动运行。处理完成后再手动检查一些样本模型的质量。编辑器脚本API对于追求极致自动化的团队可以研究Poly Few是否提供了编辑器脚本接口。你可以编写一个C#编辑器脚本在资源导入后处理Postprocessor中自动调用Poly Few的API为特定类型的模型如所有“Prop_”开头的道具自动生成LOD链。这能将优化流程无缝集成到你的资产管线中。5. 与其他优化手段的协同与权衡Poly Few解决的只是模型几何复杂度的优化它是一个强大的工具但不是性能优化的银弹。在实际项目中它需要与其他优化策略协同工作。与贴图优化结合模型面数降低后贴图分辨率也可以相应降低。一个1万面的模型用一张2048x2048的贴图可能是浪费。可以使用Unity的Texture Import Settings中的“Max Size”或更专业的纹理压缩工具如Crunch压缩来减少纹理内存和带宽占用。这就是所谓的“LOD for Textures”。与遮挡剔除Occlusion Culling结合LOD优化的是可见物体的渲染负载而遮挡剔除是直接不让不可见的物体被渲染。在室内或结构复杂的场景中先使用遮挡剔除去掉视野外的物体再对视野内的物体应用LOD效果叠加。与合批Batching和GPU Instancing的权衡如前所述对于大量相同的小物体草、碎石使用GPU Instancing来绘制数千个完全相同的低模其性能可能优于为每个物体单独计算和切换LOD。此时这些物体可能只需要一个最低级别的LOD模型即可。美术规范的建立工具不能替代规范。最终需要和美术团队共同制定模型面数预算。例如规定主要角色LOD0不超过3万面次要NPC不超过1.5万面环境道具不超过5000面。Poly Few是用来在预算超标时进行“抢救”和自动生成低配版本的利器而不是为无限膨胀的高模擦屁股的万能工具。在我自己的项目实践中Poly Few已经成为中后期性能攻坚阶段的标配工具。它的价值不仅在于节省了巨量的美术人力更在于提供了一种快速迭代和验证的可能性——我可以迅速看到模型简化到某个程度后的实际游戏画面效果从而做出更合理的性能与画质权衡。记住优化的目标从来不是让画面变得多丑而是在玩家几乎感知不到的范围内榨取出每一分可用的性能。Poly Few正是实现这一目标道路上的一把精准而高效的锉刀。

相关新闻

Zotero PDF2zh终极指南:如何免费翻译英文文献并实现专业级双语对照

Zotero PDF2zh终极指南:如何免费翻译英文文献并实现专业级双语对照

Zotero PDF2zh终极指南:如何免费翻译英文文献并实现专业级双语对照 【免费下载链接】zotero-pdf2zh PDF2zh for Zotero | Zotero PDF中文翻译插件 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-pdf2zh Zotero PDF2zh是一款专为学术研究者设计的PDF中…

2026/10/11 19:53:12 阅读更多 →
如何在PS4上轻松管理游戏金手指:GoldHEN金手指管理器完整教程

如何在PS4上轻松管理游戏金手指:GoldHEN金手指管理器完整教程

如何在PS4上轻松管理游戏金手指:GoldHEN金手指管理器完整教程 【免费下载链接】GoldHEN_Cheat_Manager GoldHEN Cheats Manager 项目地址: https://gitcode.com/gh_mirrors/go/GoldHEN_Cheat_Manager 还在为PS4游戏难度过高而烦恼吗?是否曾经卡在…

2026/10/11 20:41:02 阅读更多 →
031、DynamicConvNeXt动态卷积在YOLOv12中的即插即用复现——轻量高效的特征增强模块与实验分析

031、DynamicConvNeXt动态卷积在YOLOv12中的即插即用复现——轻量高效的特征增强模块与实验分析

031、DynamicConvNeXt动态卷积在YOLOv12中的即插即用复现——轻量高效的特征增强模块与实验分析 兄弟们,今天这篇笔记咱们聊聊DynamicConvNeXt。起因是上周有个做工业质检的朋友跟我吐槽,说他的YOLOv12在检测那种表面有轻微划痕的金属件时,小…

2026/9/27 10:38:26 阅读更多 →

最新新闻

HyperQwen 上下文复述加速:lookup 草稿如何把 25k 文档复读推到 381 tok/s

HyperQwen 上下文复述加速:lookup 草稿如何把 25k 文档复读推到 381 tok/s

HyperQwen 上下文复述加速:lookup 草稿如何把 25k 文档复读推到 381 tok/s 【免费下载链接】HyperQwen Serve large Qwen models fast on the GPUs you actually own. Qwen3.8-27B on a single 24 GB card with vLLM: 127 tok/s single-user (381 when the answer q…

2026/10/11 20:40:27 阅读更多 →
Android手势识别全解:从MotionEvent到自定义模板匹配

Android手势识别全解:从MotionEvent到自定义模板匹配

从第一次接触Android开发到现在,我一直觉得手势识别是最能体现“交互感”的一块内容。你辛辛苦苦写了个很酷的交互逻辑,结果用户手指一滑、一按、一捏,完全没反应,那种挫败感真的很难受。反过来,如果把手势识别处理好&…

2026/10/11 20:40:27 阅读更多 →
HTML5语义化标签实战:告别div盘丝洞,构建清晰网页骨架

HTML5语义化标签实战:告别div盘丝洞,构建清晰网页骨架

很多前端新手拿到设计稿,第一反应永远是 div。一个 div 包一层,不够再套一个 div,最后变成了一层叠一层的“div 盘丝洞”。我自己早期也这么写过,直到后来接手一个老项目,光是梳理页面结构就花了整整一下午&#xff0c…

2026/10/11 20:40:27 阅读更多 →
函数调用底层机制解析:从栈帧到调用约定与调试实践

函数调用底层机制解析:从栈帧到调用约定与调试实践

函数调用,听起来是个基础得不能再基础的话题。但这些年我见过不少线上事故和疑难杂症,根子都埋在这一层:代码换了个编译器行为就变了、高并发下偶发崩溃、调试器里看到的变量值莫名其妙被改写、递归一深就栈溢出。这些问题不搞清楚函数调用背…

2026/10/11 20:40:27 阅读更多 →
函数调用底层原理与调试实战:栈帧、调用约定、栈溢出

函数调用底层原理与调试实战:栈帧、调用约定、栈溢出

函数调用的核心原理与技巧,这个话题听起来像教科书里才能翻到的冷知识,但平时排查崩溃、分析性能、甚至看懂一条报错栈信息时,靠的全是它。凡是写过几年代码的人,多少都遇到过这种场景:运行好好的程序换了个编译器版本…

2026/10/11 20:40:27 阅读更多 →
scale_up协议光链路可靠性设计:从感知到自愈的全栈协同

scale_up协议光链路可靠性设计:从感知到自愈的全栈协同

1. 项目概述:光链路可靠性不是“加个备份”就能解决的事“scale_up协议中针对光链路的可靠性设计”——这个标题乍看是通信协议层的技术细节,但背后牵动的是整个高速互连系统的命脉。我接触过多个采用scale_up架构的高性能计算集群项目,其中超…

2026/10/11 20:39:26 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →