Unity TextMeshPro性能优化实战:从渲染合批到内存管理的全流程指南
1. 项目概述为什么TextMeshPro也需要“优化”很多Unity开发者尤其是刚接触TextMeshProTMP的朋友可能会有个误解TMP不就是Unity官方推出的、用来替代旧版UI Text的终极文本解决方案吗它性能好、效果棒直接拿来用不就行了为什么还要专门谈“优化”这正是我想和你深入聊聊的。在我经手过的多个中大型Unity项目中无论是手游、PC游戏还是复杂的UI应用TMP的滥用或不当使用往往是导致UI模块性能瓶颈、Draw Call飙升、内存泄漏的“隐形杀手”。TMP确实强大它基于Signed Distance FieldSDF有向距离场技术实现了无与伦比的字体清晰度和缩放自由度。但这份强大背后是更高的资源开销和更复杂的渲染管线。如果你只是简单地把所有UI文字都换成TMP然后放任不管项目后期很可能会被突如其来的卡顿、过高的内存占用和诡异的渲染问题搞得焦头烂额。所以这个“优化”系列的第二部分我们不谈基础使用而是聚焦于实战。我会结合自己踩过的坑和总结的经验从渲染性能、内存管理、资产配置、工作流四个维度拆解如何让TMP在你的项目中既保持惊艳的视觉效果又能“身轻如燕”稳定运行。无论你是正在开发一款对帧率有严苛要求的动作游戏还是一个拥有海量动态文本的信息展示应用这些优化思路都能直接派上用场。2. 核心优化思路拆解从“能用”到“好用且高效”在动手调整任何参数之前我们必须先建立正确的优化心智模型。TMP的优化不是简单地勾选某个“高性能”模式而是一个贯穿于资产制作、场景搭建、代码编写和运行时监控的系统工程。其核心矛盾在于高质量的视觉表现如动态富文本、复杂材质、实时更新与有限的硬件资源CPU、GPU、内存、Draw Call之间的平衡。2.1 性能瓶颈定位你的TMP卡在哪里优化第一步是诊断。盲目优化等于无的放矢。TMP的性能开销主要分布在以下几个环节网格重建Mesh Reconstruction这是CPU端最常见的开销来源。每当TMP文本的内容、字体、大小、样式等属性发生改变时它都需要重新计算字符的顶点、UV、三角形索引并更新MeshFilter的网格数据。频繁更新的动态文本如血量、分数、聊天框是重灾区。Draw Call绘制调用每个使用不同材质球Material或纹理Texture主要是字体图集的TMP组件都会产生至少一个Draw Call。如果你的UI界面上有几十个使用不同字体、不同颜色样式特别是通过Material Property Block修改了材质属性的文本Draw Call数量会急剧上升。字体图集Font AtlasTMP通过将字体纹理烘焙到一张图集上来工作。如果图集尺寸设置过小或动态添加的字符过多会导致图集频繁重建Rebuild引发卡顿。图集尺寸过大则会浪费显存。内存占用字体资源文件.asset、字体图集纹理、以及每个TMP组件生成的网格数据都会占用内存。不当的引用或未及时销毁的实例会导致内存泄漏。一个实用的诊断方法是使用Unity Profiler特别是CPU Usage和GPU Usage模块。在文本频繁更新的场景中观察Canvas.SendWillRenderCanvases和TextMeshProUGUI.GenerateTextMesh的耗时。在编辑器模式下你也可以打开Stats窗口实时观察Draw Call数量的变化。2.2 优化目标分级针对不同场景的策略根据项目类型和文本的使用场景我们的优化策略需要有侧重点对于移动端/性能敏感型项目首要目标是稳定帧率和控制发热。核心策略是极致减少网格重建和严格控制Draw Call。可能需要牺牲一些动态效果采用更保守的字体图集策略。对于PC/主机端项目在保证流畅的前提下可以追求更高的视觉质量和更丰富的动态效果。优化重点可能在于管理复杂材质、优化字体图集以支持更多特殊字符。对于静态/大量文本如剧情对话、配置表、日志显示。优化核心是批处理Batching和对象池Object Pooling减少瞬时创建的开销。对于动态/频繁更新文本如HUD、计时器、排行榜。优化核心是避免每帧重建、使用高效的更新方式。理解了“为什么”和“卡在哪”接下来我们就进入实战环节看看具体“怎么做”。3. 资产与配置优化打好高效的地基优化要从源头开始即字体资产的创建和TMP组件的初始配置。很多问题在资产导入阶段就已经埋下了种子。3.1 字体图集Font Atlas的精细化管理字体图集是TMP性能的命脉。不当的设置会导致图集频繁重建、内存浪费或文字显示不全。图集尺寸选择在创建TMP字体资产Font Asset时你会面临图集尺寸的选择如512x512, 1024x1024等。原则在满足字符需求的前提下尽可能小。对于仅包含数字、英文和常用符号的UI字体512x512通常足够。检查方法在TMP字体资产的Inspector窗口中查看“Atlas Population Mode”。如果显示“Static”说明你预设的字符已经全部装入且有空余。如果显示“Dynamic”则图集会动态扩容这可能带来运行时重建的开销。对于已知字符集的字体如仅用于UI尽量通过“Character Set”选项如ASCII default set, Custom Set将其设置为Static。实战技巧为不同用途创建不同的字体资产。例如一个1024x1024的图集用于主要UI字体包含中英文一个512x512的图集专门用于纯数字显示如分数、血量。这样可以避免大图集被小文本浪费也便于管理。渲染模式Render Mode与抗锯齿在TMP字体资产的“Generation Settings”中。Raster Hinting对于小字号文本特别是移动端启用Raster Hinting如Force Raster可以显著提升清晰度因为它会为特定字号生成优化的像素对齐数据但会略微增加图集大小。对于需要动态缩放或字号变化大的文本则使用SDF模式。SDF ResolutionSDF分辨率如512越高字体边缘越平滑尤其在放大时。但更高的分辨率意味着更大的纹理数据。对于大多数屏幕UI256或512的SDF分辨率已经能提供优秀的质量不必盲目追求1024。动态字体回退Fallback的陷阱TMP允许设置字体回退列表当主字体缺少某个字符时会自动尝试使用回退字体。这很方便但滥用会导致图集污染和性能下降。如果回退字体是动态的如系统字体且你的文本包含大量主字体没有的字符如特殊表情、生僻字会导致运行时动态将这些字符加入图集可能触发图集重建。对于内容确定的文本如游戏内固定语言应尽可能使用包含完整字符集的静态字体资产。3.2 TMP组件TextMeshProUGUI的合理配置在场景中放置TMP组件时几个关键参数的设置直接影响性能。“Enable Raycast Target”除非文本确实需要响应点击事件如按钮上的文字否则务必取消勾选这是最容易被忽略却立竿见影的优化。启用后每个文本都会参与UI事件系统的射线检测在复杂UI中会带来不必要的CPU开销。“Auto Size”这个功能允许文本框根据内容自动调整字号。虽然方便但它的调整过程涉及网格重建。对于尺寸固定的文本区域应禁用Auto Size手动设置合适的字体大小。对于需要动态适应容器的文本可以考虑在初始化时计算一次而不是持续启用。“Extra Settings”中的“Parse Escape Characters”如果确定文本中不会包含像\n,\t这样的转义字符可以关闭此选项以节省微小的解析开销。“Material Preset”尽量使用共享的材质预设Material Preset而不是让每个TMP组件都创建一份独立的材质实例。独立的材质实例会打断合批Batching增加Draw Call。4. 渲染与Draw Call优化让GPU更轻松UI渲染是性能的重头戏TMP作为UI的一部分其渲染效率直接关系到整体帧率。4.1 合批Batching的艺术Unity UIUGUI的合批规则同样适用于TMP。核心原则是使用相同材质球和纹理的UI元素且层级顺序相邻才有可能被合批。材质共享这是减少Draw Call最有效的手段。确保所有使用同一种字体、同一种颜色或通过顶点色实现颜色变化、同一种基础效果的TMP文本都引用同一个材质球实例。你可以通过创建TMP材质预设Material Preset并拖给多个组件来实现。避免打断合批的因素不同的纹理使用不同字体资产的文本其字体图集纹理不同必然无法合批。不同的材质即使字体相同但如果你通过代码修改了某个TMP的fontMaterial属性或者使用了不同的材质预设如一个带描边一个不带它们就会使用不同的材质实例打断合批。层级Hierarchy顺序Canvas会按照子物体的层级顺序进行绘制。如果两个本可合批的TMP文本中间插入了一个使用不同材质/纹理的Image或其他UI元素合批就会被中断。合理规划UI元素的层级顺序将相同材质的元素放在相邻位置。Overlay与Camera CanvasOverlay模式的Canvas合批效率通常更高因为它直接渲染到屏幕空间。多个Camera Canvas之间通常无法合批。使用Canvas组进行静态/动态分离如果一个Canvas下有大量静态文本和少量动态更新文本动态文本的网格重建会导致整个Canvas的网格包含所有静态元素被标记为脏并重新上传。解决方案是将静态文本和动态文本分别放在不同的Canvas下。因为每个Canvas的网格是独立的。这样动态文本的更新就不会触发静态文本的网格处理。这是UGUI/TMP性能优化中一个非常关键的高级技巧。4.2 复杂效果描边、阴影、渐变的性能代价TMP内置了通过材质实现的描边Outline和阴影Shadow效果非常方便。但这些效果是有成本的。原理这些效果通常是通过多次绘制多Pass实现的。例如一个带描边的文本底层可能会先绘制N次描边向各个方向偏移再绘制一次正文。这相当于将Draw Call乘以了N1倍。优化建议慎用全局效果不要给所有文本都默认加上描边或阴影。只对需要强调的标题、按钮文字使用。探索替代方案对于简单的颜色外扩效果可以考虑使用“Underlay”功能它有时比标准的Outline更高效。或者对于静态文本可以在Photoshop等工具中制作带有效果的位图作为Sprite使用但这牺牲了动态修改文本的灵活性。性能排序从低到高无效果 阴影Shadow 描边Outline。特别是粗描边Dilate值大性能开销最大。5. 运行时与代码级优化动态文本的救星对于游戏中大量存在的、内容频繁变化的动态文本CPU端的网格重建是主要矛盾。以下是经过实战检验的代码级优化策略。5.1 减少不必要的网格重建TMP的text属性Setter内部会触发网格重建。因此最直接的原则是不要每帧都去设置text即使内容没变。// 反面教材每帧都设即使值相同 void Update() { scoreText.text playerScore.ToString(); } // 优化方案仅在值真正改变时更新 private int lastDisplayedScore -1; void Update() { if (playerScore ! lastDisplayedScore) { scoreText.text playerScore.ToString(); lastDisplayedScore playerScore; } }对于计时器避免使用字符串拼接来格式化时间这会产生大量临时字符串GC Alloc。// 反面教材每帧产生GC Alloc void Update() { float time Time.time; timerText.text Time: time.ToString(F2) s; } // 优化方案重用StringBuilder private System.Text.StringBuilder sb new System.Text.StringBuilder(32); void Update() { float time Time.time; sb.Clear(); sb.Append(Time: ); sb.Append(time.ToString(F2)); sb.Append(s); timerText.SetText(sb); // TMP提供了SetText(StringBuilder)方法更高效 // 或者如果格式固定可以 // timerText.SetText($Time: {time:F2}s); // C# 字符串插值注意GC }注意C#的字符串插值$在循环或每帧调用中也会产生GC分配。对于性能关键代码StringBuilder是更安全的选择。TMP的SetText方法对StringBuilder有重载效率很高。5.2 对象池Object Pooling管理大量文本对于列表、聊天窗口、伤害飘字等需要频繁创建和销毁大量TMP文本的场景对象池是必备技术。不要使用Instantiate和Destroy。using UnityEngine; using TMPro; using System.Collections.Generic; public class TMPObjectPool : MonoBehaviour { public TextMeshProUGUI prefab; // TMP文本预制体 public Transform poolParent; // 池中对象存放的父节点 private QueueTextMeshProUGUI pool new QueueTextMeshProUGUI(); // 从池中获取一个文本对象 public TextMeshProUGUI Get() { TextMeshProUGUI obj; if (pool.Count 0) { obj pool.Dequeue(); obj.gameObject.SetActive(true); } else { obj Instantiate(prefab, poolParent); } return obj; } // 将文本对象归还到池中 public void Return(TextMeshProUGUI obj) { obj.gameObject.SetActive(false); obj.text ; // 清空文本避免旧数据残留 pool.Enqueue(obj); } }使用池子时记得在文本“死亡”或不需要时调用Return而不是Destroy。这能完全避免Instantiate和Destroy带来的GC和性能抖动。5.3 使用TMP_Text.SetCharArray 进行极致优化当你需要显示的内容是字符数组并且变化非常频繁时例如每秒更新多次的日志显示器SetCharArray是一个比直接设置text属性性能高得多的底层方法因为它避免了中间字符串的分配。private char[] charBuffer new char[128]; // 预分配一个足够大的字符数组 private int charCount 0; void UpdateLog(char[] newLogChars, int length) { // 假设 newLogChars 包含了新的日志字符 if (length charBuffer.Length) { System.Array.Copy(newLogChars, 0, charBuffer, 0, length); charCount length; myTextMeshPro.SetCharArray(charBuffer, 0, charCount); // 高效更新 } }这个方法非常底层通常用于对性能有极端要求的特定场景。6. 内存与资源管理防患于未然TMP资源管理不当容易导致内存泄漏和资源冗余。字体资产的引用与卸载如果你在运行时动态加载字体资产如从AssetBundle务必管理好其生命周期。当不再需要时如切换场景确保解除所有TMP组件对该字体资产的引用并调用Resources.UnloadAsset或通过AssetBundle卸载机制来释放它。否则字体的纹理图集会一直留在内存中。动态生成的材质实例通过代码myText.fontMaterial newMaterial创建的材质实例Unity不会自动销毁。如果你需要替换材质并且确定旧的材质不再使用应该手动调用Destroy(oldMaterial)。禁用对象的文本组件对于一个暂时隐藏但后续还会用到的UI文本比起禁用整个GameObject更好的做法是禁用CanvasRenderer组件myText.canvasRenderer.cull true并清空文本myText.text 。这能释放其占用的网格内存同时保留组件引用以便快速恢复。禁用GameObject虽然也有效但重新启用时会触发完整的组件启用序列。7. 常见问题排查与实战技巧实录即使遵循了所有优化原则实际开发中还是会遇到各种稀奇古怪的问题。这里记录几个我印象深刻的“坑”和解决方法。7.1 问题描边Outline效果在部分设备或平台上不显示/显示异常排查这通常与Shader和渲染管线有关。TMP的标准Shader在某些移动设备的GPU上可能支持不佳或者在URP/HDRP中需要对应的Shader变体。解决检查TMP字体资产使用的材质球其Shader是否正确。对于URP项目应使用TextMeshPro/Text ShaderURP兼容版本而不是标准的TextMeshPro/Mobile等。在Project Settings - Graphics - Tier Settings中检查当前平台的Shader Tier。有时需要将设置调高才能支持复杂效果。如果问题只出现在打包后检查Player Settings中的Color SpaceLinear/Gamma是否与开发环境一致以及Shader Stripping是否过度剥离了需要的变体。可以尝试关闭“Optimize Mesh Data”选项试试。7.2 问题文本在滚动视图ScrollRect中滚动时卡顿排查ScrollRect下的TMP文本在滚动时如果触发了网格重建如启用了Auto Size、或文本内容因布局变化而换行就会导致卡顿。解决禁用Auto Size确保ScrollRect内容区域内的TMP文本都禁用了Auto Size。使用Content Size Fitter Layout Group对于需要自适应大小的文本块使用Content Size FitterVertical Fit 设为 Preferred Size配合Vertical Layout Group来管理布局这比TMP自身的Auto Size更高效且重建通常发生在布局变化的瞬间而不是持续进行。分帧加载如果列表项非常多不要在单帧内实例化所有项。使用循环协程或MonoBehaviour.Update分帧创建。7.3 问题使用富文本标签如color,b后合批被破坏排查TMP的富文本标签是通过修改顶点属性如颜色来实现的。如果一个TMP组件内部使用了富文本它本质上是在修改自己网格的顶点数据。在UGUI的合批规则中修改顶点数据会使该物体无法与同材质的其他物体进行合批。解决这是一个硬性限制。如果两个文本都需要使用富文本且它们无法与其他文本合批那么Draw Call增加是不可避免的。优化思路是将需要富文本的文本集中放置减少它们打断其他静态文本合批的机会。考虑是否能用多个独立的TMP组件每个组件一种样式来模拟富文本效果然后确保这些组件材质相同且层级相邻它们之间有可能合批但这增加了管理复杂度。7.4 一个被忽视的“性能黑洞”TMP预制体在场景中的默认状态这是一个非常隐蔽的坑。当你把一个带有TMP组件的预制体拖入场景但它的文本内容初始为空时你可能会发现这个空的文本对象仍然产生了Draw Call。这是因为TMP组件在Awake/OnEnable时即使文本为空也会生成一个极小的网格可能只有几个三角形。成百上千个这样的“空”文本足以产生可观的性能开销。解决方案对于初始状态为隐藏或空的文本除了清空text更彻底的做法是在不需要时直接禁用其CanvasRenderer组件canvasRenderer.cull true或者禁用整个GameObject。在需要显示时再启用并设置文本内容。这能确保在“离线”状态时它不参与任何渲染流程。优化是一个持续的过程而不是一劳永逸的设置。最好的习惯是在项目开发的每个阶段原型、开发、测试、发布前都定期使用Profiler对包含复杂UI的场景进行性能分析养成数据驱动的优化意识。TMP是一个强大的工具驾驭好它你的项目UI就能在视觉和性能上获得双赢。

相关新闻

时尚品牌GEO技术选型指南:LLM原生优化与AI记忆构建全解析

时尚品牌GEO技术选型指南:LLM原生优化与AI记忆构建全解析

选型核心是识别服务商是否为“LLM原生”技术路线,具备时尚行业知识结构化能力、场景化问答矩阵设计能力和反投毒监测体系。真正有效的GEO不是关键词补丁,而是基于结构化数据与语义网络的AI记忆构建。一、GEO的底层原理:从关键词排名到语义网络…

2026/10/19 19:28:09 阅读更多 →
2026学术写作AI写作辅助网站全榜单:7款实测,谁是论文党的真效率工具?

2026学术写作AI写作辅助网站全榜单:7款实测,谁是论文党的真效率工具?

在 AI 持续渗透学术创作流程的 2026 年,学术写作工具的能力边界已经不再局限于内容生成,而是逐步延伸到结构梳理、格式规范、可视化表达、语言润色与答辩整理等多个关键环节。对于本科生、研究生以及需要持续输出论文与课题材料的研究者而言,…

2026/10/19 1:44:54 阅读更多 →
C++ 高并发服务器设计与实现:从基础原理到实战优化

C++ 高并发服务器设计与实现:从基础原理到实战优化

一、C 高并发服务器设计与实现在高并发互联网服务场景下,服务器需要同时处理成千上万个客户端连接。C 凭借其高性能和零成本抽象特性,成为构建高并发服务器的主流语言之一。本文将系统介绍 C 高并发服务器的设计思路、关键技术选型以及完整实现示例&…

2026/10/17 3:23:19 阅读更多 →

最新新闻

PPT自动化生成实战:基于python-pptx的模板化批量处理与图表动态更新

PPT自动化生成实战:基于python-pptx的模板化批量处理与图表动态更新

1. 项目缘起与核心定位第一次看到“ppt-master”这个命名,我的直觉是:这大概率是一个围绕演示文稿自动化生成或批量处理的工具型项目。在办公自动化领域摸爬滚打这些年,我见过太多团队在PPT上耗费大量重复劳动——每周例会要更新数据图表、每…

2026/10/20 23:03:14 阅读更多 →
Windows 上 ffmpeg 批量转码实战:环境配置、参数调优与避坑指南

Windows 上 ffmpeg 批量转码实战:环境配置、参数调优与避坑指南

简介:这份资源是面向 Windows 平台的多媒体开发工具包,适合音视频处理爱好者、C 开发者以及需要集成编解码能力的工程人员使用。它基于 FFmpeg 4.2.1 的 win32-dev 版本,可用于音视频格式转换、流媒体推拉流、剪辑裁剪、滤镜特效以及自定义编…

2026/10/20 23:03:14 阅读更多 →
Altium Designer 15 常见问题排查与优化实战指南

Altium Designer 15 常见问题排查与优化实战指南

1. 从一次深夜报错说起:AD15到底卡在了哪里 如果你也在用Altium Designer 15(圈内一般直接叫AD15)画板子,大概率经历过下面这些瞬间:原理图画到一半,元件库突然加载不出来;PCB走线走到关键处&am…

2026/10/20 23:03:14 阅读更多 →
欧莱雅CES发布LED光能面膜:家用光疗技术解析与选购指南

欧莱雅CES发布LED光能面膜:家用光疗技术解析与选购指南

开头今年CES的展馆里,大部分媒体都挤在芯片、汽车和显示面板那几个区域抢首发参数。我反倒是在美容健康区待了一整个下午,欧莱雅集团这次带来的LED光能面膜,是现场讨论热度最高的护肤品类产品。它本质上是一张集成了柔性LED光源的“脸型面罩”…

2026/10/20 23:03:14 阅读更多 →
ThinkPHP+Laravel双框架实战:智慧社区缴费报修平台核心设计

ThinkPHP+Laravel双框架实战:智慧社区缴费报修平台核心设计

做了这么些年 Web 项目,我越来越觉得“智慧社区”这四个字真正落地的价值,不是靠堆砌硬件设备,而是看它能不能把物业、业主、维修工这三方拉回同一个节奏里干活。传统社区里,缴费靠贴通知单、报修靠打前台电话、催缴靠物业大姐挨家…

2026/10/20 23:03:14 阅读更多 →
通用型Makefile:多级目录自动收集与依赖追踪实战

通用型Makefile:多级目录自动收集与依赖追踪实战

做C/C项目时间长了,几乎每个人都会攒一套自己的Makefile。早年我在一个跨平台工具项目里用的还是那种把所有文件路径一行行写死的Makefile,源码目录从两层涨到四层之后,每次新增一个模块都要回去改源文件列表、改编译规则、改clean&#xff0…

2026/10/20 23:02:12 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →