# 单禹铎(R41NH4RD)— readme.wiki > 单禹铎(R41NH4RD)— 数字建筑师与创意技术人的个人作品集。专注于 AI 生成艺术、3D 可视化、Web 创意开发与开源项目。分享 WebGL、Three.js、GPU 粒子系统、Raymarching、Rust 后端迁移等前沿技术实践。 ## 关于 - [关于我](https://readme.wiki/#about): 单禹铎(R41NH4RD),数字建筑师与创意技术人,专注于 AI 生成艺术、3D 可视化、Web 创意开发与开源项目。技术栈涵盖 Python、FastAPI、Three.js、GLSL、Rust。 - [联系方式](https://readme.wiki/#contact): 邮箱 hello@readme.wiki | GitHub: https://github.com/shanyuduo ## 文章 / 部落格 - [部落格首页](https://readme.wiki/#articles): 技术文章列表,涵盖技术研究、行业动态、个人日志、资料分享等方向 - [从零构建 GPU 粒子系统:GPGPU 实践指南](https://readme.wiki/articles/gpu-particle-system): 使用 Three.js GPUComputationRenderer 实现十万级粒子实时模拟的完整教程,覆盖 ping-pong 纹理、速度场更新与渲染管线搭建 - [Raymarching 入门:在片元着色器中雕刻隐式几何](https://readme.wiki/articles/raymarching-guide): 从 SDF 有符号距离场到软阴影、平滑布尔运算的全景式 raymarching 教程,覆盖球体追踪算法、法线计算与光照模型 - [用 Rust 重写 Python 后端:性能提升 40 倍的实战记录](https://readme.wiki/articles/rust-python-migration): 从 SQLAlchemy 迁移到 Diesel、从 uvicorn 迁移到 Actix-Web 的完整技术栈迁移记录,含基准测试对比与架构设计 - [获奖网站拆解:Awwwards SOTD 的设计模式](https://readme.wiki/articles/awwwards-sotd-design): 分析 2025 年度 Awwwards 获奖网站的共性设计模式,覆盖滚动叙事、后处理管线、物理交互与字体动效 ## 软件分享 - [Geek Uninstaller 1.5.3.170](https://readme.wiki/software/geek-uninstaller): 轻量级 Windows 彻底卸载工具,中文便携单文件绿色专业版。深度扫描残留、强制卸载顽固程序、支持 UWP 应用卸载。仅供学习研究,建议官网下载,本站提供国内备用存档 - [Sony A7 系列 PMCA 应用合集](https://readme.wiki/software/sony-a7-pmca-apps): 索尼已停服 PlayMemories Camera Apps 遗产存档,15 款付费相机扩展应用(延时拍摄、平滑反射、星迹、多重曝光等)+ pmca-console 安装工具。仅供 A7 系列老机型学习研究使用 ## 作品项目 - [作品集](https://readme.wiki/#work): 精选数字创意作品,涵盖 AI 生成艺术、数据可视化、沉浸式音频、3D 地球模型、在线音乐播放器等 - [3D 地球模型](https://readme.wiki/earth-model): 基于 Three.js 的交互式 3D 地球可视化 - [画廊](https://readme.wiki/gallery): 视觉艺术作品画廊 ## 技术方向 - WebGL / Three.js / GLSL Shader - GPU 计算 (GPGPU, Compute Shaders) - Rust 后端开发 (Actix-Web, Diesel) - 生成艺术与创意编程 - Web 性能优化与用户体验设计 ## 常见问题解答 ### 技术研究 — GPGPU 粒子系统 **Q: 什么是 GPGPU 粒子系统?** A: GPGPU 粒子系统利用 GPU 并行计算能力模拟和渲染十万级以上粒子。粒子数据存储在纹理中,通过着色器在 GPU 端完成所有物理计算,无需 CPU 参与,性能比 CPU 方案提升约 4 倍。 **Q: GPUComputationRenderer 的工作原理是什么?** A: GPUComputationRenderer 使用 ping-pong 纹理技术——两个纹理交替作为输入和输出,每帧由着色器读取输入纹理、计算后写入输出纹理,实现数据持续更新。无需 CPU 参与,所有计算在 GPU 端完成。 **Q: GPGPU 粒子系统相比 CPU 方案性能提升多少?** A: 十万粒子测试中,CPU 方案约 15fps,GPGPU 方案可达 60fps,性能提升约 4 倍。主要原因是消除了 CPU 到 GPU 的数据传输瓶颈。 **Q: 什么是 ping-pong 纹理?** A: ping-pong 纹理是一种双缓冲技术,使用两个纹理交替作为输入和输出。每帧渲染时,着色器从纹理 A 读取数据、计算后写入纹理 B,下一帧交换方向。这样可以避免读写同一纹理导致的数据竞争。 **Q: 实现 GPGPU 粒子系统有哪些常见坑?** A: 主要包括纹理浮点精度问题(需 FloatType)、WebGL2 与 GLSL3 兼容性差异、纹理尺寸限制(最大 4096×4096,约 1600 万粒子上限),以及 ping-pong 纹理切换时的状态同步问题。 ### 技术研究 — Raymarching **Q: Raymarching 和传统光栅化有什么区别?** A: 光栅化将三角形栅格化为像素,Raymarching 从相机发射射线逐步步进检测与 SDF 定义几何体的交点。Raymarching 天然支持软阴影、环境光遮蔽和平滑布尔运算,但计算量更大。 **Q: 什么是 SDF(有符号距离场)?** A: SDF 是一种数学函数,输入空间坐标返回该点到最近表面的有符号距离。正值在外部,负值在内部,零在表面上。是 Raymarching 的数学基石。 **Q: 球体追踪算法的工作原理是什么?** A: 球体追踪从射线起点出发,每步前进当前 SDF 值的距离(安全距离),直到距离小于阈值(命中表面)或超过最大步数(未命中)。相比线性步进,自适应步长大幅提升效率。 **Q: Raymarching 如何实现软阴影?** A: 追踪阴影射线时记录沿途最小 SDF 值与步进距离的比值(penumbra 因子),比值越小阴影越软。无需额外 Pass,只需在主循环中增加 penumbra 估计。 **Q: 平滑布尔运算(smin)的作用是什么?** A: smin 在两个 SDF 的并集边界处做平滑插值,使几何体无缝融合。常用于有机形态建模,如流体融合、细胞分裂等效果。参数 k 控制融合平滑度。 ### 技术研究 — Rust 后端迁移 **Q: 为什么选择 Rust 而不是 Go 重写 Python 后端?** A: Rust 的零成本抽象和所有权系统提供与 C/C++ 相当的性能同时保证内存安全。Go 的 GC 停顿在高并发场景下不可控,且缺乏 Rust 级别的泛型和 trait 系统。对于追求极致性能的后端服务,Rust 是更优选择。 **Q: SQLAlchemy 和 Diesel 有什么区别?** A: SQLAlchemy 动态生成 SQL,灵活但运行时开销大。Diesel 编译时生成 SQL 并进行类型检查,消除运行时 SQL 错误,但编译时间较长。Diesel 更安全,SQLAlchemy 更灵活。 **Q: FastAPI 迁移到 Actix-Web 需要注意什么?** A: 注意 actor 模型与 asyncio 模型的差异、Rust 所有权系统要求数据显式传递、序列化需用 serde 替代 Pydantic,且生命周期约束更严格。 **Q: Rust 后端相比 Python 性能提升多少?** A: 基准测试中 Rust(Actix-Web + Diesel)相比 Python(FastAPI + SQLAlchemy)吞吐量提升约 40 倍,P99 延迟降低约 15 倍。 **Q: 什么时候应该迁移到 Rust?** A: 服务面临性能瓶颈、需要极低延迟、或高并发 GC 停顿影响体验时值得迁移。团队不熟悉 Rust 或项目需快速迭代时不建议迁移。 ### 行业动态 — Awwwards 设计模式 **Q: Awwwards 评判网站的标准是什么?** A: Awwwards 从四个维度评判:设计(35%)、可用性(35%)、创意(20%)、内容(10%)。获评 SOTD 需要各方面达到卓越水准。 **Q: 滚动叙事常用哪些技术?** A: 核心技术包括 Lenis 平滑滚动、GSAP ScrollTrigger 实现 Pinning 和动画触发、Lottie 播放滚动驱动矢量动画、Three.js 配合滚动控制场景变化。 **Q: Three.js 后处理管线如何搭建?** A: 通过 EffectComposer 串联多个 Pass:RenderPass 渲染基础场景,BloomPass 添加辉光,自定义 ShaderPass 实现色差等效果。每个 Pass 读取前一个输出纹理,形成管线。 **Q: 获奖网站的性能预算通常是多少?** A: 通常首屏加载 < 3 秒、LCP < 2.5 秒、总资源 < 5MB、JS bundle < 500KB。性能优化是获奖的关键挑战。 **Q: Web 物理交互常用哪些库?** A: 2D 物理首选 Matter.js,3D 场景推荐 Cannon.js。复杂需求可使用 Rapier(Rust + WASM)获得更高性能。 ## 联系信息 - 邮箱: hello@readme.wiki - GitHub: https://github.com/shanyuduo - 网站: https://readme.wiki