公司动态

three.js 编辑器的后期处理效果

📅 2026/7/29 9:47:48
three.js 编辑器的后期处理效果
three.js 编辑器的后期处理效果本文围绕three.js 编辑器一款基于 Three.js 的 AI 驱动可视化低代码编辑器展开。- 在线预览 https://z2586300277.github.io/threejs-editor/- GitHub 开源仓库 https://github.com/z2586300277/three-editor- 文档地址 https://z2586300277.github.io/three-editor/docs/dist如果说材质决定对象的长相灯光决定场景的氛围那么后期处理就是给画面加上的那层“滤镜”。three.js 编辑器基于 EffectComposer 构建了一条完整的后期处理管线用户可以在 FXAA、轮廓光、辉光、SAO、SSR、屏幕遮罩等通道之间自由组合无需手写 Pass 队列。EffectComposer 管线编辑器默认使用effectComposer渲染路径而不是直接调用renderer.render。所有 Pass 按 order 排序后依次执行最终通过outputPass输出到屏幕。template.json中的effectComposer字段完整记录了每条 Pass 的启用状态与参数保存场景时后期处理设置也会一并落盘。轮廓光与高亮outlinePass是编辑器交互体验的重要一环。当用户选中对象时编辑器会调用setOutlinePass([obj])让目标物体边缘发出高亮轮廓。轮廓颜色、强度、粗细、发光与脉冲周期都可以在“后期处理”面板中调节。AI 助手的setOutlineSelection动作也是基于这条 Pass方便通过指令高亮特定对象。辉光与氛围unrealBloomPass负责提取高亮区域并产生泛光效果非常适合科技感场景、霓虹灯效、魔法粒子等视觉风格。用户可以在面板里调整strength、radius与threshold找到最合适的辉光强度。开启 Bloom 后原本平淡的发光材质会立刻变得富有层次感。环境光遮蔽与屏幕空间反射ssrPass提供屏幕空间反射saoPass提供屏幕空间环境光遮蔽。这两项技术能在不增加太多性能开销的前提下显著提升场景的真实感SSAO 让模型接地处产生自然的接触阴影SSR 让光滑地面反射出周围物体。对于建筑可视化、产品展示等对真实感要求较高的场景这两条 Pass 非常实用。FXAA 与输出色彩空间为了消除锯齿编辑器默认开启fxaaPass。outputPass则负责把线性工作流的结果转换到目标色彩空间确保 Bloom 等效果不会过曝或偏色。在“渲染配置”面板中用户可以切换outputColorSpace、toneMapping与toneMappingExposure进一步控制最终画面的影调。AI 与后期处理的边界后期处理属于编辑器能力中的“视觉增强层”。AI 可以通过openOtherPanel或setEditorSettings调起后期处理面板也可以读取effectComposer的当前配置。但由于后期处理参数对审美比较敏感AI 更多承担“开启某条 Pass”或“给出推荐值”的角色最终微调仍建议由人类完成。代码一瞥下面是场景模板中默认后期处理配置的片段{effectComposer: { renderWay: effectComposer, fxaaPass: { enabled: true, order: 60, multPixel: 1 }, outlinePass: { enabled: true, order: 40, edgeStrength: 3, edgeGlow: 0, edgeThickness: 1, visibleEdgeColor: 16449071, hiddenEdgeColor: 16449071 }, outputPass: { enabled: true, order: 50 }, saoPass: { enabled: false, order: 10, saoBias: 0.5, saoIntensity: 0.01 }, ssrPass: { enabled: false, order: 30, maxDistance: 0.01, opacity: 0.5 }, unrealBloomPass: { enabled: false, order: 20, strength: 1.5, radius: 0.4, threshold: 0.85 } } }从轮廓高亮到辉光、从 SSAO 到 SSRthree.js 编辑器的后期处理系统让用户像调图层一样调 3D 画面。不需要理解 Pass 的渲染顺序不需要手写 Shader打开开关、拖动滑块画面的电影感就出来了。