Unity ShaderGraph实现镭射材质:从光学原理到赛博朋克实战
1. 项目概述为什么镭射材质值得你投入精力最近在做一个赛博朋克风格的项目角色服装和部分环境装饰需要一种“五彩斑斓的黑”或者说是那种随着视角变化会流动变幻色彩的效果第一时间就想到了镭射材质。这玩意儿在潮玩、科幻游戏和时尚UI里出场率越来越高但网上能找到的教程要么是纯代码Shader劝退新手要么就是效果过于“塑料”缺乏质感。所以我决定用Unity的ShaderGraph这个可视化工具从头到尾走一遍镭射材质的实现流程目标是做出一个既好看又高效、还能灵活调整的材质方案。镭射材质或者说全息材质、彩虹材质它的核心魅力在于其角度依赖的色彩偏移。这不仅仅是加一张彩虹贴图那么简单它模拟的是光线在具有微细周期性结构的表面比如光盘、某些昆虫翅膀或特种薄膜上发生衍射和干涉的物理现象。在游戏里它能瞬间提升道具的“稀有度”视觉反馈比如史诗级装备的光效也能营造未来科技感比如全息显示屏、能量护盾。对于使用Unity的开发者尤其是技术美术或想深入渲染方向的程序员掌握用ShaderGraph实现这类效果是打通“想法”到“画面”的关键一步。它比写代码更直观比用现成Asset更能让你理解底层逻辑。接下来我会拆解这个效果的物理原理然后在ShaderGraph里一步步把它“画”出来最后分享如何集成到Unity项目里并针对性能进行优化。无论你是Shader新手想找个酷炫的切入点还是老手在寻找一个可复用的高质量方案这篇流程都能给你带来直接的参考。2. 核心原理拆解镭射的“光学戏法”如何在Shader中模拟在动手写或者说画Shader之前我们必须搞清楚要模拟什么。镭射视觉效果主要源于衍射光栅原理。你可以想象材质表面有无数条排列极其紧密的平行凹槽每毫米可能有上千条。当白光包含所有颜色波长的光照射上去时不同波长的光会因为凹槽的衍射而偏向不同的角度就像三棱镜分光一样最终在你眼中合成随着视角移动而变化的彩虹色带。对于Shader实现我们不需要真的去模拟物理凹槽而是捕捉并再现其产生的视觉特征。主要有三个关键点2.1 角度依赖性与视角向量这是最核心的一点。颜色的变化必须与相机观察者的视角方向紧密相关。在Shader中我们通过计算视角方向向量View Direction与表面法线Normal之间的关系来驱动颜色变化。简单来说就是当你的眼睛相机相对于物体表面法线的角度发生变化时看到的颜色就应该变。在ShaderGraph里我们可以直接获取View Direction节点并将其与经过处理的法线信息进行点积Dot Product运算得到一个在[-1, 1]或[0, 1]范围内变化的值这个值将成为我们颜色变化的“控制器”。2.2 光谱分离与色彩映射真实的镭射光谱是连续的但在实时渲染中我们通常用离散的色带或渐变色来近似模拟。这就需要我们将上一步得到的那个“控制器”标量值映射到一个彩虹色带上。常用的方法是使用一个Sample Gradient节点预先定义好一个从深色到彩虹色再到深色的渐变梯度。将视角-法线点积的结果经过适当的缩放和偏移作为采样坐标Time参数就能得到当前视角下应显示的颜色。色彩的选择很有讲究饱和度要高明度对比要强才能模拟出那种“闪亮”的感觉。2.3 高动态范围与能量守恒镭射效果之所以抓人眼球还因为它往往伴随着强烈的高光和明暗对比。我们不能只做颜色变化而忽略了光照响应。一个常见的错误是让镭射色完全覆盖了基础的PBR物理渲染光照导致物体看起来像塑料片而不是有质感的实体。正确的做法是将计算出的镭射颜色作为一种特殊的高光反射或自发光的补充叠加到基础的漫反射和镜面反射光照之上。这涉及到混合模式Blend Mode的选择和能量控制确保最终效果既炫酷又不违背基本的物理光照直觉避免看起来“浮”在模型表面。注意很多初学者会直接用一张彩虹贴图加上UV滚动来模拟这种方法虽然简单但其颜色变化只与UV纹理坐标相关与视角无关。当你旋转模型时颜色图案会跟着模型一起转而不是随着你的视角变化而流动这会显得非常假。我们追求的是基于视角的动态变化这是区分真假镭射效果的关键。3. ShaderGraph全流程构建从零搭建镭射着色器理解了原理我们就可以在Unity的ShaderGraph窗口中开干了。这里我以Universal RPURP管线为例因为这是Unity目前和未来的主流。确保你创建的是Shader Graph-URP-Lit Shader Graph这样我们就能基于PBR光照模型进行增强。3.1 创建色彩渐变的核心驱动首先我们需要创建那个基于视角的颜色变化驱动信号。在Master Stack的Vertex阶段获取Position节点世界空间。获取View Direction节点。注意在Fragment阶段直接获取的View Direction可能更方便但为了概念清晰我们先在顶点阶段准备。更常见的做法是在Fragment阶段使用View Direction节点它会自动为你计算每个像素的视角方向。获取Normal节点世界空间。将View Direction和Normal进行归一化Normalize这是关键一步确保点积结果准确。使用点积Dot Product节点连接两者。这个结果我们称为NdotV在相机正对法线时接近1在掠射角时接近0或负值。为了得到一个在[0,1]范围内平滑变化的驱动信号我们通常对NdotV进行Remap。例如将输入范围从 [-1, 1] 重映射到 [0, 1]。但更酷的做法是我们不对其进行Remap而是直接使用NdotV的绝对值Absolute或者将其乘以一个较小的系数如0.5后加上一个偏移0.5得到一个基础信号。然后我们引入一个Time节点将其乘以一个自定义的Speed属性Vector1再与基础信号相加。这样颜色不仅随视角变化还会随时间缓慢流动效果更生动。最终驱动信号 (NdotV * 0.5 0.5) (Time * Speed)这个信号会作为我们采样渐变的“时间轴”。3.2 设计彩虹渐变与采样接下来我们定义彩虹色带。创建一个Gradient属性。在它的渐变编辑器里不要只做简单的红到紫。一个更接近镭射质感的渐变设计是从深色如黑色或深紫色开始 - 快速过渡到高饱和度的蓝色 - 青色 - 绿色 - 黄色 - 红色 - 再回到深紫色或黑色。这样的渐变在循环采样时色相过渡更自然能避免生硬的色彩断层。使用Sample Gradient节点将上一步计算出的“最终驱动信号”连接到它的Time端口。Sample Gradient节点就会根据这个不断变化的信号值输出对应的颜色。此时你可以通过调整Speed属性和Gradient属性实时在预览球上看到颜色随着你移动视角和时间的流动效果。这是ShaderGraph最爽的时刻之一——即时反馈。3.3 与PBR光照模型混合现在我们有了镭射颜色但不能直接把它当成最终输出。我们需要把它合理地混合到光照中。基础色混合一种常见且效果不错的方案是将镭射颜色作为高光反射Specular的增强。找到Master Stack里的Specular输入端口。我们可以将采样得到的镭射颜色与基础的镜面反射颜色可能来自一张贴图或常量进行混合。使用Lerp线性插值节点以镭射颜色的亮度或一个自定义的Intensity强度属性作为Alpha值在基础高光和镭射高光之间插值。这样在镭射效果强的区域它会覆盖原有的高光。自发光路径对于需要自发光的部位如能量核心可以将镭射颜色直接连接到Emission端口。为了控制强度最好将镭射颜色与一个HDR Color属性相乘这样可以突破[0,1]的范围限制实现“过曝”的发光效果更符合能量体的感觉。遮罩控制我们通常不希望整个模型都是镭射效果。可以创建一张Mask Texture遮罩贴图通常是灰度图将其采样后连接到Lerp节点的Alpha通道或者与镭射颜色相乘。这样只有遮罩图中白色的区域才会显示强烈的镭射效果黑色区域则保持原有材质实现了效果的区域化控制。3.4 添加噪声与扰动打破规律性纯数学计算出来的渐变有时会显得过于“完美”和“平滑”缺乏真实世界的不规则感。我们可以引入噪声进行扰动。获取一个Gradient Noise或Simple Noise节点。将物体的世界位置Position或UV坐标缩放后作为噪声的输入。将得到的噪声值范围[0,1]乘以一个很小的系数如0.1然后加到之前计算“最终驱动信号”的步骤中。即最终驱动信号 (NdotV * 0.5 0.5) (Time * Speed) (Noise * 0.1)这样颜色的流动会带有细微的、不规则的扰动看起来更像真实的、有细微瑕疵的镭射薄膜质感立刻提升一个档次。4. 材质参数化与场景集成让效果活起来Shader写好了接下来是如何在Unity编辑器和运行时用好它。4.1 关键参数暴露与调节在ShaderGraph中我们将需要频繁调节的参数创建为Property属性它们会自动出现在材质球Material的Inspector面板上。一个功能完善的镭射材质至少应暴露以下参数_ColorGradient彩虹渐变梯度。这是调节色彩风格的核心。_Speed颜色流动速度。设为0则颜色只随视角变化设为正值则产生自动流动动画。_Intensity镭射效果整体强度。用于控制效果是低调还是高调。_NoiseScale和_NoiseStrength控制噪声纹理的缩放和强度用于调整扰动的细腻度和力度。_MaskTexture遮罩贴图。用于指定镭射效果出现的区域。_EmissionStrength如果走了自发光路径HDR自发光强度。4.2 在场景中应用与调试创建材质将你的ShaderGraph保存后在Project中右键创建Material并选择你刚创建的Shader。调试技巧在Scene视图调试时善用材质球的参数滑动条。快速调节_Speed和_Intensity可以帮你快速找到最适合当前场景氛围的数值。对于角色服装速度可以慢一些强度适中对于UI或特效速度和强度都可以调高以吸引注意力。光照环境适配镭射效果受场景光照影响很大。在偏暗的环境下你需要提高_Intensity或_EmissionStrength来让效果凸显。在明亮的环境下则可能需要适当降低以免过曝。建议在项目典型的光照环境下进行最终参数定型。多模型适配同一个材质用在不同的模型上因为UV和法线不同效果也会有差异。特别是遮罩贴图需要根据每个模型的UV进行单独绘制或调整。对于简单模型也可以考虑使用世界空间坐标或屏幕空间坐标来驱动以达到统一的效果但这可能会牺牲一些与模型本身的贴合度。4.3 性能考量与优化镭射Shader因为涉及视角计算、噪声采样和渐变纹理采样会比标准Lit Shader更耗一些性能。以下是优化点精度选择在ShaderGraph的Graph Inspector中将Precision设置为Half除非你确实需要Full精度。这能在移动端带来显著的性能提升。噪声复杂度Simple Noise比Gradient Noise性能更好。如果效果可以接受优先使用简单噪声。渐变纹理采样Sample Gradient在内部可能会转换为纹理采样。确保你的渐变颜色键Color Keys数量不要过多通常5-7个就足够了过多的键值会增加计算负担。合批与渲染状态检查你的Shader是否影响了动态合批Dynamic Batching。确保Surface Type设置为Opaque除非你需要透明Blend Mode保持Alpha以减少渲染状态切换。如果使用了自发光注意它可能会阻止某些平台的GPU Instancing需要具体测试。针对低端设备降级可以制作一个简化版本例如去掉噪声扰动或者用一张静态的彩虹贴图配合视角计算来模拟作为低画质选项。5. 实战进阶实现边缘光与扫描线增强效果基础镭射效果已经不错但对于追求极致炫酷的赛博朋克或科幻风格我们可以进一步叠加两种非常有效果的技术菲涅尔边缘光和扫描线。5.1 菲涅尔边缘光强化轮廓菲涅尔效应简单说就是物体在边缘视线与表面法线接近90度反射更明显。我们可以用它来在镭射物体的边缘增加一圈光晕。在ShaderGraph中我们已经有NdotV法线与视角点积。菲涅尔效应的近似公式是Fresnel pow(1 - saturate(NdotV), Power)其中Power控制边缘光的宽度。创建一个Power属性例如设为3.0-5.0用上述公式计算出一个边缘强度因子。将这个因子与镭射颜色相乘或者与一个边缘光颜色混合再叠加到最终的Emission上。这样物体的轮廓就会有一圈醒目的镭彩色光晕在暗背景下尤其突出。5.2 添加动态扫描线提升科技感扫描线是科幻UI的经典元素。我们可以在镭射表面叠加一层移动的细线网格。使用Tiling And Offset节点对模型UV进行大幅度的平铺Tiling比如(50, 50)这样就在模型表面生成密集的网格。使用Fraction节点分别获取平铺后UV的小数部分。这个值在[0,1]之间周期变化。用Step节点来生成线条。例如Step(0.95, fraction.xxxx)会生成横向的细线因为当小数部分大于0.95时输出1否则输出0。同理可以生成纵向线。将横向和纵向的线条信号相乘Multiply得到网格信号。让这个网格动起来在平铺之前对UV加一个随时间变化的偏移Offset。Offset Time * ScanSpeed。将生成的网格信号0或1与一个明亮的扫描线颜色相乘再通过一个Lerp或Add节点叠加到最终的输出颜色或自发光上。你可以用另一个噪声或遮罩来控制扫描线出现的区域避免全覆盖显得太乱。5.3 多效果融合与层级控制现在你有了基础镭射色、边缘光、扫描线。直接全部叠加可能会造成视觉混乱。我们需要一个混合控制器。为每种效果基础镭射、边缘光、扫描线分别创建强度参数_BaseIntensity,_FresnelIntensity,_ScanlineIntensity。分别用各自的强度参数去乘各自的效果颜色。最终可以使用Add节点将它们全部加到Emission上或者更精细地使用Lerp在它们之间进行混合。确保主次分明通常基础镭射是主体边缘光用于勾勒轮廓扫描线作为细节点缀。考虑性能扫描线效果相对耗性能可以将其作为一个可开关的Keyword在高端设备上启用低端设备上关闭。6. 常见问题排查与性能优化实录在实际项目集成中你肯定会遇到一些坑。这里记录了几个我踩过以及常见的问题。6.1 效果“穿帮”或闪烁问题描述在模型边缘或特定角度镭射颜色出现突然跳变、闪烁或断开。排查思路检查法线这是最常见的原因。导入的模型法线可能有问题或者没有正确切线空间。在ShaderGraph中尝试将Normal节点的Space从World切换到Tangent或者反之看看哪种更稳定。确保模型导入设置中Normals计算方式正确。检查驱动信号将NdotV的计算结果直接输出为颜色临时连接到Base Color观察其变化是否平滑连续。如果出现硬边可能是模型顶点法线本身不连续硬边模型。对于硬边模型基于顶点的View Direction计算可能在棱角处插值出问题可以考虑在Fragment阶段完全使用像素级别的计算。精度问题在移动端将Precision改为Half有时会引入精度误差导致闪烁。可以尝试在关键计算前将Half精度变量转换为Float。6.2 在移动设备上帧率下降明显问题描述在编辑器里运行流畅打包到手机后帧率骤降。优化步骤简化计算移除或简化噪声扰动。用Simple Noise替代Gradient Noise。减少Sample Gradient的复杂度。减少纹理采样检查是否无意中多次采样了同一张遮罩贴图。使用Sample Texture 2D节点后可以将其输出连接到多个需要的地方而不是重复采样。检查渲染队列和Overdraw使用Frame Debugger工具查看你的镭射材质是否导致了过多的Overdraw透明物体叠加渲染。如果效果允许尽量使用Opaque表面类型。如果必须透明确保模型尽可能不重叠。针对低端机创建简化变体这是最有效的方案。使用Shader Variants或者直接创建两个不同的Shader一个全效果用于PC/主机/高端手机一个去掉扫描线、简化噪声甚至用静态颜色混合用于低端机。6.3 与后期处理Post Processing冲突问题描述开启了Bloom泛光等后期特效后镭射效果过曝或颜色异常。解决方案控制自发光强度连接到Emission端口的值是HDR的。需要精细调整_EmissionStrength使其在Bloom生效后达到你想要的效果而不是一片白。通常需要一个比预期更小的值。使用自定义渲染通道如果镭射效果需要完全不受某些后期特效影响比如特定的颜色分级可以考虑将其渲染到单独的 Renderer Feature 中但这属于进阶用法会显著增加复杂度。测试与调整务必在开启全套项目后期处理Bloom, Tonemapping, Color Grading等的环境下最终调整你的Shader参数。因为Tonemapping色调映射会极大地改变HDR颜色的显示结果。6.4 效果在不同屏幕上看起来不一致问题描述在设计师的校准显示器上很好看在普通笔记本或手机屏幕上饱和度不足或过曝。应对策略sRGB与线性空间确保你的颜色选择是在线性颜色空间下思考的。Unity默认使用线性渲染。你在ShaderGraph里选取的颜色会经过伽马校正。对于高饱和度的镭射色在线性空间下可能需要比sRGB空间下感知到的更浓一些。多设备测试没有捷径。必须在项目目标平台范围低端安卓、iOS、PC内的几种典型设备上进行视觉测试。可能需要为不同性能档位的设备准备不同的强度参数预设。提供美术调节参数将_Intensity、_Saturation可以额外加一个饱和度乘数等参数暴露给美术同学让他们有能力针对不同的发布平台或场景微调。最后我个人最大的体会是Shader开发尤其是这种风格化效果是技术理解原理与艺术调节参数的紧密结合。不要指望一次调好所有参数。最好的工作流程是先搭建出核心算法框架视角驱动颜色得到一个基础可运行的效果然后像画家一样在目标场景和光照下反复、耐心地调整那些暴露出来的参数直到它“感觉对了”。把这个ShaderGraph保存为模板以后遇到类似需求复制出来改改渐变颜色和速度就是又一个全新的高级材质了。

相关新闻

JeecgBoot v3.9.2:AI Skills驱动,一句话生成企业级应用

JeecgBoot v3.9.2:AI Skills驱动,一句话生成企业级应用

1. 项目概述:从“拖拉拽”到“一句话”的范式革命如果你在过去几年里接触过低代码开发,那么对“拖拉拽”这三个字一定不会陌生。无论是搭建一个简单的表单,还是配置一个复杂的审批流,我们习惯了在可视化的设计器里,用鼠…

2026/10/13 21:41:40 阅读更多 →
QQ音乐Python爬虫实战:下载付费音乐封面与歌词信息

QQ音乐Python爬虫实战:下载付费音乐封面与歌词信息

摘要 本文详细介绍如何使用Python编写爬虫程序,从QQ音乐平台抓取付费音乐的封面图片和歌词信息。文章涵盖环境搭建、请求分析、反爬策略应对、数据解析、存储方案以及完整的代码实现。通过本文,读者将掌握针对主流音乐平台的数据采集技术,并理解其中涉及的法律与道德边界。…

2026/10/14 22:16:33 阅读更多 →
StarRocks 3.2 自动生成日期字段实战指南

StarRocks 3.2 自动生成日期字段实战指南

StarRocks 自动生成日期序列 核心 SQL SELECT DATE_FORMAT(DATE_ADD(2025-09-09, INTERVAL generate_series DAY), %Y-%m-%d) AS work_date FROM TABLE(generate_series(0, DATEDIFF(2026-08-08, 2025-09-09)));原理 generate_series(0, 天数差) → 生成 0,1,2,3…N 的整数 D…

2026/10/6 18:52:56 阅读更多 →

最新新闻

AI魔改与AIGC短剧合规指南:红线、审核与实操清单

AI魔改与AIGC短剧合规指南:红线、审核与实操清单

我最近频繁收到做内容的朋友私信,问得最多的就是一句话:AI魔改还能不能做?AI生成的短剧发出去会不会被限流?甚至有人直接甩过来一个通知截图,内容是“该作品因涉及AI生成内容未标注,已限制推荐”。说实话&a…

2026/10/15 5:41:36 阅读更多 →
软件测试四个阶段详解:单元、集成、系统、验收一次讲透

软件测试四个阶段详解:单元、集成、系统、验收一次讲透

刚带团队的时候,我最喜欢问面试者一个问题:“软件测试分几个阶段?”十个人里有八个会回答“单元、集成、系统、验收”,但你再追问一句“为什么这么分?每个阶段的入口和出口标准是什么?”能答清楚的人立刻少…

2026/10/15 5:41:36 阅读更多 →
51单片机温度计实战:DS18B20时序+数码管扫描+EEPROM报警系统

51单片机温度计实战:DS18B20时序+数码管扫描+EEPROM报警系统

简介:本资源是一份面向电子信息工程专业本科生的51单片机课程设计完整文档,聚焦数字温度计系统开发,解决嵌入式基础项目从原理设计、硬件搭建到软件调试的全流程实践问题。文档详述以AT89C51为核心控制器,集成DS18B20单总线温度传…

2026/10/15 5:41:36 阅读更多 →
Redis核心数据结构精讲:从String到Zset的选型与排行榜实战

Redis核心数据结构精讲:从String到Zset的选型与排行榜实战

先说说我为什么想写这篇东西。我见过太多人一开始玩 Redis,把命令背得滚瓜烂熟,SET、GET、LPUSH、SADD 张口就来,可真到业务里要做选型的时候,犹豫了:用户信息到底放 String 还是 Hash?消息队列能不能直接用…

2026/10/15 5:41:36 阅读更多 →
分布式事务设计实战:从最终一致性到七步落地法

分布式事务设计实战:从最终一致性到七步落地法

1. 为什么“分布式事务”不是加个注解就能解决的事“24.分布式事务设计”这个标题,乍看像教科书目录里一个平平无奇的章节编号,但凡在真实系统里踩过坑的人,看到它第一反应不是翻页,而是下意识摸了摸键盘右上角的Esc键——因为过去…

2026/10/15 5:41:36 阅读更多 →
Spring Boot 3迁移MyBatis-Plus:SqlSessionFactory缺失根因与修复

Spring Boot 3迁移MyBatis-Plus:SqlSessionFactory缺失根因与修复

前段时间把一个老服务从Spring Boot 2.7往3.2迁移,顺手把MyBatis也换成MyBatis-Plus,结果启动直接抛了一串异常,核心信息就是Error creating bean with name sqlSessionFactory。但更让人头疼的是,控制台给的提示并不统一——有时…

2026/10/15 5:40:35 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/14 7:53:34 阅读更多 →