Unity URP半透明材质实战:从原理到实现角色紧身衣透光效果
最近在整理3D模型资源时发现很多开发者对如何为角色模型添加和调试“半透明”材质效果感到棘手尤其是在实现类似“紧身衣”这种带有透视感的服装材质时常常遇到渲染穿帮、光照不自然或性能开销大的问题。这类材质在游戏角色、虚拟展示等场景中需求很高但网上教程往往只讲基础透明缺乏从原理到项目落地的闭环指南。本文将以一个虚拟的“mlischacha角色模型半透明紧身衣”效果为技术切入点系统拆解在Blender和Unity两大主流工具中实现高质量半透明材质Transparent/Translucent Shader的完整工作流。内容涵盖基础概念、节点搭建、参数详解、性能优化及常见坑点排查附带可直接复用的着色器代码和配置目标是让读者看完就能在自己的项目中实现可控、美观的半透明服装效果。1. 半透明材质核心概念与渲染原理在开始实操前必须厘清几个关键概念这决定了后续技术方案的选择和效果上限。1.1 透明 vs 半透明 vs 透光本质区别很多开发者会混淆这几种效果导致选错着色器模型。透明Transparent像玻璃一样光线可以几乎无阻碍地穿过我们能清晰地看到背后的物体。在渲染中通常使用Alpha Blending方式关闭深度写入ZWrite按透明度混合颜色。这是最基础的透明效果。半透明Translucent光线能部分穿过材质但会在材质内部发生散射我们看不到清晰的背后景象而是看到材质本身被“照亮”的效果。例如磨砂玻璃、蜡烛、皮肤或本文关注的薄织物紧身衣。这通常需要更复杂的着色器模型如Translucent Shading Model。透光Subsurface Scattering, SSS这是半透明的一种特殊且更复杂的情况指光线射入材质表面后在内部经过多次散射再从另一点射出的现象。常用于表现皮肤、玉石、牛奶等。计算开销大。对于“紧身衣”效果我们追求的是半透明Translucent即能看到衣物下隐约的肢体轮廓但衣物本身的布料质感如纹理、褶皱依然保留并且能对光照产生反应。1.2 渲染管线与着色器选择你的项目所使用的渲染管线直接决定了可用工具和实现复杂度。内置渲染管线Built-inUnity传统管线。实现半透明主要依赖标准着色器Standard Shader中的Rendering Mode设置为Transparent或Fade并结合调整Albedo颜色的Alpha通道。但对于真正的次表面散射类半透明需要自己编写Surface Shader或使用Asset Store的资源。通用渲染管线URP现代轻量级可编程管线。它提供了预设的Lit材质并在Surface Type中提供了Transparent选项。更重要的是URP的Lit着色器直接内置了Translucency输入模块可以更方便地模拟光线穿透薄物体的效果是实现本文效果的推荐管线。高清渲染管线HDRP面向高端图形保真度。它拥有更物理准确的Lit材质和强大的Diffusion Profile来模拟复杂的次表面散射功能强大但配置复杂对硬件要求高。结论对于大多数独立开发者和移动端项目使用URP并利用其内置的Translucency功能是平衡效果与性能的最佳选择。下文将主要基于URP进行讲解。2. 环境准备与项目设置在开始制作前请确保你的软件环境与项目设置正确。2.1 软件与版本说明Blender: 推荐使用 3.0 及以上版本。本文示例基于 3.6 LTS。Unity: 推荐使用 2021.3 LTS 或 2022.3 LTS 版本。必须确保创建或转换项目时选择了 Universal Render Pipeline (URP)。3D模型: 你需要一个角色模型以及为其单独制作的紧身衣网格或贴图。模型需包含完整的UV和法线信息。2.2 创建URP项目与基础配置新建项目打开Unity Hub创建新项目模板选择“Universal RP”如果没有请先通过Unity安装器安装URP包。导入模型将你的角色模型如mlischacha.fbx和紧身衣模型或包含衣物部分的模型导入项目的Assets/Models文件夹。配置URP资产在Assets/Settings文件夹下找到UniversalRP-HighQuality资产或其他类似名称双击打开。在Renderer List中确保至少有一个Renderer如Universal Renderer。这对于后期使用渲染特性如深度纹理至关重要。2.3 模型与材质导入检查在Unity中选中导入的模型文件在Inspector面板检查Model页签确保Normals计算方式正确通常为Import或Calculate。Materials页签材质创建模式建议选择Via Material Import这样Blender中关联的材质会被提取。如果紧身衣是模型的一部分可能需要在此处或之后单独为其分配材质。3. 在Blender中准备模型与基础材质在Blender中完成基础的材质区分和UV工作能为Unity中的精细调整打下坚实基础。3.1 材质分配与UV拆分在Blender中打开你的角色模型。选中紧身衣部分的网格可以使用编辑模式下的面选择或关联的顶点组。在材质属性面板为紧身衣部分新建一个独立的材质命名为BodySuit_Translucent。这将确保在导入Unity后这部分网格拥有独立的材质球方便我们单独控制半透明效果。UV展开确保紧身衣部分有良好的UV布局。半透明效果可能会用到法线贴图、厚度图等都需要正确的UV。3.2 输出关键纹理贴图虽然核心的半透明效果主要在Unity着色器中调节但我们可以从Blender输出一些基础贴图供Unity使用。基础颜色贴图 (Albedo)包含衣物的颜色和图案。法线贴图 (Normal)表现衣物的织物纹理和褶皱细节。可以在Blender的着色器编辑器中用法线节点烘焙或使用外部软件生成。粗糙度贴图 (Roughness)定义衣物表面的光滑程度。织物通常有较高的粗糙度。环境光遮蔽贴图 (AO)增强细节和立体感。将这些贴图从Blender中烘焙或导出为PNG或TGA格式放入Unity项目的Assets/Textures文件夹。4. 在Unity URP中实现半透明紧身衣材质这是本文的核心环节。我们将使用URP的Lit着色器来构建材质。4.1 创建URP Lit材质并设置表面类型在Unity项目窗口中右键Assets/Materials文件夹选择Create Material命名为Mat_BodySuit_Translucent。选中新建的材质球在Inspector面板顶部着色器选择Universal Render Pipeline/Lit。关键设置在Surface Options区域Surface Type: 从默认的Opaque改为Transparent。这是启用透明混合的第一步。Blending Mode: 选择Alpha。Premultiply和Additive适用于特殊效果Alpha是最通用的半透明混合模式。Depth Write: 通常设置为Off。关闭深度写入可以防止透明物体自身遮挡但可能引起排序问题后面会讲解决方案。Depth Test: 保持Less Equal。4.2 配置基础材质属性在Surface Inputs区域赋予材质基础外观。Base Map: 拖入从Blender导出的基础颜色贴图。调整Base Color可以整体染色。Alpha这是控制整体透明度的总开关。将Base Color右侧的AAlpha值调低例如0.5即可看到模型变透明。但此时只是均匀透明没有“透光”感。Normal Map: 拖入法线贴图并设置纹理类型为Normal map。Metallic: 设置为0衣物不是金属。Smoothness: 通过拖入粗糙度贴图到Smoothness槽位或直接设置一个较低的值如0.2-0.3来模拟织物的哑光感。4.3 激活并配置透光Translucency效果这是实现“紧身衣”透出皮肤感觉的关键。在材质Inspector面板找到Advanced Options区域并展开。勾选Transmission旁的复选框以启用透光效果。展开Transmission子项进行配置Thickness Map一张控制模型各部位“厚度”的贴图。越薄的地方透光越强。你可以使用一张灰度图白色代表厚黑色代表薄。例如紧身衣在关节、胸部等拉伸处可以画得更薄更黑。如果没有可以留空则使用统一的厚度值。Thickness统一厚度值。默认约0.5调小此值如0.1-0.3可以增强透光效果模拟薄织物。Transmission Color透过去的光的颜色。设置为皮肤或衣物的底色如浅肉色、衣物固有色效果会更自然。纯白色会让透光显得像自发光。Attenuation Distance光线在材质内部传播并衰减的距离。值越小光线穿透得越浅透光区域越集中在光源直射点附近。对于紧身衣可以设置一个中等值如0.5-1.0。4.4 使用细节贴图增强质感为了让紧身衣的织物感更强可以使用URP的细节贴图功能。在Surface Inputs区域底部勾选Use Detail Mask如果需要局部混合或直接使用细节贴图。准备一张高频率的织物纹理作为Detail MapRGBA通道可分别存储Albedo细节和法线细节。将贴图拖入并调整Detail Albedo Scale和Detail Normal Scale来控制细节的强度使其在近距离观察时更有质感。完成以上步骤后将Mat_BodySuit_Translucent材质拖拽到场景中角色模型的紧身衣部分网格上。你应该能看到一个具有透光感的半透明紧身衣效果并且它会响应场景中的灯光。5. 高级调整与常见问题排查即使效果初步呈现可能还会遇到各种问题。以下是优化和排错指南。5.1 渲染排序与深度问题透明物体渲染顺序依赖其与摄像机的距离可能导致错误的遮挡。问题紧身衣的一部分穿透了身体或身体的一部分穿透了紧身衣。解决方案调整渲染队列Render Queue在材质的Advanced Options中手动设置Priority即Render Queue。数值小的先渲染。通常不透明物体队列是2000透明物体是3000。确保身体的材质队列如果不透明小于紧身衣的队列。你可以将紧身衣材质队列设为3001。使用独立的渲染通道更稳健的方法是为角色创建一个简单的着色器变体或使用脚本控制渲染顺序。保持网格闭合确保紧身衣网格是闭合的没有法线向内的面否则从内部看会穿帮。5.2 透光效果不自然或过强/过弱透光效果全无检查是否勾选了Transmission以及场景中是否有实时光源如Directional Light, Point Light照射到模型。透光效果依赖实时光照计算。透光颜色太白调整Transmission Color为更接近皮肤或衣物底色的颜色。透光区域太散减小Attenuation Distance值使透光更集中在受光点。整体像塑料检查Smoothness是否过高降低它并配合法线贴图增加织物粗糙感。同时确认Metallic为0。5.3 性能优化建议半透明和透光效果会增加GPU负担在移动端或低配设备上需谨慎。减少使用范围仅在视觉焦点部位如躯干使用高质量半透明四肢远端可使用简化版本或不透明材质。简化着色器如果效果要求不高可以不用Transmission仅用Surface Type: Transparent配合一张渐变透明贴图来模拟。使用LOD细节层次为角色模型设置LOD Group在远距离时使用不包含复杂半透明材质的低模版本。控制实时灯光数量透光效果依赖实时灯光尽量减少场景中影响角色的实时点光源/聚光灯数量。5.4 制作厚度贴图Thickness Map的简易方法如果没有ZBrush等雕刻软件可以在Blender中快速生成厚度图的近似值复制一份紧身衣网格使用Solidify修改器为其增加一个极薄的厚度创建出一个“外壳”。将原始网格内壳和外壳分别赋予不同的纯色材质如内黑外白。在渲染属性中设置使用Cycles渲染器并启用Freestyle轮廓线渲染。通过调整Freestyle的线条渲染可以渲染出一张基于网格内外距离的灰度图将其作为厚度图的参考。更专业的做法是使用烘焙中的“距离”或“环境光遮蔽”到UV空间。6. 扩展编写自定义URP着色器实现更多控制如果URP Lit的内置功能仍不满足需求例如需要基于视角变化的透明度可以编写自定义着色器。6.1 创建自定义Unlit着色器示例以下是一个简单的自定义着色器实现基于法线方向与视角点积的边缘半透明效果类似菲涅尔效应使衣物边缘更透明。在项目中创建文件CustomBodySuit.shader。写入以下代码// CustomBodySuit.shader Shader Universal Render Pipeline/Custom/BodySuit Translucent { Properties { _BaseColor (Base Color, Color) (1,1,1,1) _BaseMap (Base Map, 2D) white {} _EdgeTransparency (Edge Transparency, Range(0, 5)) 1 _CenterTransparency (Center Transparency, Range(0, 1)) 0.5 } SubShader { Tags {RenderTypeTransparent QueueTransparent RenderPipelineUniversalPipeline} LOD 100 Blend SrcAlpha OneMinusSrcAlpha ZWrite Off Pass { HLSLPROGRAM #pragma vertex vert #pragma fragment frag #include Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl struct Attributes { float4 positionOS : POSITION; float2 uv : TEXCOORD0; float3 normalOS : NORMAL; }; struct Varyings { float4 positionHCS : SV_POSITION; float2 uv : TEXCOORD0; float3 normalWS : TEXCOORD1; float3 viewDirWS : TEXCOORD2; }; TEXTURE2D(_BaseMap); SAMPLER(sampler_BaseMap); CBUFFER_START(UnityPerMaterial) float4 _BaseMap_ST; half4 _BaseColor; half _EdgeTransparency; half _CenterTransparency; CBUFFER_END Varyings vert(Attributes IN) { Varyings OUT; VertexPositionInputs positionInputs GetVertexPositionInputs(IN.positionOS.xyz); OUT.positionHCS positionInputs.positionCS; OUT.uv TRANSFORM_TEX(IN.uv, _BaseMap); VertexNormalInputs normalInputs GetVertexNormalInputs(IN.normalOS); OUT.normalWS normalInputs.normalWS; OUT.viewDirWS GetWorldSpaceViewDir(positionInputs.positionWS); return OUT; } half4 frag(Varyings IN) : SV_Target { half4 baseColor SAMPLE_TEXTURE2D(_BaseMap, sampler_BaseMap, IN.uv) * _BaseColor; // 计算法线与视角方向的点积用于边缘透明度 half NdotV 1 - saturate(dot(normalize(IN.normalWS), normalize(IN.viewDirWS))); // 应用幂函数控制边缘过渡 half edgeFactor pow(NdotV, _EdgeTransparency); // 结合中心透明度 half finalAlpha lerp(_CenterTransparency, 1.0, edgeFactor); baseColor.a * finalAlpha; return baseColor; } ENDHLSL } } }在Unity中基于此着色器创建一个新材质并调整Edge Transparency和Center Transparency参数可以实现边缘透、中心实的效果模拟更动态的半透明视觉。7. 项目实践与检查清单在将半透明角色投入实际项目前请对照此清单进行检查和优化。7.1 视觉检查清单[ ]遮挡排序旋转摄像机确保身体和衣物在不同角度下没有错误的穿插。[ ]光照反应移动场景光源观察透光效果是否随光源位置自然变化。[ ]多角度观察确保在角色背面、侧面等角度材质效果依然合理。[ ]动画测试在角色的动画片段如走、跑、跳中预览检查动态下材质是否有闪烁或突变。7.2 性能检查清单[ ]统计窗口在Game视图下打开Stats面板检查Batches和SetPass Calls是否在可接受范围。一个复杂的半透明材质可能会增加Draw Call。[ ]纹理尺寸确认所有使用的贴图基础色、法线、厚度图尺寸合理如1024x1024或512x512无过度浪费。[ ]平台验证在目标发布平台如Android/iOS的构建中或使用对应平台的模拟器进行性能测试。7.3 资源管理最佳实践材质实例化如果场景中有多个同类角色使用材质实例Material Instances来共享同一着色器但微调颜色等参数以减少Shader变体数量。纹理图集如果角色有多套服装考虑将多张小型纹理合并到一张大图集中减少纹理采样次数。着色器变体剥离在URP资产配置中可以设置剥离未使用的着色器变体以减少构建大小和运行时内存。实现一个高质量的角色半透明紧身衣材质是美学追求与技术实现相结合的过程。从理解透明、半透明、透光的物理区别开始选择正确的渲染管线URP和着色器模型Lit with Transmission是成功的一半。另一半在于精细的调整厚度图控制透光的区域差异透光颜色影响视觉冷暖衰减距离决定光线的渗透深度。同时永远不要忽视渲染排序这个“隐形杀手”它往往比着色器本身更能破坏视觉效果。对于性能敏感的项目时刻牢记优化准则按需使用、简化计算、善用LOD。当内置功能无法满足独特的艺术需求时自定义着色器提供了终极的灵活性例如实现基于视角或深度的透明度变化。这套工作流不仅适用于游戏角色也可扩展至任何需要模拟薄层透光效果的场景如窗帘、旗帜、树叶等。掌握它你就能在虚拟世界中更自由地塑造光的形态与质感。

相关新闻

生态安全格局分析实战:ArcGIS Pro、InVEST与Python自动化工作流搭建

生态安全格局分析实战:ArcGIS Pro、InVEST与Python自动化工作流搭建

这类工具组合最值得先看的不是功能列表,而是能不能在普通电脑上把整个流程串起来,从数据准备、模型运行到结果出图,中间不卡壳。生态安全格局分析听起来专业,但核心就是利用 InVEST 模型,在 ArcGIS Pro 里处理空间数据…

2026/10/14 3:26:36 阅读更多 →
flutter_login_signup完全解析:如何用Flutter快速构建精美登录注册界面

flutter_login_signup完全解析:如何用Flutter快速构建精美登录注册界面

flutter_login_signup完全解析:如何用Flutter快速构建精美登录注册界面 【免费下载链接】flutter_login_signup Basic login and signup screen designed in flutter 项目地址: https://gitcode.com/gh_mirrors/fl/flutter_login_signup flutter_login_signu…

2026/10/5 16:06:52 阅读更多 →
ArcGIS Pro与InVEST模型实战:生态安全格局构建全流程解析

ArcGIS Pro与InVEST模型实战:生态安全格局构建全流程解析

最近在做一个生态安全格局相关的项目,从数据准备、模型运算到结果可视化,整个过程涉及ArcGIS Pro、Python脚本和InVEST模型,网上资料要么太零散,要么只讲理论。为了让大家少走弯路,我把自己踩过的坑和完整的操作流程整…

2026/9/30 2:15:21 阅读更多 →

最新新闻

Burp suite learning

Burp suite learning

今天学习怎样使用burp suite 进行抓包操作。这是简易的流程:当你安装了burp suite 并且完成了JAVA环境搭建和证书的申请后,启动burp,并且将浏览器的代理调成burp,开启拦截。这样一来,浏览器所运行的包都会被你拦截。这引发出两个问…

2026/10/14 3:26:35 阅读更多 →
梯控门禁控制器参数解析与智能场景落地指南

梯控门禁控制器参数解析与智能场景落地指南

在智慧楼宇的改造项目中,电梯控制系统往往是最容易被忽视却又至关重要的环节。很多项目初期只关注门禁或监控,等到实际运营时才发现,早晚高峰的梯控响应延迟、老旧线路的电压波动导致设备重启,甚至是消防联动时的逻辑混乱&#xf…

2026/10/14 3:26:35 阅读更多 →
用华为云码道开发番茄钟:让AI完成计时逻辑、状态切换与界面交互

用华为云码道开发番茄钟:让AI完成计时逻辑、状态切换与界面交互

用华为云码道开发番茄钟:让AI完成计时逻辑、状态切换与界面交互 深圳技术大学 - 开源代码托管,代码协作 - AtomGit 番茄钟专注管理工具:基于原生 HTML/CSS/JavaScript 的专注计时管理项目 - AtomGit 很多网页小工具看起来功能并不复杂,但真正开始编写…

2026/10/14 3:26:35 阅读更多 →
Python aiida-fans 包实战案例与常见错误

Python aiida-fans 包实战案例与常见错误

1. 引言aiida-fans 是一个围绕 AiiDA 工作流框架构建的 Python 扩展包,旨在为材料科学、计算化学和物理模拟领域的科研人员提供更便捷的数据管理、工作流编排和计算任务调度能力。它通过封装 AiiDA 的核心接口,让用户可以用更少的代码完成复杂的计算流程…

2026/10/14 3:26:35 阅读更多 →
双馈风机次同步振荡建模与抑制策略解析

双馈风机次同步振荡建模与抑制策略解析

1. 项目背景与核心价值双馈感应发电机(DFIG)作为现代风电场的绝对主力机型,凭借其变速恒频的技术优势占据了全球风电市场70%以上的份额。但在实际并网运行中,我们经常遇到一个棘手问题——当风机通过串联补偿输电线路接入电网时&a…

2026/10/14 3:26:35 阅读更多 →
MySQL 从入门到实战(04):SQL 基础与一条查询的执行流程

MySQL 从入门到实战(04):SQL 基础与一条查询的执行流程

SQL 基础与执行流程 本篇所有 SQL 在本机 MySQL 8.0.46 实测。 核心问题:你敲下回车后,MySQL 到底做了什么? 理解这条链路,才知道索引该加在哪、为什么有些 SQL 慢。 一、一条 SQL 的完整生命周期 #mermaid-svg-o1uI88gGmZdgQ5sW{font-family:"trebuchet ms",ver…

2026/10/14 3:25:35 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 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/13 22:01:27 阅读更多 →
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/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →