VS2019编译集成Assimp:模型加载与常见踩坑全攻略
简介一份针对Visual Studio 2019x64预编译好的Assimp三维模型导入库压缩包面向使用C开发游戏、3D建模或需要加载OBJ、FBX、3DS、COLLADA、STL等常见格式的开发者。Assimp提供了统一的模型加载接口与丰富的后处理能力可省去自行解析各格式的麻烦直接集成到VS2019项目中。资源共67个文件约6.08MB以32个.h头文件、9个.hpp、7个.inl模板实现、8个.lib静态库、4个.dll动态库及4个.exp导出文件为主同时包含Debug与Release版本支持静态或动态链接方式选择配置时只需指定include与lib目录即可。已有337人学习下载。包内目录结构清晰bin、include、lib分层明确便于快速部署相比手动编译源码这份预编译包可直接使用尤其适合希望专注业务逻辑、避免陷入编译配置细节的开发者。借助Assimp统一的数据结构还能方便地获取网格、材质、动画等数据为项目节省大量开发时间。1. 拿到assimp.zip之后先搞清楚Assimp到底在解决什么问题在图形和游戏开发里模型加载是绕不开的第一道坎。一个FBX文件里有网格、材质、骨骼、动画、法线、UV、切线直接手写解析器光是读文件格式规范就能烧掉好几个周末。AssimpOpen Asset Import Library就是干这个的它把几十种模型格式统一成一套内存结构你调一个函数就能拿到aiScene里的所有数据。我最近刚好在VS2019上重新编译并集成了一遍assimp.zip里的源码包发现这库本身功能没问题但编译选项、运行时库匹配、坐标轴约定这几个地方全是坑踩完一轮之后觉得值得把完整流程写出来。这篇笔记适合两类人一类是刚接触模型加载、想知道Assimp和VS2019怎么配合的新手另一类是已经能跑demo、但遇到链接错误或者模型翻转这类玄学问题的熟手。2. Assimp的定位与选择为什么模型加载库在图形项目里绕不开2.1 从文件到内存Assimp在渲染管线里的位置渲染管线里模型加载通常在初始化阶段完成。你从磁盘读一个.obj或者.fbx解析后得到顶点数组、索引数组、法线、UV、材质参数然后把这些数据上传到GPU缓冲区。Assimp夹在中间的角色就是“统一解析器”你传入文件路径它返回一个aiScene里面mRootNode是场景树mMeshes是网格数组mMaterials是材质数组mAnimations是动画数组。如果不用Assimp你就得针对每种格式写一套解析器。OBJ格式还算简单按行解析v、vt、vn、f就行FBX就麻烦了它有ASCII和二进制两种版本二进制版本文档不全还涉及嵌套属性块的读取手写解析器很容易在文件版本升级后翻车。Assimp把这些全封装了你的代码只需要面对aiScene这一套结构。2.2 选型对比Assimp、Open Asset Import vs 手写解析器常见做法里备选方案有三个手写解析器、Assimp、以及针对特定格式的专用库比如tinyobjloader只处理OBJfbxsdk只处理FBX。手写解析器适合格式固定、结构简单的场景专用库效率高但覆盖面窄Assimp的优势在于格式覆盖面广——OBJ、FBX、DAE、glTF、3DS、STL、PLY、X等等几十种而且社区活跃、更新频繁。代价是Assimp的体积和编译时间明显更大。它的源码由核心库和一堆插件式导入器组成如果只需要OBJ和FBX可以通过CMake开关关掉其他导入器减小DLL体积。我一般会先开ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT编译完再看实际项目需要回头裁剪。2.3 格式支持与版本差异你手里的zip是哪个版本的assimp.zip这个包具体是哪个版本取决于你从哪里拿到的。我在VS2019上处理过的版本目录结构一般是include/assimp、code、contrib、cmake-modules这几个大目录。值得注意的是Assimp的版本号在编译后会体现在生成的lib/dll文件名上比如assimp-vc142-mt.lib这里vc142对应VS2019的MSVC工具集版本VS2019是v142VS2022是v143mt代表动态链接的运行时库。如果文件名里是md那对应的是多线程DLL运行时库。这些细节直接决定你后面项目里能不能链上。3. VS2019下编译AssimpCMake配置与双平台构建3.1 工具准备CMake、VS2019与源码目录结构编译Assimp之前先确认环境VS2019已安装并勾选了“使用C的桌面开发”工作负载CMake版本在3.15以上即可新版Assimp对CMake版本要求不算高。源码目录里CMakeLists.txt在根目录code/下是核心库源码include/assimp/是公共头文件contrib/里是第三方依赖比如zlib、rapidjson。编译前的目录规划我是这样做的mkdir C:\assimp_build cd C:\assimp_build cmake C:\path\to\assimp\source -G Visual Studio 16 2019 -A x64这段命令中-G Visual Studio 16 2019指定生成器为VS2019的CMake生成器-A x64指定目标平台为64位。如果不写-A x64默认会生成Win32平台的项目后面编译出来的库只能给32位程序用。生成完成后在C:\assimp_build目录下会出现Assimp.sln解决方案文件。3.2 配置CMake关键开关与输出路径设置CMake生成项目之前有几个开关值得手动调整。用cmake-gui打开源码目录并设置好构建目录然后搜索以下选项ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULTON ASSIMP_BUILD_TESTSOFF ASSIMP_INSTALL_PREFIXC:/assimp_install第一项默认是ON表示编译所有格式导入器如果你只需要FBX和OBJ可以设为OFF然后在ASSIMP_BUILD_ALL_IMPORTERS里勾选你需要的特定导入器。第二项建议关掉因为Assimp的测试套件会拉进来一长串依赖编译时间明显变长。第三项设置安装路径编译完成后执行INSTALL项目会把头文件、库文件和DLL统一拷到这个目录后面集成项目时方便。还要注意一个隐藏点ASSIMP_BUILD_SHARED_LIBS。这个开关控制生成DLL还是静态库。ON生成assimp-vc142-mt.dll和对应的导入库OFF生成静态库。我一般用DLL因为静态库在联调时会遇到一个麻烦——Assimp内部的第三方库符号比如zlib容易和项目里的同名符号冲突DLL方式能隔离这些符号。3.3 编译与产物Debug/Release、x64/Win32的lib和dll配置完成后在VS2019里打开Assimp.sln把解决方案配置切到Release平台选x64右键ALL_BUILD生成。产物会分门别类出现在构建目录的lib/Release和bin/Release下前者是assimp-vc142-mt.lib后者是assimp-vc142-mt.dll。还有个容易忽略的地方INSTALL项目。最好在生成完ALL_BUILD之后再生成一次INSTALL它会按照ASSIMP_INSTALL_PREFIX设置的路径把需要的头文件、lib和dll整理到干净的目录里。直接去构建目录翻产物容易漏掉include/assimp里的几个子目录头文件比如include/assimp/Compiler下的平台宏头文件手工复制时漏了后面编译自己的代码会报ft2build.h或者Compiler/pushpack1.h找不到这类错误。4. 在项目里接住Assimp链接配置与模型加载代码4.1 链接配置include目录、lib目录与运行时依赖在VS2019项目里集成的第一步是配置附加包含目录和附加库目录。打开项目属性“VC目录”或“C/C → 常规 → 附加包含目录”里添加C:/assimp_install/include“链接器 → 常规 → 附加库目录”里添加C:/assimp_install/lib。然后在“链接器 → 输入 → 附加依赖项”里加assimp-vc142-mt.lib。需要注意的运行时依赖如果编译的是DLL版本运行exe时assimp-vc142-mt.dll必须在exe所在目录或系统PATH里。Debug构建链的是assimp-vc142-mtd.lib这个d后缀代表Debug版本的导入库它对应的是assimp-vc142-mtd.dll别把Release的DLL拿给Debug程序跑会出现分配器不匹配导致崩溃。4.2 加载模型从aiScene到网格数据的标准流程核心加载代码只需要几个函数但前后的处理流程决定了你拿到的数据是否完整。下面是我常用的加载逻辑#include assimp/Importer.hpp #include assimp/scene.h #include assimp/postprocess.h Assimp::Importer importer; unsigned int flags aiProcess_Triangulate | aiProcess_FlipUVs | aiProcess_GenNormals | aiProcess_CalcTangentSpace | aiProcess_JoinIdenticalVertices; const aiScene* scene importer.ReadFile(models/character.fbx, flags); if (!scene || !scene-mRootNode) { // 错误处理 const char* err importer.GetErrorString(); return; } for (unsigned int i 0; i scene-mNumMeshes; i) { aiMesh* mesh scene-mMeshes[i]; // 顶点数据 for (unsigned int v 0; v mesh-mNumVertices; v) { aiVector3D pos mesh-mVertices[v]; // 存入你自己的顶点缓冲区 } // 索引数据 for (unsigned int f 0; f mesh-mNumFaces; f) { aiFace* face mesh-mFaces[f]; if (face-mNumIndices 3) { // face-mIndices[0] / [1] / [2] } } }这段代码里aiProcess_Triangulate让Assimp把多边形面拆成三角形这一步对OpenGL/DirectX的渲染管线和索引缓冲是必须的aiProcess_FlipUVs翻转UV的V方向因为很多DCC工具如Blender、3ds Max的UV原点约定和DirectX不一致aiProcess_GenNormals在模型没有法线时自动生成注意如果模型自带法线且质量好这个标志不会替换原有法线aiProcess_CalcTangentSpace计算切线和副切线做法线贴图时用。读出来的aiVector3D可以直接拷贝成glm::vec3或你自己定义的顶点结构。索引方面Assimp的aiFace.mIndices是unsigned int数组如果你的索引缓冲是uint32_t就无缝对接如果项目用的是uint16_t还要检查顶点数是否超过65535。4.3 材质与纹理提取Diffuse路径的处理模型加载不只是顶点材质和纹理路径如果处理不好渲染出来的模型会又黑又灰。Assimp的材质数据在scene-mMaterials[i]索引对应的是网格里的mMaterialIndex字段。提取Diffuse贴图路径的方式是aiString texturePath; aiColor4D diffuseColor; if (scene-mMaterials[mesh-mMaterialIndex]-GetTexture( aiTextureType_DIFFUSE, 0, texturePath) AI_SUCCESS) { // texturePath.C_Str() 得到相对模型目录的贴图路径 // 实际使用时拼上模型所在目录 } if (scene-mMaterials[mesh-mMaterialIndex]-Get( AI_MATKEY_COLOR_DIFFUSE, diffuseColor) AI_SUCCESS) { // diffuseColor.r / g / b / a }有几个坑第一GetTexture返回的路径可能是正斜杠也可能是反斜杠取决于原始文件是谁导出的加载纹理前统一替换成你自己的路径分隔符。第二有的模型文件尤其FBX会把纹理嵌在文件内部GetTexture返回的路径是空字符串但scene-mTextures里会有数据aiTexture的pcData指向压缩后的图片二进制需要你自己解压——这个玩法适合做离线烘焙运行时直接读嵌入式纹理性能未必好。5. Assimp踩坑记录VS2019环境下五条血泪经验5.1 坑一链接器报LNK2038RuntimeLibrary不匹配现象项目链接时出现error LNK2038: mismatch detected for RuntimeLibrary值有的是MD_DynamicRelease有的是MT_StaticRelease。原因Assimp库编译时用的运行时库选项和你的项目不一致最常见的是Assimp用了/MD动态运行时你的项目配置成了/MT静态运行时。解决保持两边一致。在项目属性的“C/C → 代码生成 → 运行库”里切换到与你编译Assimp时相同的选项。我用的Assimp是CMake默认的/MD所以项目里也选“多线程DLL(/MD)”这个问题就消失了。另外注意Debug和Release的运行时库选项要分别对应Assimp的mtd和mt库文件混用也会触发这个错。5.2 坑二exe启动就崩溃缺少assimp-vc142-mt.dll现象编译链接全过双击exe直接弹窗说找不到assimp-vc142-mt.dll。原因DLL没有复制到exe目录系统PATH里也没有。解决最简单的做法是把assimp-vc142-mt.dll以及Debug版本assimp-vc142-mtd.dll复制到$(OutDir)目录。也可以设置“生成事件 → 后期生成事件”写一条拷贝命令xcopy /y C:\assimp_install\bin\assimp-vc142-mt.dll $(OutDir)注意如果项目同时使用其他第三方库比如SDL、OpenGL的扩展库它们的DLL也可能依赖Assimp的DLL排查时用dumpbin /dependents检查exe的依赖列表能快速确认缺哪个。5.3 坑三FBX模型加载后没有法线模型暗面一片黑现象模型能显示但表面是黑漆漆的光照计算完全不对。原因FBX的网格数据有时不带mNormals尤其是从某些老旧工具导出的FBX你设置的aiProcess_GenNormals只在模型完全没有法线时才生成但有的模型导出器写了NAN或零向量的法线数组Assimp认为“有法线”跳过生成。解决遍历网格后检查mesh-HasNormals()如果返回false或者法线长度接近零再用aiProcess_GenSmoothNormals强制生成光滑法线。更稳妥的做法是加载时同时开aiProcess_GenSmoothNormals和aiProcess_GenNormals前者的优先级更高。5.4 坑四模型加载后上下颠倒或左右镜像现象OBJ模型正常DAE或FBX模型加载到场景里y轴朝下或者Z轴方向反了。原因DCC工具的坐标轴约定不统一。Blender默认Z轴向上3ds Max默认Z轴向上但右手坐标系Maya默认Y轴向上Assimp默认输出的是Y轴向上、右手坐标系。解决按需开标志。aiProcess_FlipWindingOrder用于调整三角形绕序顺时针变逆时针解决背面剔除导致的“从反面看才可见”问题如果模型整体旋转了加载完后对根节点做一次旋转矩阵变换// 把Z轴向上转为Y轴向上 glm::mat4 fix glm::rotate(glm::mat4(1.0f), -glm::half_pifloat(), glm::vec3(1, 0, 0));这里有个细节法线、切线也要跟着旋转但平移分量要剔除。我一般把旋转矩阵应用到所有顶点和法线后再上传GPU避免在shader里额外处理。5.5 坑五多线程加载模型偶发性崩溃Debug断言失败现象开了多线程加载多个模型单个加载没问题并发时偶发访问冲突或断言失败。原因Assimp的Importer实例不是线程安全的。不同线程可以各自创建独立的Importer对象但同一个Importer对象不能并发调用ReadFile另外ReadFile内部会修改Importer的全局注册表状态不同线程创建Importer时也要避免同时执行。解决每个线程创建各自的Importer实例这是官方推荐的做法。还在崩溃就检查是否调用了Importer::FreeScene()——如果多个线程共享同一个aiScene指针一个线程释放后其他线程访问就会悬空。我的做法是所有线程加载完成后统一把数据拷到自己的引擎资源结构里然后立刻调用Importer::FreeScene()释放aiScene内存之后再也不碰Assimp的数据结构。6. 进阶技巧骨骼动画的顶点权重提取与矩阵变换顺序6.1 从aiBone到蒙皮数据如果你做的是带骨骼动画的角色Assimp把骨骼数据挂在aiMesh-mBones下。每个aiBone里有mName骨骼名、mOffsetMatrix从骨骼空间到网格空间的逆矩阵、mWeights一组顶点索引和权重值。提取时要注意Assimp的权重是四元组以内每个顶点最多关联4个骨骼这是多数GPU蒙皮的硬限制。for (unsigned int b 0; b mesh-mNumBones; b) { aiBone* bone mesh-mBones[b]; // bone-mOffsetMatrix 是4x4矩阵用于把顶点从网格空间转到骨骼空间 for (unsigned int w 0; w bone-mNumWeights; w) { aiVertexWeight* vw bone-mWeights[w]; unsigned int vertexId vw-mVertexId; float weight vw-mWeight; // 按vertexId组织成最多4组 (boneIndex, weight) } }6.2 变换顺序与验证方法骨骼动画的最终顶点位置计算是最终顶点 网格顶点 * 骨骼偏移矩阵 * 骨骼动画世界矩阵。这里矩阵乘法的顺序如果不一致模型就会扭曲。我一般用列主序矩阵代码里这样组织skinMatrix boneOffsetMatrix * boneCurrentTransform; // 物体空间到骨骼空间 finalPos boneWeightedSum(skinMatrix * bindPos);boneOffsetMatrix就是Assimp的mOffsetMatrix而boneCurrentTransform是你自己从动画通道里算出来的。验证方法很直接加载一个带基础绑定姿势的模型把boneCurrentTransform设为单位矩阵最终顶点应该和原始网格的mVertices重合如果不重合先怀疑矩阵的转置问题。从那以后我每次集成新版本Assimp都强制走一遍这个验证流程——绑定姿势不对的话后面所有动画都是白调。还有个习惯是给每个网格加一个HasBones()分支没有骨骼的模型直接走顶点副本路径别让它误入蒙皮计算。希望这套笔记能让你在VS2019上少走几个弯assimp.zip拆出来后半小时能跑起来。本文还有配套的精品资源点击获取

相关新闻

Hadoop 3.2.4离线内网环境集群安装部署:配置参数与排错实战

Hadoop 3.2.4离线内网环境集群安装部署:配置参数与排错实战

简介:Hadoop 3.2.4安装包面向需要搭建大数据基础环境的学习者与开发者,适合离线部署、版本验证及教学实训等场景,解决官方下载缓慢或集群安装准备繁琐的问题。压缩包为zip格式,整体约505.9MB,文件总数达2000个&#xf…

2026/10/12 15:06:50 阅读更多 →
MV视频自动剪辑大师Windows版:批量视频裂变与FFmpeg自动化剪辑实战

MV视频自动剪辑大师Windows版:批量视频裂变与FFmpeg自动化剪辑实战

简介:这是一款面向短视频创作者与电商运营人员的Windows端视频批量处理工具,主打「视频裂变」场景,无需剪辑经验即可一键完成多版本衍生。核心能力覆盖裁剪尺寸、画中画、背景模糊、MD5值修改、横屏转竖屏、滤镜、扫光特效、随机混音背景音乐…

2026/10/12 15:06:50 阅读更多 →
福昕高级PDF编辑器9.5配置实战:OCR识别、批量处理与表单故障排查

福昕高级PDF编辑器9.5配置实战:OCR识别、批量处理与表单故障排查

简介:福昕高级PDF编辑器9.5版本补丁面向正在使用Foxit PhantomPDF 9.5的办公与文档管理用户,用于修复此前版本中的已知问题并提升软件稳定性与安全性,同时给出了补丁的获取途径和安装说明。资源包内共1个文件,为docx格式文档&…

2026/10/12 15:06:50 阅读更多 →

最新新闻

PyCharm配置Git全指南:从路径设置到远程推送避坑

PyCharm配置Git全指南:从路径设置到远程推送避坑

简介:面向使用PyCharm的Python开发者,这份图文教程专门解决IDE内配置Git及日常版本控制操作的问题。内容从Git客户端安装讲起,覆盖PyCharm中Version Control的Git路径配置、克隆远程仓库、比较文件不同版本差异,以及创建与切换分支…

2026/10/12 15:59:19 阅读更多 →
无人机航拍三维重建Python源码实战:COLMAP位姿与NeRF深度图

无人机航拍三维重建Python源码实战:COLMAP位姿与NeRF深度图

简介:本资源面向计算机、人工智能、自动化等专业的在校学生与开发者,提供一套基于无人机航拍数据的三维场景重建完整项目源码,可用于毕业设计、课程大作业或项目初期立项演示。项目围绕多角度地面图像采集、COLMAP位姿估计与Behindthescenes深…

2026/10/12 15:59:19 阅读更多 →
AI数据库集成全文与向量检索:混合召回架构改造实践

AI数据库集成全文与向量检索:混合召回架构改造实践

如果你做过站内搜索、知识库问答,或者正在给 AI 应用做召回管线,一定遇到过这种尴尬:文本检索的逻辑写在业务代码里,向量存储塞进专门的服务,数据同步还得靠一个维护成本不低的管道。几个服务来回倒腾,线上…

2026/10/12 15:59:19 阅读更多 →
AutoLabelImg自动标注工具实战:从预标注到闭环迭代提升数据标注效率

AutoLabelImg自动标注工具实战:从预标注到闭环迭代提升数据标注效率

简介:AutoLabelImg 是一款面向深度学习图像识别场景的自动标注工具包,适合机器学习研究者和开发者快速构建 YOLOv8/v9/v10 与 RT-DETR 等模型训练所需的标注数据集。工具安装部署简单,通过标准 Python 包即可使用,并配有 README 说…

2026/10/12 15:59:19 阅读更多 →
Roo Code代码库索引功能实战:用Tree-sitter+Qdrant搭建语义搜索

Roo Code代码库索引功能实战:用Tree-sitter+Qdrant搭建语义搜索

/* 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 15:59:19 阅读更多 →
3D打印机毕设全流程:从方案选型到建模、电控与论文写作

3D打印机毕设全流程:从方案选型到建模、电控与论文写作

毕设拿到“3D打印机设计”这个题目,很多人的第一反应是兴奋,第二反应是焦虑。兴奋的是这玩意儿看着就硬核,做出来摆在答辩现场自带话题度;焦虑的是它既涉及机械结构设计,又要出CAD图纸和SolidWorks三维图,还…

2026/10/12 15:58:18 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/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/11 14:36:54 阅读更多 →