threejs-postprocessing

Implements Three.js post-processing effects using EffectComposer, bloom, DOF, and custom screen-space shaders.

2|10|Updated Jul 28, 2026
One-click install
npx skills add https://github.com/kodingvibes/gamejam-2026 --skill threejs-postprocessing-kodingvibes
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: threejs-postprocessing
Source: https://github.com/kodingvibes/gamejam-2026/tree/main/participantes/madkoding/.agents/skills/threejs-postprocessing
Command: npx skills add https://github.com/kodingvibes/gamejam-2026 --skill threejs-postprocessing-kodingvibes

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires three.

What problem does it solve? Adding visual effects like glow, blur, depth of field, and color grading to a Three.js scene requires correctly wiring EffectComposer passes, which is error-prone and poorly documented across many scattered examples. ## Core Features & Use Cases - EffectComposer Setup: Configure render passes, handle window resize, and chain multiple effects in the correct order. - Built-in Effects: Ready-to-use snippets for bloom, selective bloom, FXAA/SMAA anti-aliasing, SSAO, depth of field, film grain, vignette, glitch, halftone, outline, and pixelation. - Custom ShaderPass: Templates for writing custom screen-space shaders such as wave distortion, color inversion, and chromatic aberration. - Use Case: When building a game scene that needs glowing neon objects with cinematic depth of field and film grain, use this Skill to assemble the full composer pipeline with correct pass ordering and resize handling. ## Quick Start Add a bloom effect with FXAA anti-aliasing to my Three.js scene using EffectComposer.

Frequently Asked Questions about threejs-postprocessing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add bloom effect in Three.js?▼

Add bloom in Three.js by creating an EffectComposer, adding a RenderPass for your scene, then adding an UnrealBloomPass with strength, radius, and threshold parameters. Render with composer.render() instead of renderer.render() in your animation loop.

How to apply bloom only to specific objects in Three.js?▼

Use selective bloom by assigning glowing objects to a dedicated layer, then darken all non-blooming meshes with a black material before rendering the bloom composer pass. Restore original materials afterward and render the final scene over the bloom output.

FXAA vs SMAA in Three.js post-processing, which should I use?▼

FXAA is a cheaper ShaderPass that smooths edges with a resolution uniform, while SMAAPass produces higher-quality anti-aliasing at greater cost. Use FXAA for performance-constrained scenes and SMAA when visual quality matters more.

Why is my Three.js post-processing not rendering after adding EffectComposer?▼

The most common cause is still calling renderer.render() instead of composer.render() in the animation loop. Also verify the RenderPass is added first and that composer.setSize() is called on window resize.

How do I write a custom shader pass in Three.js?▼

Define a shader object with a tDiffuse uniform, vertex shader, and fragment shader, then wrap it in a ShaderPass and add it to the composer. Update custom uniforms like time each frame through pass.uniforms.

Does Three.js post-processing hurt performance on mobile?▼

Each composer pass adds a full-screen render, so multiple effects can strain mobile GPUs. Reduce bloom resolution, disable expensive passes on mobile via user-agent detection, and prefer FXAA over MSAA.