UE5虚拟阴影贴图(VSM)队列溢出优化实战:从诊断到解决方案
1. 项目概述当UE5的VSM队列开始“报警”如果你正在用虚幻引擎5捣鼓一个画面绚丽的场景特别是那种植被茂密、地形复杂或者建筑群密集的项目那么你大概率在编辑器输出日志里见过这个让人心头一紧的黄色警告“Virtual Shadow Map (VSM) queue overflow detected...”。这行字一出现往往伴随着帧率的轻微卡顿甚至骤降仿佛引擎在对你喊“兄弟我快撑不住了”这个警告的核心指向了UE5引以为傲的虚拟阴影贴图Virtual Shadow Map VSM系统。简单来说VSM是UE5用来替代传统级联阴影贴图CSM的新一代阴影技术。它的目标是在保证极高阴影质量尤其是远距离和超大规模场景的同时尽可能地节省显存和性能。其原理有点像“按需分配”不是为整个场景预先烘焙好所有阴影而是只计算当前摄像机视野内、且被光源照到的物体所投射的阴影并将这些阴影数据智能地组织在一张巨大的“虚拟”纹理中。而“队列溢出”就发生在这个“按需分配”的调度环节。引擎在渲染每一帧时会收集所有需要更新阴影的物体将它们放入一个处理队列。GPU会从这个队列中取出任务逐个计算并更新VSM。如果某一帧内需要更新阴影的物体太多、太复杂比如摄像机快速掠过一片森林或者有大量动态物体同时进入光源范围这个队列就会被塞满超出其设计容量。此时引擎无法处理所有任务只能丢弃一部分从而导致阴影出现闪烁、缺失或更新延迟同时抛出这个队列溢出的警告。所以这个警告不是一个Bug而是一个性能瓶颈的信号。它告诉你当前场景的复杂度、动态性或者你的设置已经触及了VSM系统实时处理能力的上限。别慌这恰恰是优化工作开始的标志。接下来我将结合几个实战项目中的经验拆解三个从易到难、层层递进的优化方案帮你从根本上搞定这个问题。2. 核心思路理解VSM的工作负载与瓶颈在动手优化之前我们必须先搞清楚VSM把性能“吃”在哪里了。盲目调整参数就像蒙着眼睛修车可能碰巧搞定但更可能让情况恶化。VSM的渲染开销主要分布在两个阶段构建Build和解析Resolve。2.1 构建阶段谁是“队列杀手”构建阶段就是GPU为每个需要阴影的物体计算深度信息并填充到虚拟阴影贴图瓦片Tile的过程。这也是队列溢出的直接原因。以下几个因素是构建开销的主要贡献者绘制调用Draw Calls数量这是最直接的因素。场景中每一个独立的网格体Static Mesh尤其是那些由大量小部件组成的资产如每一片树叶都是一个独立网格的树木都会产生一个或多个绘制调用。镜头一转成千上万个绘制调用涌入队列不溢出才怪。网格体复杂度不仅仅是数量单个网格体的三角形数量面数也至关重要。一个面数高达数万的复杂雕像比一个只有几百面的箱子在构建阴影时要消耗更多的计算资源。动态物体与更新频率静态物体的阴影通常可以缓存但动态物体Movable的阴影每一帧都可能需要重新计算。如果你的场景里有成百上千个动态的、受阴影影响的物体比如一群NPC、飘动的旗帜它们就是队列的常客。阴影距离与分辨率r.Shadow.Virtual.ResolutionLodBias等参数控制着阴影的总体分辨率。分辨率越高需要处理的瓦片数据量就越大构建时间自然越长。过大的阴影距离也会纳入更多物体。实操心得遇到VSM队列警告第一步永远是打开Stat Unit或Stat ShadowVirtual观察GPU的ShadowDepths耗时。如果这一项异常高比如超过2-3ms那么构建阶段就是你的主战场。同时用Stat InitViews查看绘制调用数它会给你一个最直观的“罪犯”名单。2.2 解析阶段隐形的性能消耗解析阶段发生在构建之后负责将构建好的虚拟阴影贴图数据转换成屏幕空间的阴影效果。这个阶段通常不是队列溢出的直接原因但如果设置不当它会持续消耗大量性能挤占本可用于构建的GPU时间间接诱发溢出。解析开销主要受以下影响屏幕阴影分辨率通过r.Shadow.Virtual.ScreenPixelPerTile默认16控制。数值越低屏幕上的阴影质量越高但解析开销呈平方级增长。把它从16降到8性能开销可能增加4倍。接触阴影Contact Shadows这是一种用于增强物体接触边缘阴影细节的后处理效果。它非常消耗性能尤其是在复杂几何体边缘。半透明物体的阴影渲染半透明物体的阴影Cast Volumetric Translucent Shadow开销极大。优化思路很明确先集中火力解决构建阶段的队列溢出问题确保系统能稳定跑起来然后再精细调整解析阶段的参数在性能和视觉质量间找到最佳平衡点。3. 方案一基础优化——削减绘制调用与面数这是最立竿见影的方法旨在从源头上减少涌入VSM队列的任务数量。适合所有项目尤其是中低配平台或场景复杂度超标的初期。3.1 资产层面优化合并、简化与LOD静态网格体合并Merge Actors对于大量重复的、小的静态物体如地面散落的碎石、墙壁上的装饰砖块、森林里的灌木丛使用编辑器的“合并Actor”功能需谨慎或更推荐的在DCC工具如Blender、3ds Max中预先合并网格。将100个石头合并成1-2个网格体绘制调用直接从100降到1对VSM构建的压力骤减。注意合并后会影响剔除Culling效率如果合并的物体分布范围很广可能会降低性能。理想情况是合并空间位置临近的物体。优化网格体面数检查高面数资产使用Stat SceneRendering或在内容浏览器中按三角形数量排序找出场景中的“面数怪兽”。对于中远景物体毫不犹豫地使用减面工具如引擎内置的简化工具或Simplygon创建低模版本。善用LODLevel of Detail确保所有重要的静态网格体都设置了合理的LOD。LOD不仅降低渲染负担同样也降低阴影构建负担。当物体距离摄像机较远时引擎会自动切换到低面数LOD模型来生成阴影。审视植被系统植被是VSM的“头号公敌”。对于UE5的植被系统Foliage降低绘制距离适当减少植被的绘制距离让远处的草和树不再贡献绘制调用。使用植被实例化确保启用实例化渲染。检查植被资产的“网格体”设置确认其支持实例化。分块管理对于超大规模自然场景考虑将地形和植被分成多个子关卡Sublevel进行流式加载避免同一时刻所有植被都处于活动状态。3.2 渲染设置调整针对性降级调整阴影距离在项目设置Project Settings 引擎Engine 渲染Rendering 阴影Shadows中找到“阴影距离Shadow Distance”。适当减小这个值可以显著减少需要处理阴影的物体数量。例如从20000降到15000可能就能砍掉远处一大片森林的阴影计算。降低阴影分辨率偏移通过控制台命令r.Shadow.Virtual.ResolutionLodBias来全局降低VSM的分辨率。默认值为0增加这个值如设为1或2会降低阴影贴图分辨率从而大幅减少构建开销。这是用轻微的阴影模糊换取性能的利器。// 在控制台中输入值越大阴影分辨率越低 r.Shadow.Virtual.ResolutionLodBias 1禁用非关键物体的阴影投射仔细检查场景哪些物体其实根本不需要投射阴影比如微小的装饰品、远离光源的物体、或者玩家根本不会注意到的背景元素。选中这些Actor在细节Details面板中取消勾选“投射阴影Cast Shadow”。这是一个零成本提升性能的好习惯。方案一效果评估实施以上措施后再次运行场景观察Stat Unit中的绘制调用数是否大幅下降ShadowDepths耗时是否减少。通常队列溢出警告的频率会明显降低或消失。如果问题依旧说明瓶颈可能更深需要进入方案二。4. 方案二高级优化——管理动态性与更新策略当静态优化做到头后动态物体和阴影更新策略就成了主要矛盾。这个方案的核心是“智能”和“延迟”减少不必要的实时阴影计算。4.1 区分动态与静态阴影善用“静态”角色很多看起来动态的物体比如随风轻微摇摆的树木、旋转的风车其运动是周期性的、可预测的且不影响游戏玩法。对于这类物体可以考虑将其阴影设置为“静态Static”。你需要确保它们的光照是烘焙的Baked但这意味着它们的阴影将不再消耗运行时VSM性能。对于移动端或性能极度敏感的场景这是一条黄金法则。动态阴影距离缩放对于必须为“可移动Movable”的物体可以为其设置一个比主阴影距离更短的“阴影投射距离”。通过蓝图或C根据物体与摄像机的距离动态地开启或关闭其“投射阴影”属性。例如让50米以外的NPC不投射阴影。4.2 控制阴影更新频率这是解决VSM队列溢出的核心高级技巧。VSM系统允许我们控制阴影的更新速度而不是每帧都更新。缓存阴影Shadow Caching对于运动缓慢或间歇性运动的物体其阴影在短时间内变化不大。我们可以通过控制台命令强制延长其阴影的缓存时间减少更新频率。r.Shadow.Virtual.CachePrimitives确保此值为1默认启用图元缓存。r.Shadow.Virtual.CacheFrames控制阴影被缓存多少帧。默认值可能较低。你可以尝试将其提高到60或120这意味着一个静止物体的阴影可能会被缓存1-2秒才重新计算。这对于室内场景或相对静态的环境效果极佳。// 将阴影缓存时间延长至120帧假设60帧即2秒 r.Shadow.Virtual.CacheFrames 120分帧更新Frame Throttling如果有一大群动态物体如一群鸟、大量粒子让它们在同一帧更新阴影无疑是灾难。我们可以通过自定义逻辑或查找相关插件将这些物体的阴影更新请求分散到多个帧中完成。例如每帧只更新10%的鸟群阴影。这能有效平滑GPU负载避免单帧峰值导致的队列溢出。4.3 使用距离场阴影DF Shadows作为补充对于极远处或非常细小的物体如电线、栏杆使用VSM可能“杀鸡用牛刀”且效率不高。UE5的距离场阴影Distance Field Shadows是另一种阴影技术它对于这类物体和区域光照如天光Skylight的软阴影效果很好且开销相对独立。你可以在项目设置中启用“生成网格体距离场Generate Mesh Distance Fields”。对于特定的远景物体或整个远景层可以考虑将其阴影类型从VSM切换到距离场。这需要通过材质或渲染开关来控制实现起来稍复杂但能有效将一部分负载从VSM队列中剥离出来。方案二效果评估启用缓存并调整缓存帧数后观察队列溢出警告是否在摄像机静止或缓慢移动时消失。使用Stat ShadowVirtual命令可以查看“CachedPrimitives”的数量确认缓存是否生效。如果动态物体群是主因分帧更新策略将带来最直接的改善。5. 方案三诊断与精准打击——使用性能分析工具当前两个方案实施后问题可能变得零星或特定于某些复杂场景。这时就需要外科手术式的精准优化。UE5强大的性能分析工具套件是我们的“手术刀”。5.1 使用Unreal Insights进行GPU追踪Unreal Insights是UE5的性能分析神器它可以提供一帧内所有GPU任务的微观视图。捕获数据运行你的项目在出现队列溢出警告的时间点附近通过编辑器工具栏或控制台命令启动Unreal Insights捕获。分析“GPU”轨道在Insights中找到“GPU”轨道并放大。你会看到一条条水平带代表不同的GPU任务队列如Graphics, AsyncCompute等。寻找标有“ShadowDepths”或“VSM”的密集任务块。定位耗时大户点击那些特别长的“ShadowDepths”任务条Insights会在下方详情面板显示与之关联的渲染事件Render Events。这里可能会直接显示出是哪个网格体Mesh或哪个着色器Shader消耗了最多时间。你可能发现是某个特定的高面数角色模型或者是一种复杂的植被材质导致了异常开销。5.2 使用控制台命令进行实时诊断除了Insights一些控制台命令能提供即时快照DumpUnbuiltLightInteractions这个命令会列出所有当前需要构建阴影的图元Primitive及其耗时。在警告出现时执行它能直接告诉你那一帧是哪些“罪魁祸首”塞满了队列。Stat ShadowVirtual提供VSM系统的详细统计包括Tiles Updated更新的瓦片数直接反映工作量。Cached Primitives已缓存的图元数评估方案二效果。Overflow Count队列溢出次数计数器。ProfileGPU这是一个更重量级的命令会暂停游戏并生成一份详细的GPU耗时报告。查看报告中“ShadowDepths”阶段的耗时分布。5.3 建立性能基准与迭代将优化过程数据化建立基准在优化前在一个容易触发警告的场景位置记录下Stat Unit的帧时间、Stat InitViews的绘制调用数以及Stat ShadowVirtual的溢出计数。迭代测试每应用一项优化如合并一批资产、调整一个参数都回到相同位置记录同样的数据。对比分析通过数据对比清晰量化每一项优化的效果。例如合并资产后绘制调用从5000降到3000帧时间提升了3ms溢出警告从每10秒一次降到完全消失。通过这种数据驱动的方法你不仅能解决眼前的问题更能深入理解你特定场景的性能特征形成自己的优化直觉。你会发现优化往往不是找一个“银弹”参数而是结合方案一的“减负”、方案二的“调度”和方案三的“精准”进行的一场综合战役。6. 常见问题与排查技巧实录在实际项目中除了上述系统性的方案还会遇到一些具体而棘手的情况。这里记录几个我踩过的坑和对应的解决办法。6.1 警告间歇性出现与摄像机运动强相关现象静止时一切正常一旦快速转动或移动摄像机警告就频繁出现。诊断这几乎是VSM队列溢出的典型症状。快速移动导致大量新的网格体进入视野需要立即为其构建阴影造成单帧任务激增。解决首要检查植被和碎片化资产快速移动时成片植被和大量小物体是主要压力源。强化方案一中针对植被和合并资产的优化。调整r.Shadow.Virtual.MaxPageTileUpdatesPerFrame这个控制台变量限制了一帧内最多可以更新多少个VSM瓦片。适当调高此值如从默认的16384增加到32768可以增加单帧的“吞吐量”但会增大GPU压力峰值需谨慎测试。这相当于临时拓宽了“车道”但“车流”太大时仍会堵塞。优化剔除Culling确保遮挡剔除Occlusion Culling设置合理。错误的剔除设置可能导致本应被遮挡的物体也被提交渲染加重阴影负担。6.2 特定光源下警告频发现象只在某个方向的光照下或打开某个特定点光源/聚光灯时出现问题。诊断该光源影响范围内的物体过多或过复杂或者该光源的阴影设置如分辨率、距离过高。解决检查光源半径/角度缩小该光源的影响范围减少需要计算阴影的物体数量。单独降低光源阴影分辨率在光源的细节面板中找到“阴影”分类降低“阴影分辨率”或“阴影贴图大小”。对于辅助光或次要光源可以使用更低的设置。考虑是否真的需要该光源的阴影很多填充光Fill Light或氛围光Rim Light只是为了提亮暗部或勾勒边缘关闭其阴影投射可能对画面影响微乎其微但能省下可观性能。6.3 优化后阴影质量严重下降或出现瑕疵现象应用了降低分辨率、增加缓存等优化后阴影变得很模糊或者动态物体移动时阴影残留鬼影。诊断优化参数调整过于激进牺牲了必要的视觉质量。解决分层优化Layered Optimization不要全局一刀切。对近处、玩家关注的核心物体如主角、交互物品保持较高的阴影质量低LodBias短缓存。对远处、背景物体应用更激进的优化高LodBias长缓存。这需要更精细的场景管理或通过材质、蓝图来区分。平衡r.Shadow.Virtual.ScreenPixelPerTile与ResolutionLodBiasScreenPixelPerTile影响屏幕空间阴影清晰度ResolutionLodBias影响阴影贴图本身的精度。有时稍微提高前者如从16降到12同时增加后者从0到1可以在可接受的性能成本下获得比单独大幅调整某一项更好的视觉效果。对付鬼影动态物体阴影鬼影是缓存时间过长导致的。对于快速运动的物体需要单独处理要么不缓存要么设置非常短的缓存帧数如r.Shadow.Virtual.CacheFrames 5。6.4 移动平台上的特殊考量在Android/iOS设备上GPU带宽和算力更为有限VSM队列溢出问题可能更早出现。必做项强烈考虑禁用VSM回退到CSM。在移动端项目设置中直接关闭“虚拟阴影贴图Virtual Shadow Maps”。CSM在移动端是更成熟、可控的选择。如果必须使用VSM将r.Shadow.Virtual.ResolutionLodBias设置得更高如3或4。将阴影距离Shadow Distance大幅降低。严格使用方案一中的资产优化面数和绘制调用控制要远比桌面平台苛刻。动态阴影尽可能少用多用烘焙光照和静态阴影。处理VSM队列溢出本质上是一场与场景复杂度和硬件资源之间的谈判。没有一劳永逸的“最佳配置”只有针对你当前项目内容和目标平台的最优平衡。我的经验是养成定期使用性能分析工具查看数据的习惯将优化作为开发流程的一部分而不是问题爆发后的救火。当你对Stat命令里的各项数据了如指掌能够快速定位到ShadowDepths或DrawPrimitive的异常峰值时你就已经掌握了驯服UE5阴影系统的钥匙。记住优化的目标不是消除所有警告而是在保证目标帧率和视觉可接受度的前提下让警告不再成为阻碍你创作的那个“噪音”。

相关新闻

AI 平台一年回顾:从零到支撑百个模型服务的得与失

AI 平台一年回顾:从零到支撑百个模型服务的得与失

AI 平台一年回顾:从零到支撑百个模型服务的得与失 一、起点与现状:用数据描述一年间的变化 AI 平台的迭代开始于一个简单的目标:为业务方提供稳定的大模型推理服务。起点的技术栈是一台 GPU 服务器 vLLM 手工启动 Nginx 反向代理。一年后&a…

2026/10/13 1:12:13 阅读更多 →
数智化预算系统的核心能力搭建

数智化预算系统的核心能力搭建

物业数智化预算体系的落地核心,是针对传统手工Excel预算模式的底层缺陷做系统性重构。传统模式下,预算数据分散在财务、项目运维、多经运营等多个独立表格节点,数据维度不统一、更新不同步,单项目月度对账耗时平均超12个工时&…

2026/10/10 4:28:38 阅读更多 →
AI 中台建设中的模型管理:从单模型到模型市场的演进

AI 中台建设中的模型管理:从单模型到模型市场的演进

AI 中台建设中的模型管理:从单模型到模型市场的演进 一、当模型数量突破两位数:手工管理体系的崩塌 AI 中台在起步阶段,团队往往只维护两三个模型——一个通用对话、一个代码生成、或许再加一个文生图。这个时期用 Git 仓库管理模型配置、手动…

2026/10/12 14:07:35 阅读更多 →

最新新闻

CO-RE实战:一次编译到处运行,解决eBPF内核适配难题

CO-RE实战:一次编译到处运行,解决eBPF内核适配难题

1. 为什么要折腾 CO-RE:从一次内核升级说起如果你在服务器上跑过基于 BPF 的追踪工具,大概率遇到过一个既无奈又经典的报错:libbpf: failed to find valid kernel BTF或者更早以前,你辛辛苦苦在开发机上编译好的 BPF 程序&#xf…

2026/10/13 7:14:58 阅读更多 →
RNN文本生成实战:从LSTM复读到温度采样与避坑指南

RNN文本生成实战:从LSTM复读到温度采样与避坑指南

简介:一个RNN文本生成实战项目包,面向自然语言处理初学者与深度学习实践者,完整演示了基于循环神经网络的语言模型构建与自动文本生成流程。模型使用网上收集的周杰伦歌词作为训练语料,涵盖数据清洗、词汇表创建、序列填充、分词编…

2026/10/13 7:14:58 阅读更多 →
Broadcom交换芯片转发流水线解析:从VLAN到ACL的SDK配置与排障

Broadcom交换芯片转发流水线解析:从VLAN到ACL的SDK配置与排障

简介:这份PDF资料聚焦博通BCM系列交换芯片的工作原理,面向网络设备研发、驱动开发与运维工程师,以及需要理解数据中心交换底层机制的技术人员。内容从Architectural系统逻辑视图切入,梳理Ingress Chip、Switch Fabric与Egress Chi…

2026/10/13 7:14:58 阅读更多 →
模型无关智能体平台:400个插件打造自动化AI工作流

模型无关智能体平台:400个插件打造自动化AI工作流

这次我们来看一个出现在 GitHub 快报第 375 期里的开源项目。它不是什么新模型,而是一个“模型无关”的智能体技能平台,核心卖点很直白:内置插件数量号称接近 400 个,涵盖搜索、文档处理、数据分析、网页抓取、消息推送、定时任务…

2026/10/13 7:14:58 阅读更多 →
Flutter for OpenHarmony 逆向思维训练App:时间分析与性能优化实战

Flutter for OpenHarmony 逆向思维训练App:时间分析与性能优化实战

从 Flutter 跨端开发切到 OpenHarmony 生态,再搭配一个逆向思维训练 App 的完整实战,这个组合听起来就很“技术博主”。我不久前刚好完整跑通了一个类似项目,标题就叫 flutter_for_openharmony 逆向思维训练 App 实战 时间分析实现。今天把整…

2026/10/13 7:14:58 阅读更多 →
Win7离线OCR工具:PaddleOCR-json免Python部署实战

Win7离线OCR工具:PaddleOCR-json免Python部署实战

简介:win7-x64-PaddleOCR-json.zip是面向Windows 7 64位系统的PaddleOCR部署压缩包,适用于需要在旧版平台快速搭建文字识别能力、并通过JSON格式获取结构化结果的开发者和运维人员。包内共64个文件,总体积约126.19MB。其中dll动态库用于支撑推…

2026/10/13 7:13:58 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

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

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

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

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

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

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

2026/10/12 0:16:38 阅读更多 →
影刀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/12 21:05:09 阅读更多 →
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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →