Blog
随笔与项目记录。新文章会发在这里;更早的技术笔记归档在 /legacy(不再主动维护)。
Unity SRP:从 Camera 到 GPU 理解渲染管线架构
从 RenderPipeline、Camera、Culling、RendererList、CommandBuffer 到 Render Graph,沿着一帧的真实路径理解 Unity Scriptable Render Pipeline 的架构、核心组件与设计动机。
Render Graph:从 Render Pass 到资源依赖与调度
从 Why 出发理解 Render Graph:它如何把 Render Pass、纹理与缓冲区组织成依赖图,如何管理资源生命周期、同步和调度,以及 Unity Render Graph、Unreal RDG 与 Bevy 渲染架构的异同。
Unity 自定义渲染:Renderer Feature、Custom Pass 与 Render Graph
从 Render Pass 的基本概念出发,理解 URP 的 Renderer Feature / ScriptableRenderPass、HDRP 的 Custom Pass,以及它们与 SRP、Render Graph 之间真正的层级关系。
Active Ragdoll:从动画角色到物理角色
从动画与物理的根本矛盾出发,理解 Active Ragdoll 如何借助刚体、关节与反馈控制构造真正存在于物理世界中的角色,并系统讨论 PD Controller、平衡、行走、受击、抓取、Get Up 与 Unity 实现中的稳定性问题。
傅里叶变换:游戏开发中的频域思维
从 Waveform 与 Spectrum 出发,理解傅里叶变换为什么把时域问题转换到频域,以及 FFT、采样、窗口、STFT、卷积和频域海洋在游戏开发中的意义。
理解 Kotlin:一门现代工程语言是如何设计的
从 Null Safety、Nothing、Lambda、Receiver、Extension、Delegation 到 DSL、Compose 与 Coroutine,理解 Kotlin 如何用少数可组合的语言机制构造安全而富有表达力的工程 API。
理解 Kotlin:一门现代工程语言是如何设计的
从类型安全、Lambda、Receiver、Delegation 到 DSL 与 Coroutine,理解 Kotlin 如何用少数可组合的语言机制,构造简洁而富有表达力的工程 API。
Kotlin:一门现代工程语言是如何设计的
从 Null Safety、Nothing、Lambda、Receiver、Extension、Delegation 到 DSL、Compose 与 Coroutine,理解 Kotlin 如何用少数可组合机制构造安全而富有表达力的工程 API。
Rust 宏如何创造 DSL:从 TokenStream 到自定义语法
Rust Procedural Macro 为什么能接受不像 Rust 的语法?从一个 routes! 示例出发,理解 TokenStream、Parser、AST 与代码生成之间的关系。
域名在哪里买最靠谱?注册商价格、后缀与避坑指南(2026)
横评 Cloudflare、Porkbun、Dynadot、Spaceship、Gandi 与国内云厂商:不只看首年低价,更看续费、转出、DNS、安全与长期总成本。
游戏开发中的叉积:方向、面积与法线从哪里来?
从二维左右转判断,到三维三角形法线、面积与局部坐标轴,用可拖动的图理解叉积的方向、大小和参数顺序。
Git 客户端与工具推荐
CLI 仍是根基,但 GUI、TUI、IDE 集成与 diff 工具能显著降低日常摩擦。按平台与使用场景整理 Git 客户端、终端增强、合并工具与协作 CLI 的选型建议。
Git 核心概念与实用技巧
从 Commit、Branch 和 HEAD 开始理解 Git 的工作模型,并介绍 Merge、Rebase、Cherry-pick、Reflog、Worktree 等日常开发中真正实用的技巧。
Git 托管与备份:GitHub、自建 Gitea、NAS 与其他方案
远程仓库不只是 push 的目标——它决定协作、CI、权限与灾备边界。从 GitHub 到自建 Gitea、NAS 与 Codeberg 等替代方案,再到多 remote 镜像与 git bundle,一文理清 Git 托管选型与备份策略。
Git 大文件、Git LFS 与 Perforce
Git 擅长管理文本与源代码,却在大二进制资产上容易失控。从 Git 为何「胖」、Git LFS 如何分流大文件,到 Perforce 为何长期占据游戏与影视管线,一文理清选型与落地要点。
C# 的委托与事件:Delegate、Action、Func 与 event 是什么关系?
从 delegate 到 Action/Func,再到 event 的访问限制——并拆开 Func 的源码定义、16 个参数重载,以及泛型类型参数上的 in/out 变型。