自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(198)
  • 收藏
  • 关注

原创 【three.js教程】Three.js 矩阵变换:position/quaternion/scale 和 matrix 到底怎么配合

你在 Three.js 里让一个物体移动、旋转、缩放,本质上都是在操作它的矩阵(matrix)。每个Object3D身上都有一块矩阵,把「位置、旋转、缩放」这三件事编码成一个 4×4 数学对象。这篇就讲清楚:这矩阵从哪来、怎么改、对象矩阵和世界矩阵有什么区别、以及旋转为什么老跟quaternion绑在一起。这套开关,本篇会讲得更底层。主题要点代码/开关存储每个 Object3D 用 4×4matrix存 position/rotation/scale方式一改position。

2026-09-02 19:30:30 155

原创 【three.js教程】Three.js 后期处理:用 EffectComposer 给画面加特效

普通 Three.js 应用都是「场景直接画到屏幕」。但你想加景深(DOF)、泛光(Bloom)、胶片颗粒、抗锯齿这类电影感效果时,直接画就不行了——得先把场景渲染到一张离屏缓冲里,再一层层滤镜处理,最后才上屏。这条「先渲染、后加工」的链路叫后期处理(Post-processing)。这正好接上我们前面「颜色管理」那一篇的结论:那篇说过,用了后期处理就必须加OutputPass,否则会双重 sRGB 转换、整屏过曝。这一篇就把这条管线完整讲一遍。引擎自带一大票预定义 pass,都在。

2026-09-02 19:29:22 325

原创 【three.js教程】Three.js 运行时更新:矩阵、几何体、材质怎么改才不卡

写 Three.js 应用,大部分时间都在「动态地改东西」:让物体动起来、随鼠标调整形状、运行时换贴图、玩家靠近时改相机视野……但这些更新不是「改了属性就完事」,不同对象有不同的更新规则。改错了,要么画面不刷新,要么悄悄掉帧。这一篇按对象类型逐一拆解:矩阵、几何体、材质、贴图、相机、InstancedMesh、SkinnedMesh。对象更新方式关键注意变换矩阵默认自动(静态对象可关掉手动BufferGeometry 内容改 typed array 后设缓冲区不能改大小,需预分配;

2026-09-02 19:28:29 321

原创 Three.js 对象释放(dispose):别让 WebGL 资源悄悄拖垮应用

你有没有遇到过这种情况:一个 Three.js 应用跑久了越来越卡,切换场景后内存不降反升,DevTools 里 GPU 内存一路往上爬?根因几乎都指向一件事——没有正确释放 WebGL 资源。在 Three.js 里,new一个几何体或材质时,引擎会在 GPU 侧偷偷分配缓冲区、着色器程序等「不归 JS 管」的资源,而这些不会因为对象没人引用就自动回收。这一篇就把「怎么正确 dispose」讲清。资源类型释放方法备注几何体释放底层 WebGLBuffer材质。

2026-09-02 19:27:04 292

原创 Three.js 创建 VR 内容:四步把一个普通 3D 场景送进头显

你手里已经有一个跑得不错的 Three.js 场景了——有Scene、有Camera、有,平时在浏览器里转得挺好。现在想让它进 VR 头显里看,是不是要大改?几乎不用大改。Three.js 把 WebXR 的复杂细节封装得相当干净,你只需要动四处地方。这一篇就是一份极简上手指南,照着四步走,你的场景就能在头显里渲染了。小提示:和 VR 对称的还有 AR(增强现实),Three.js 提供了ARButton,用法和下面要讲的VRButton几乎一模一样,想做 AR 内容把VRButton换成。

2026-09-02 19:26:48 194

原创 Three.js 颜色管理:别让你的 3D 场景忽明忽暗、颜色发灰

用取色器挑了个漂亮的红,贴上去却发暗、发灰;加了后期处理之后,整体画面突然「过曝」变白;法线贴图、粗糙度贴图看着一切正常,但颜色贴图一换就出问题。这些都不是你眼睛的问题,也不是材质写错了——根子都在颜色管理(Color Management)。这一篇我们就把这件事聊透:颜色空间到底是什么、Three.js 里每一类数据该用什么空间、以及在代码里怎么配置才不踩坑。说白了,一个颜色空间就是一组「设计决策」的组合,目的是在有限精度下表示尽量多的颜色,同时适配显示设备的物理限制。

2026-09-02 19:23:09 343

原创 【three.js教程】动画系统(Animation System):从“会动“到“会演“

前面那些篇里,物体的运动都是我们自己在渲染循环里手动改positionrotation——转圈、抛物线、呼吸缩放,全是"硬算"。但真实的 3D 角色动画(走路、跳跃、挥手)哪是几行代码能算出来的?那是美术在 Blender 里一帧帧 K 出来的关键帧,导出成数据文件,再让 three.js "播放"出来。这套"播放机制"就是 three.js 的动画系统。它架构参考了 Unity / 虚幻 4。这篇带你认全它的几个核心零件,以及怎么让它们协同工作。零件角色类比一段动作的数据一段录好的表演。

2026-09-02 19:21:38 314

原创 【three.js教程】Three.js 加载 3D 模型(Loading 3D Models):选对格式,少踩一半坑

前面我们一直用这些内置图元,凑合着搭场景。但真实项目里,谁还手搓模型啊?你想要的明明是一个精致的角色、一台车、一座建筑——这些得靠 3D 软件(Blender、Maya、C4D…)做出来,再加载进 three.js。可别小看"加载"这步。3D 模型有几百种文件格式,每种用途、复杂度天差地别。官方这篇手册就给了绝大多数人该走的推荐路线,以及"翻车了怎么办"的排查清单。这篇帮你一次记牢。环节关键点格式选择首选 glTF(.glb/.gltf),不行再 FBX/OBJ/COLLADA前置条件。

2026-08-31 12:05:47 332

原创 【three.js教程】# Three.js 渲染目标(Render Targets):把场景画到一张“会动的贴图“上

你可能会想:three.js 不就是把场景画到 canvas 上吗?这话说对了一半。其实渲染器每帧干的活是"把 Scene + Camera 画到某个目标上"——这个目标默认就是屏幕(canvas)。但 three.js 允许你把这个目标换成一个离屏的纹理,先把场景画进纹理里,再拿这个纹理去当普通贴图用。这个"可以渲染进去的纹理",就叫Render Target(渲染目标)。它能干嘛?

2026-08-31 11:57:06 307

原创 【three.js教程】自定义缓冲几何体(Custom BufferGeometry):从零拼出你自己的模型

前面我们用过这些"图元",直接拿来就能画。但你有没有想过:这些形状底层到底是什么?答案就是。可以这么说——three.js 里所有几何体,本质上都是。说白了就是一组带名字的(缓冲属性)的集合。每个position(位置)、normal(法线)、color(颜色)、uv(贴图坐标)……它们是一组平行数组——第 N 个属性里的第 N 份数据,属于同一个顶点。理解这一点,你就能自己造任何形状了。概念一句话说明一组带名字的 BufferAttribute(平行数组)一个顶点。

2026-08-31 11:50:47 300

原创 【three.js教程】Three.js 物理(Physics):让物体真的“掉下去、弹起来、撞一下“

前面所有文章里,物体的运动都是我们手动改positionrotation硬算出来的——比如让立方体匀速转、让球沿抛物线飞。这在简单场景够用,但一旦想要真实的重力、碰撞、堆叠、弹跳,手动算就疯了。这时候就得上物理引擎(Physics Engine)。它帮你模拟重力、碰撞、受力这些物理现象。核心思路很简单:你建一个平行于 three.js 的"物理世界",里面是一些"刚体(body)",它们会自己根据力、碰撞去动;然后每帧把物理世界里刚体的位置/旋转,同步给对应的 three.js 网格(Mesh)。

2026-08-31 11:46:14 355

原创 【three.js教程】Three.js 雾:让远处自然“消失“的偷懒神器

前面几篇我们搞定了模型、灯光、阴影,场景越来越真实了。越远的东西越模糊、越看不清——因为空气里有尘埃、水汽,光线在传播中被散射了。在 three.js 里,这个效果叫Fog(雾)。它不只是一层"贴上去的滤镜",而是渲染每个像素时实时算出来的:物体颜色会按"离相机多远"逐步混进雾色。所以它是个既便宜又出效果的手段——想做"远方渐隐"“潮湿空气感”“无限远边界”,一行雾就搞定。对比项THREE.Fog参数变化规律线性(near→far 之间)指数(随距离)能否设"清晰区"

2026-08-31 11:34:41 368

原创 【three.js教程】阴影:从“假阴影“到“阴影贴图“一次讲清

前面两篇我们聊了灯光和相机,场景有立体感、也能正确"看"了。但还差最后一部分——阴影。没有阴影,物体像是飘在半空,怎么看都不真实。three.js 里做阴影有一套完整的机制,但坑也不少。这篇先介绍假阴影方案,再介绍真正的阴影贴图,并说清新手最常卡住的几个点。方案真实度性能适用假阴影(圆片)低极快移动端、卡通风格、俯视游戏平行光阴影贴图高中室外主光源聚光灯阴影贴图高中舞台、手电点光源阴影贴图高慢(6 遍)室内灯泡,谨慎用记住四句话:① 投影前+ 灯castShadow。

2026-08-31 11:14:48 352

原创 【three.js教程】Three.js 纹理:给模型贴上“皮肤“的完整指南

前面我们给场景打了光,模型有明暗了。但真实的 3D 世界哪有纯色方块?砖墙、木地板、花花绿绿的贴纸,靠的都是纹理(Texture)——简单说就是"贴图"。纹理是 three.js 里一个很大的话题。这篇我们从最基础的"贴一张图"开始,一路讲到新手最容易忽略的内存黑洞、不同格式怎么选、以及让纹理更清晰的"mip 过滤"和"重复/旋转"技巧。话题关键点贴图→ 赋给多面材质数组,注意几何体支持几个面加载简单 load / 回调单等 / LoadingManager 多等 / 跨域要 CORS内存。

2026-08-30 14:05:03 235

原创 【three.js教程】Three.js 灯光:给你的 3D 场景打上第一束光

前面几篇我们陆续搞定了场景、几何体、材质,模型摆好了、颜色也有了。但如果你刚建好一个场景、加上材质,结果画面是一片惨白、或者黑乎乎的,完全没有立体感。没有光。之前我们用(不受光照影响的材质)时,不用管灯光也能看见东西。但一旦换成这类"会受光影响"的材质,灯光就成了刚需。这篇就带你看一遍 three.js 里的六种灯,环境光、半球光、平行光、点光、聚光灯和区域光。为了方便演示,我们先准备一个标准场景:一块带棋盘格纹理的地面、一个立方体、一个球,相机放在斜上方,再挂上确保能拖动观察。

2026-08-30 13:22:40 397

原创 【three.js教程】相机:透视与正交,决定你“怎么看“这个世界

前面我们学会了给场景打光,模型有立体感了。但还有一个绕不开的东西——相机。它决定了"观众的眼睛"在哪、能看到多大范围。three.js 里相机我们其实一直在用(),但之前的文章没细讲。near 和 far 为什么不能设成 0 和无穷大。相机投影方式有透视吗典型用途平截头体有绝大多数 3D 场景长方体盒子无2D 绘制、三视图记住三条:① 改相机参数后调;② near/far 别拉太极端,小心 Z-fighting;③ 要做 2D 或工程三视图就用正交相机。

2026-08-28 20:39:16 248

原创 【three.js教程】场景图:用“父子关系“让月亮自动绕地球转

前面我们学会了搭场景、放物体、设材质。但有个底层概念一直没细说,而它才是 three.js 真正的基础——场景图(Scene Graph)。如果你一直把每个物体都直接到场景里,各自算各自的坐标,一旦物体多了、还要互相联动(比如坦克履带跟着车体走、炮塔跟着坦克转),数学会复杂到爆炸。这一篇就用"太阳-地球-月亮"这个经典例子,把场景图的思路讲透。理解了它,你才真正算会用 three.js。

2026-08-28 20:28:38 366

原创 【three.js教程】Three.js 材质详解:从“不反光“到“物理级真实“怎么选

前面我们聊了图元——也就是那些现成的 3D 形状。但你肯定发现了,一个球体光秃秃的,没有颜色、没有质感,看着特别假。让它"有模有样"的东西,就是材质(Material)。材质决定了物体表面怎么和光互动、看起来是什么质感。three.js 里的材质种类很多:Basic、Lambert、Phong、Standard、Physical、Toon……这篇就帮你把这些材质梳理一遍,介绍什么时候该用哪个。如果你想做完全自定义的效果(比如水波、溶解、全息),可以用写 GLSL 着色器。

2026-08-28 20:19:07 200

原创 【Three.js教程】 图元速查:官方内置的立体图形

前面我们学会了搭场景、画立方体、画线、加文字。但光一个立方体显然不够玩——three.js 其实内置了一大堆"开箱即用"的 3D 形状,官方把它们叫做Primitives(图元)。这篇就来做一个全面的速查,把 three.js 里所有内置图元过一遍。以后做原型、做实验、或者临时需要一个形状 placeholder 的时候,你知道该用哪个。简单来说,图元就是 three.js 用代码帮你实时生成的 3D 几何体。

2026-08-28 20:10:02 376

原创 【Three.js教程】 创建场景:让你的第一个 3D 立方体转起来

上一篇我们搞定了安装,项目能跑起来了,页面却是空白的。这篇就来做点看得见的东西——一个旋转的立方体。别小看这个立方体,它是 three.js 最经典的 “Hello World”。场景、相机、渲染器,还会学到几何体、材质、网格,最后再让它动起来。走完这一篇,你就真正迈进了 3D 编程的大门。

2026-08-18 22:28:59 331

原创 【three.js教程】安装指南:从零搭建你的第一个 3D Web 项目

想在网页里做 3D?three.js 几乎是绕不开的选择。但在写第一行渲染代码之前,你得先把项目跑起来——这也是不少新手卡住的地方:到底用 npm 还是直接引 CDN?要不要装构建工具?import map 又是什么东西?这篇指南会把这些疑问一次性讲清楚。我们先搭一个最基础的项目骨架,然后分别走两条路线——NPM + 构建工具和CDN 直引——看看各自怎么开发、怎么上线,最后再聊聊插件怎么用、下一步学什么。

2026-08-17 22:58:39 423

原创 从聊天到行动:一文读懂大模型Agent的核心原理与技术全景

在人工智能领域,“Agent”(智能体)并不是一个新概念。早在经典AI教科书中,Agent就被定义为能够感知环境、自主决策并采取行动以实现目标的系统。LLM Agent沿用了这个框架,但把核心决策引擎替换为大语言模型。Agent = LLM(大脑) + 规划(Planning) + 记忆(Memory) + 工具(Tools)这四者的关系可以这样理解:LLM负责任何需要“理解”和“推理”的部分;规划将复杂目标拆解为可执行的步骤;记忆让Agent记住过去的交互和经验;

2026-07-01 16:22:58 312

原创 腾讯朱雀 AI 检测,检查下你的论文AI率有多少!

一是生成风格太相似,人类语言有很多通用表达和写作规范,AI很容易学会并模仿,小说、作文这些文体里,AI生成的和人写的在语言、情节结构上很像,就增加了检测难度。比如说在文本检测中,网文小说、小学生作文这类有很多通用表达方式的场景,还有图片检测里的动漫类、写实人物类,这些和真实创作内容非常相似,或者受PS影响的场景,都有可能出现误报。就拿图像检测来说吧,常见的文生图模型,像混元、豆包、即梦、可图、Flux、Midjouney、Stable Diffusion、StyleGAN等,都在它的检测范围内。

2025-04-22 20:40:43 7863

原创 腾讯IMA深度使用指南:从下载安装到高效应用

笔记管理功能也超实用,它有边看边记、边搜边记的笔记本功能,对于本地资料,能帮你总结内容、提炼要点,甚至还能生成思维导图。文档解读功能同样强大,上传指定格式的文档,IMA瞬间就能自动解读,然后根据文档内容回答你的各种问题。建好知识库,就可以往里面上传文件啦,PDF、Word、PPT、图片等等多种格式都支持,非常方便。对于那些对知识获取、管理和创作有强烈需求的朋友,不管你是学生党,还是职场人,又或是科研人员,还有智能写作功能,它能根据你提供的资料生成文章、论文之类的,生成内容后,你还能对其进行编辑。

2025-04-21 18:49:39 3711

原创 AI 赋能 3D 创作!Tripo3D 全功能深度解析与实操教程

在文件导出方面,Tripo3D 支持 glb、fbx、obj 等多种格式,无论是用于 3D 打印,还是导入 C4D、Unity 等专业软件,都毫无压力。打开 Tripo3D 官网,映入眼帘的就是简洁直观的操作界面,最醒目的标语 “一键使用AI在数秒内生成 3D 动画”,直接点明了平台的核心优势。负面提示词功能非常实用,当你不希望模型出现某些元素,比如奇怪的装饰、多余的花纹,直接输入要求,AI 就能精准避开。面数限制默认自动,但如果你对电脑性能有要求,或者想控制模型的精细度,就可以手动调节。

2025-04-21 18:45:09 3642

原创 独立开发记录:使用Trae和Cloudflare快速搭建了自己的个人博客

Trae的智能代码生成功能颠覆了传统开发模式,通过自然语言指令快速搭建响应式框架,将原本需要数天的手动编码压缩至几小时。Cloudflare的全球CDN与自动化流水线构建了无缝部署生态,从代码提交到全球节点分发仅需几分钟,这种“开发即上线”的流畅感,让我更专注于内容创作而非工程细节。Trae免费授权与Cloudflare免费套餐的组合,打破了“专业开发需高投入”的固有认知。创作的本质是开发者思维的外化。它不仅是代码与文字的集合,更是技术认知、创作热情与工具智慧的结晶。

2025-03-13 21:51:29 2342

原创 【飞桨Paddle】RTSP视频流和PP-Human实时行人分析

预测结果进行rtsp推流

2022-11-21 17:33:24 5140 2

原创 【Docker】dockerFile 安装ffmpeg

dockerfile

2022-11-11 13:42:42 2895

转载 【算法竞赛学习】Task5 排序模型+模型融合

import numpy as npimport pandas as pdimport picklefrom tqdm import tqdmimport gc, osimport timefrom datetime import datetimeimport lightgbm as lgbfrom sklearn.preprocessing import MinMaxScalerimport warningswarnings.filterwarnings('ignore')data

2022-06-11 10:41:28 1046

转载 【算法竞赛学习】Task4 特征工程

import numpy as npimport pandas as pdimport picklefrom tqdm import tqdmimport gc, osimport loggingimport timeimport lightgbm as lgbfrom gensim.models import Word2Vecfrom sklearn.preprocessing import MinMaxScalerimport warningswarnings.filterwarn

2022-06-11 10:32:08 412

转载 【无标题】Task3 多路召回

import pandas as pd import numpy as npfrom tqdm import tqdm from collections import defaultdict import os, math, warnings, math, picklefrom tqdm import tqdm# import faissimport collectionsimport randomfrom sklearn.preprocessing import MinMaxSca

2022-06-11 10:24:10 640

转载 【算法竞赛学习】Task2 数据分析

%matplotlib inlineimport pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as snsplt.rc('font', family='SimHei', size=13)import os,gc,re,warnings,syswarnings.filterwarnings("ignore")# path = './data/' # 自定义的路径path = '.

2022-06-11 10:10:12 303

转载 【算法竞赛学习】Task1 赛题理解+Baseline

赛题理解是切入一道赛题的基础,会影响后续特征工程和模型构建等各种工作,也影响着后续发展工作的方向,正确了解赛题背后的思想以及赛题业务逻辑的清晰,有利于花费更少时间构建更为有效的特征模型...

2022-06-11 09:55:52 496

原创 【sklearn学习】LightGBM

..

2022-06-11 09:18:12 4393

原创 【算法竞赛学习】集成学习案例二 (蒸汽量预测)

集成学习案例二 (蒸汽量预测)背景介绍火力发电的基本原理是:燃料在燃烧时加热水生成蒸汽,蒸汽压力推动汽轮机旋转,然后汽轮机带动发电机旋转,产生电能。在这一系列的能量转化中,影响发电效率的核心是锅炉的燃烧效率,即燃料燃烧加热水产生高温高压蒸汽。锅炉的燃烧效率的影响因素很多,包括锅炉的可调参数,如燃烧给量,一二次风,引风,返料风,给水水量;以及锅炉的工况,比如锅炉床温、床压,炉膛温度、压力,过热器的温度等。我们如何使用以上的信息,根据锅炉的工况,预测产生的蒸汽量,来为我国的工业届的产量预测贡献自己的一份力量

2022-06-11 08:58:15 451

原创 【算法竞赛学习】集成学习案例一 (幸福感预测)

集成学习案例一 (幸福感预测)背景介绍此案例是一个数据挖掘类型的比赛——幸福感预测的baseline。比赛的数据使用的是官方的《中国综合社会调查(CGSS)》文件中的调查结果中的数据,其共包含有139个维度的特征,包括个体变量(性别、年龄、地域、职业、健康、婚姻与政治面貌等等)、家庭变量(父母、配偶、子女、家庭资本等等)、社会态度(公平、信用、公共服务)等特征。数据信息赛题要求使用以上 139 维的特征,使用 8000 余组数据进行对于个人幸福感的预测(预测值为1,2,3,4,5,其中1代表幸福感最

2022-06-11 08:57:43 549

原创 【sklearn学习】多层感知机MLP

MLPClassifier和MLPRegressionsklearn.neural_network.MLPClassifierclasssklearn.neural_network.MLPClassifier(hidden_layer_sizes=(100,),activation='relu',*,solver='adam',alpha=0.0001,batch_size='auto',learning_rate='constant',learning_rate_init=0.00...

2022-04-06 21:00:19 4369

原创 【sklearn学习】支持向量机SVM

classsklearn.svm.SVC(*,C=1.0,kernel='rbf',degree=3,gamma='scale',coef0=0.0,shrinking=True,probability=False,tol=0.001,cache_size=200,class_weight=None,verbose=False,max_iter=-1,decision_function_shape='ovr',break_ties=False,random_state=...

2022-04-06 20:57:59 1920

原创 【sklearn学习】线性回归LinearRegression

多元线性回归指一个样本中有多个特征的线性回归问题sklearn.linear_model.LinearRegressionclass sklearn.linear_model.LinearRegression(*, fit_intercept=True, normalize='deprecated', copy_X=True, n_jobs=None, positive=False)fit_intercept:默认为True,计算模型的截距 normalize 默认使False copy_X

2022-04-06 16:20:43 5976

原创 【sklearrn学习】朴素贝叶斯NaiveBayes

朴素贝叶斯是直接衡量标签和特征之间的概率关系的有监督学习算法sklearn.naive_bayes.GaussianNBclass sklearn.naive_bayes.GaussianNB(*, priors=None, var_smoothing=1e-09)prior:类的先验概率,如果不指定,则自行根据数据计算先验概率var_smoothing:浮点数,默认1e-9>>> import numpy as np>>> X = np.arra

2022-04-06 16:20:11 2645

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除