Repolode
pmndrs

pmndrs/postprocessing

为 three.js 提供全屏后期处理效果(如泛光、SSAO、调色)的 WebGL 库。

Star
2,957
Fork
258
未关闭 Issue
30
最近提交
6天前

这是什么?

postprocessing 是一个为 three.js 场景添加全屏后期处理效果的 JavaScript 库。后期处理在场景渲染完成后,对最终画面进行图像空间上的处理。库的核心是 EffectComposer,它按顺序执行各个 pass:RenderPass 负责绘制场景,EffectPass 负责应用特效。

EffectPass 会把任意组合的特效合并到尽可能少的渲染操作中,因此叠加多个特效时无需为每个特效单独串联 pass,性能开销更低。每个特效还可以定义自己的混合函数。全屏操作使用覆盖屏幕的单个三角形而非四边形。库支持高精度的 HalfFloat 帧缓冲,适合 HDR 风格的渲染流程,并提供 ToneMappingEffect 用于将 HDR 颜色映射到可显示的输出。

内置特效包括泛光(Bloom)、模糊、景深、故障效果、体积光、描边、SSAO、像素化、基于 LUT 的调色和暗角等。开发者也可以编写自定义特效和 pass。

核心功能

  • 01将多个特效合并到单个 EffectPass 中,减少渲染操作。
  • 02内置泛光、SSAO、景深、描边、调色等多种特效。
  • 03每个特效可单独设置混合函数。
  • 04提供高精度 HalfFloat 帧缓冲,适用于 HDR 风格渲染。
  • 05包含 ToneMappingEffect,用于 HDR 到 LDR 的颜色转换。
  • 06支持编写自定义特效和 pass。

适用场景

  • 为 three.js 产品展示或游戏场景添加泛光和辉光效果。
  • 为 WebGL 场景加入扫描线、像素化或故障等复古风格效果。
  • 使用 LUT 文件对三维场景进行调色。
  • 为选中对象实现冲击波或描边等交互效果。

标签

#threejs#webgl#post-processing#graphics#shaders#real-time#image-effects#2d-filter-effects#composer#effects

常见问题

postprocessing 是什么?
为 three.js 提供全屏后期处理效果(如泛光、SSAO、调色)的 WebGL 库。 postprocessing 是一个为 three.js 场景添加全屏后期处理效果的 JavaScript 库。后期处理在场景渲染完成后,对最终画面进行图像空间上的处理。库的核心是 EffectComposer,它按顺序执行各个 pass:RenderPass 负责绘制场景,EffectPass 负责应用特效。
postprocessing 可以免费使用吗?用的什么许可证?
postprocessing 以 Zlib 许可证开源。用于商业产品前,请先确认许可证条款。
postprocessing 还在维护吗?
活跃维护中。postprocessing 最近一次提交是在 2026年11月1日。
postprocessing 适合用来做什么?
为 three.js 产品展示或游戏场景添加泛光和辉光效果。 为 WebGL 场景加入扫描线、像素化或故障等复古风格效果。 使用 LUT 文件对三维场景进行调色。 为选中对象实现冲击波或描边等交互效果。
在哪里获取 postprocessing?
源代码和安装说明在 GitHub 上:https://github.com/pmndrs/postprocessing

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目