Graphics

13 篇内容

技术文章Eli Bendersky

Relative velocity and closing speed

本文讲解物理模拟或游戏引擎中计算两个物体接近速度的方法。作者先定义相对速度向量,并分解为连线方向的法向分量和切向分量;再通过向量投影和单位向量,使用点积求得闭合速度这一标量,其符号表示物体是否相互靠近。文章用多个具体示例演示计算过程,包括不同相对位置和速度情况,强调符号规约和瞬时性。最后将闭合速度推广为时间函数,证明其等于相对距离对时间的导数,并指出该公式在二维和三维空间中均适用,但假设物体可视为质点。

推荐收录,因为文章用清晰的向量分析和逐步推导,将闭合速度这一物理概念转化为可直接实现的算法,附有详细示例避免符号错误。适合游戏开发、物理引擎或模拟系统的开发者作为参考,其分解思路和投影方法可迁移至其他涉及方向分量计算的场景。

工程实践Blender Developers Blog

Geometry Nodes Physics

本文介绍了Blender 5.2 LTS中基于几何节点(Geometry Nodes)的新头发与布料动力学系统。核心实现采用声明式XPBD仿真框架,通过内置XPBD求解器节点处理多种约束类型,并提供Cloth Dynamics和Hair Dynamics两种易用资产。系统允许通过效应器(Effector)扩展行为,包括碰撞体、自定义力和自定义效应器,并支持标签过滤机制。文章还回顾了当前状态、实验性限制,并展望了未来支持刚体、软体和流体的多求解器统一框架,以及模态节点工具在交互式编辑中的应用。新系统目前仍为实验性,设计可能调整,且缺少现成的力场资产,需要用户自定义。

推荐收录,因为文章详细解析了Blender新一代基于节点的物理模拟架构,从整体框架到XPBD求解器、效应器扩展和求解器统一设计,展示了图形学工程实践中系统设计与可扩展性的权衡。对计算机图形学工程师、动画工具开发者及关注实时模拟的读者,本文提供了可迁移的架构思路和实现细节,尤其适合理解如何将物理仿真集成到节点式工作流中。

工具笔记NVIDIA Technical Blog

Debugging Ray Tracing Applications Using NVIDIA OptiX Toolkit

本文介绍了 NVIDIA OptiX Toolkit(OTK)中用于调试光线追踪应用的实用工具,包括 API 验证层、GPU 调试器及性能分析器。文章从常见失败场景(如无效 API 参数、黑帧、GPU 端线程错误)出发,说明如何利用 OTK 暴露的调试功能定位问题,并给出具体使用方法和命令行示例。内容侧重于工程实践中的故障诊断流程,而非纯理论,适合需要快速排查 OptiX 应用错误的开发者。

收录理由:文章提供了可直接操作的 OptiX 调试工作流和工具链,对从事 GPU 光线追踪开发的读者具有明确的可迁移价值;内容来自 NVIDIA 官方技术博客,示例具体,非泛泛介绍。建议新增“Debugging”标签以更精确反映主题。

工程实践Blender Developers Blog

Remote Asset Libraries

文章详细介绍了 Blender 5.2 LTS 引入的远程资产库系统,它允许 Blender 从远程服务器发现并下载资产,同时保持完整的离线使用能力。系统采用静态 HTTP 服务器和 JSON 列表文件的设计,无需动态后端,降低了部署和维护成本;资产必须自包含在单个 .blend 文件中,且不支持外部依赖。作者还讨论了版本兼容性处理、未来对多文件资产与授权钩子的改进方向,以及该方案适用于小团队和个体的边界。全文展示了从需求到架构取舍、实现细节和局限性的完整工程思路。

该文来自 Blender 官方开发者博客,系统阐述了远程资产库的架构设计、限制与未来规划,不是简单的功能介绍。其“离线优先、无动态服务器”的设计哲学对开源图形工具的资源管理有很高参考价值,适合 Blender 用户、工具开发者以及关注资产管线工程化的读者,可以迁移到类似的静态资源分发场景中。

工程实践NVIDIA Technical Blog

Streamlining Resource Binding with End-to-End Support for Vulkan Descriptor Heaps

文章围绕 Vulkan 中的资源绑定机制,讨论如何通过 descriptor heaps 让着色器访问纹理、缓冲区等 GPU 资源时减少繁琐的逐项绑定操作。作者先解释传统绑定方式的管理成本与 CPU 开销,再介绍端到端支持的实现思路,即把资源组织、句柄分配和运行时访问路径统一起来,以降低绑定频率并改善提交效率。文章还强调这种方案对驱动、API 和应用侧需要协同适配,不能简单理解为“更快的接口”,而是绑定模型与资源生命周期的整体重构。其价值主要体现在资源数量大、绑定切换频繁的渲染场景,但收益会受硬件、驱动成熟度和应用架构影响。

文章直接讨论 Vulkan 资源绑定模型、descriptor heaps 的端到端支持路径,以及它对 CPU 开销和绑定管理复杂度的影响,属于可迁移的 GPU 图形系统经验。适合做图形引擎、渲染管线和底层 API 设计参考,但其收益依赖具体驱动与使用场景,不宜脱离上下文套用。

工程实践Blender Developers Blog

Cycles Texture Cache

这篇文章介绍了 Blender Cycles 在 5.2 LTS 中引入的纹理缓存系统,目标是在大量图像纹理参与渲染时显著降低显存和内存占用。作者不仅说明了功能入口和 tx 文件生成流程,还系统解释了 GPU/CPU 统一缓存策略、基于 tile 的虚拟纹理映射、ray differentials 计算 mipmap 层级,以及在大规模渲染中如何通过分块调度与淘汰策略保持较稳定的内存使用。文章同时给出了适用边界:收益高度依赖场景纹理占比,旧 GPU、viewport 交互、packed textures 和过滤细节仍有后续优化空间。

推荐收录,因为它不是单纯的功能发布,而是把一个真实图形渲染系统中的纹理缓存设计、GPU 约束和内存权衡讲得比较完整,具有长期参考价值。对于做图形渲染、GPU 计算或资源管理的读者,这篇文章能直接借鉴虚拟纹理、批量失效重跑和分块驱逐等设计思路。

工程实践Blender Developers Blog

Geometry Nodes Workshop: September 2025

这篇 Blender 开发者博客总结了 2025 年 9 月 Geometry Nodes 工作坊的设计讨论,重点回顾了 Blender 5.0 前后的节点系统演进。文章覆盖了 closures、bundles、列表、体积网格、UV Tangent 等已落地或实验中的能力,并说明了哪些改进已进入主线、哪些仍在设计中。核心议题集中在几类长期架构问题:如何用 bundle 表达物理世界并驱动求解器、如何把复杂结果从几何修改器输出到其他对象、以及如何改进节点编辑器在缩放和默认输入下的可读性与可组合性。文中还讨论了 XPBD 毛发/物理解算、BVH 与 SDF 碰撞取舍、默认输入可复用方案、以及面向多对象和模态节点工具的执行模型。整体上它更像一次开放式工程设计复盘,信息密度高,但不少方案仍处于原型或未定稿阶段,适合关注 Blender 节点架构与图形工具链演进的读者参考。

收录依据明确:文章直接给出 Geometry Nodes 的设计取舍、实现路径和 5.0 版本进展,而不是功能宣传。适合图形工具、DCC 插件和节点式系统设计读者,尤其可借鉴 bundle、求解器接口和节点编辑器交互的架构思路。

工程实践Blender Developers Blog

Volume Grids in Geometry Nodes

这篇文章介绍了 Blender 5.0 在 Geometry Nodes 中引入 volume grids 的设计与实现,使体数据不再只是与几何体互转的中间格式,而可以被直接编辑、采样和组合。作者解释了 grid 作为带数据类型的体素容器如何依托 OpenVDB 存储,并通过变换、背景值、active 状态和 tile 分层来兼顾稀疏性与性能。文中还说明了 fields 与 grids 的边界:field 是可在任意位置求值的函数,grid 是离散数据容器,二者通过 Field to Grid、Sample Grid 等节点互相转换。基于这一机制,Blender 5.0 可以支持 SDF 建模、布尔运算、平滑、advect、curl/gradient 等体积操作。文章也坦承这一设计经历了多年迭代,早期按命名属性访问 grid 的方案因复杂而被放弃,最终改为 grid socket,以换取更清晰的模型和更好的可扩展性。

收录价值明确:文章直接给出了体积网格的数据结构、字段求值边界、OpenVDB 稀疏存储和节点设计的具体证据,而不是只做功能宣传。适合图形学、DCC 工具和体积建模读者参考,其关于接口重设计与长期迭代取舍的经验也有较强可迁移性。

工程实践fasterthanli.me

Making our own spectrogram

文章以“自己实现一个频谱图”为目标,先说明频谱图如何把声音波形分解为不同频率,再把结果映射成随时间滚动的可视化图像。作者并没有只停留在概念层面,而是结合自己的 Rust 应用,讲解了项目由哪些 crate 组成、音频线程与图形线程如何协作,以及数据如何从采集、分析到绘制流转。文中重点不只是“怎么画出来”,还包括实时处理时的组织方式、线程分工和界面刷新策略,体现出一个可运行工具的整体结构。它更偏向具体实现与工程组装,而不是纯理论推导,因此对理解音频可视化管线很有帮助。边界在于文章主题集中在作者这套实现上,读者若要迁移到其他语言或更专业的 DSP 场景,还需要补充信号处理基础。

文中直接给出了频率提取、Rust crate 组合、音频/图形线程协作和绘制流程,证据明确,不是泛泛展示效果。适合做音频可视化、实时图形或 Rust 工程实现的参考,但迁移到更严肃的 DSP 场景时仍需补足信号处理细节。

技术文章Josh W Comeau

An Interactive Guide to SVG Paths

这篇文章是一篇面向前端开发者的 SVG path 交互式教程,核心目标是把最难理解的 `<path>` 元素拆解清楚。作者从 SVG 基本图元讲起,重点解释 path 的紧凑命令语法、坐标含义以及常见指令如何组合成线段、曲线和闭合路径,并通过交互示例帮助读者把“字符串”直观映射到实际图形。文章强调,path 的强大之处在于用一套统一表达方式描述复杂轮廓,因此既能画简单图标,也能处理更复杂的矢量形状。它同时也揭示了该元素的学习门槛:语法高度压缩、可读性差,需要结合可视化工具和反复练习才能掌握。整体更偏向“理解与手写 path”的基础教程,而不是 SVG 渲染原理、动画系统或工程集成方案。

文章直接围绕 SVG `<path>` 的语法与可视化理解展开,属于前端与网页图形开发中长期可复用的基础知识。适合需要手写图标、图表或矢量路径的开发者,交互式讲解对建立坐标与曲线直觉尤其有帮助。

工程实践Blender Developers Blog

New Socket Shapes

这篇文章解释了 Blender 5.0 重设计 Geometry Nodes 端口形状的原因与方案。旧方案用圆形、菱形和带点菱形同时表达“单值”“字段”以及“当前链接状态”,但面对列表、体积网格等新数据结构时信息过载且含义模糊,尤其带点菱形难以理解。新设计改为让形状只表达节点“期望/生成”的数据结构:竖线表示单值,菱形表示字段,圆形表示动态类型,网格/列表形状则对应仍在开发中的新结构。文章还说明了分组输入输出可自动推断并允许覆盖,虚线链接继续表示字段传递,tooltip 用于补充默认值等细节。它承认新方案会丢失部分旧信息,但认为这是为引入 volume grids、lists 以及未来更多节点能力所必须的权衡。

推荐收录,因为文章给出了从旧交互符号到新语义映射的完整设计依据,明确展示了“信息表达能力”与“可扩展性”之间的取舍。对节点编辑器、可视化语义设计和开源产品演进的读者都有直接参考价值,尤其适合做界面符号系统和数据结构表达设计的复盘。

工程实践Blender Developers Blog

Blender for Windows on Arm

这篇文章回顾了 Blender 在 Windows on Arm(WoA)上的移植与加速进展,说明该项目在 Microsoft、Linaro 和 Qualcomm 的合作支持下,已能在 Snapdragon 等 ARM64 Windows 设备上稳定运行。文章重点介绍了从 Blender 4.3 开始的官方 WoA 支持,以及在 4.5 LTS 中引入 Vulkan 后,EEVEE 视口播放和渲染性能得到显著提升。作者还给出了针对 Adreno GPU 的基准测试,显示 Vulkan 相比 OpenGL 在不同示例场景下有明显收益,尤其是播放帧率和渲染耗时改善突出。文中进一步指出,当前优化重点仍在着色器优化、Adreno 瓦片架构利用和 UI 性能,长远目标是到 2026 年为 Snapdragon GPU 上的 Cycles 提供硬件加速光追。整体来看,这是一篇围绕跨平台图形栈迁移、驱动适配与性能验证的工程案例,但结论主要适用于具备 Vulkan 和特定 ARM GPU 支持的环境。

推荐收录,因为文章给出了 WoA 移植、Vulkan 后端切换和实际基准数据,能直接看到图形应用在 ARM Windows 设备上的性能收益与边界。适合做跨平台图形开发、GPU 适配和开源工程协作的参考,但其结论强依赖 Blender、Adreno 和 Vulkan 生态。

工程实践Blender Developers Blog

Geometry Nodes Workshop: July 2025

这篇文章是 Blender 在 2025 年 7 月 Geometry Nodes Workshop 的设计纪要,概述了近 8 个月来的进展与后续路线。重点包括:Hair Dynamics 采用“先做出垂直切片、再补齐工作流”的阶段性目标;Lists 以最小实验特性落地;Closures 让 color ramp 和 curve mapping 以“函数”形式进入节点组;以及节点组界面布局、菜单路径、骨骼信息节点等配套能力。文章还讨论了通用 Viewer、Custom Viewer 与 Debug View 的统一思路,以及让更高级的节点特性在 shading/compositing 中复用的可能方案。整体内容偏设计取舍而非成品功能说明,很多部分仍在 PR 或实验阶段,适合关注 Blender 节点系统演进、可视化编程 UI 和图形工具架构的人参考。

收录理由很明确:文章来自 Blender 官方开发博客,直接呈现了 Geometry Nodes 的真实设计讨论、阶段性里程碑和未决架构取舍,而不是功能宣传。它适合图形工具、节点系统和开源工程读者参考,尤其能借鉴“先验证垂直切片”“用 closure 抽象 UI 组件”“统一 viewer 与 debug 视图”等可迁移方法。