JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3
  • Score
    100M100P100Q49875F
  • License BSD-3-Clause

A high-performance, highly extensible post-processing effects library for t3d.js

Package Exports

  • t3d-effect-composer
  • t3d-effect-composer/addons/ContactShadowEffect.js
  • t3d-effect-composer/addons/FastGBuffer.js
  • t3d-effect-composer/addons/Inspector.js
  • t3d-effect-composer/addons/KuwaharaEffect.js
  • t3d-effect-composer/addons/SMAAEffect.js
  • t3d-effect-composer/addons/SharpnessEffect.js
  • t3d-effect-composer/addons/SkylineEffect.js
  • t3d-effect-composer/addons/TransitionEffect.js
  • t3d-effect-composer/addons/bloom/UnrealBloomEffect.js
  • t3d-effect-composer/addons/decal/Decal.js
  • t3d-effect-composer/addons/decal/DecalHelper.js
  • t3d-effect-composer/addons/decal/DecalShader.js
  • t3d-effect-composer/addons/godrays/GodRaysEffect.js
  • t3d-effect-composer/addons/gtao/GTAODebugger.js
  • t3d-effect-composer/addons/gtao/GTAOEffect.js
  • t3d-effect-composer/addons/lensflare/LensflareBuffer.js
  • t3d-effect-composer/addons/lensflare/LensflareDebugger.js
  • t3d-effect-composer/addons/lensflare/LensflareEffect.js
  • t3d-effect-composer/addons/lensflare/LensflareMarker.js
  • t3d-effect-composer/addons/lut/LUT3dlLoader.js
  • t3d-effect-composer/addons/lut/LUTCubeLoader.js
  • t3d-effect-composer/addons/lut/LutEffect.js
  • t3d-effect-composer/addons/lut/LutShader.js
  • t3d-effect-composer/addons/overlay/OverlayBuffer.js
  • t3d-effect-composer/addons/overlay/OverlayEffect.js
  • t3d-effect-composer/addons/sketch/ColorSketchEffect.js
  • t3d-effect-composer/addons/sketch/SketchEffect.js
  • t3d-effect-composer/addons/sketch/SketchShader.js
  • t3d-effect-composer/addons/transmission/TransmissionBuffer.js
  • t3d-effect-composer/addons/transmission/TransmissionEffect.js
  • t3d-effect-composer/addons/uv/UVBuffer.js
  • t3d-effect-composer/addons/uv/UVDebugger.js
  • t3d-effect-composer/addons/volume/ThicknessBuffer.js
  • t3d-effect-composer/addons/volume/VolumeEffect.js
  • t3d-effect-composer/addons/volume/VolumeLightingGenerator.js
  • t3d-effect-composer/addons/weather/HeightFogEffect.js
  • t3d-effect-composer/addons/weather/RainEffect.js
  • t3d-effect-composer/addons/weather/RainMesh.js
  • t3d-effect-composer/addons/weather/SnowEffect.js
  • t3d-effect-composer/addons/weather/SnowMesh.js
  • t3d-effect-composer/examples/jsm/ContactShadowEffect.js
  • t3d-effect-composer/examples/jsm/FastGBuffer.js
  • t3d-effect-composer/examples/jsm/Inspector.js
  • t3d-effect-composer/examples/jsm/KuwaharaEffect.js
  • t3d-effect-composer/examples/jsm/SMAAEffect.js
  • t3d-effect-composer/examples/jsm/SharpnessEffect.js
  • t3d-effect-composer/examples/jsm/SkylineEffect.js
  • t3d-effect-composer/examples/jsm/TransitionEffect.js
  • t3d-effect-composer/examples/jsm/bloom/UnrealBloomEffect.js
  • t3d-effect-composer/examples/jsm/decal/Decal.js
  • t3d-effect-composer/examples/jsm/decal/DecalHelper.js
  • t3d-effect-composer/examples/jsm/decal/DecalShader.js
  • t3d-effect-composer/examples/jsm/godrays/GodRaysEffect.js
  • t3d-effect-composer/examples/jsm/gtao/GTAODebugger.js
  • t3d-effect-composer/examples/jsm/gtao/GTAOEffect.js
  • t3d-effect-composer/examples/jsm/lensflare/LensflareBuffer.js
  • t3d-effect-composer/examples/jsm/lensflare/LensflareDebugger.js
  • t3d-effect-composer/examples/jsm/lensflare/LensflareEffect.js
  • t3d-effect-composer/examples/jsm/lensflare/LensflareMarker.js
  • t3d-effect-composer/examples/jsm/lut/LUT3dlLoader.js
  • t3d-effect-composer/examples/jsm/lut/LUTCubeLoader.js
  • t3d-effect-composer/examples/jsm/lut/LutEffect.js
  • t3d-effect-composer/examples/jsm/lut/LutShader.js
  • t3d-effect-composer/examples/jsm/overlay/OverlayBuffer.js
  • t3d-effect-composer/examples/jsm/overlay/OverlayEffect.js
  • t3d-effect-composer/examples/jsm/sketch/ColorSketchEffect.js
  • t3d-effect-composer/examples/jsm/sketch/SketchEffect.js
  • t3d-effect-composer/examples/jsm/sketch/SketchShader.js
  • t3d-effect-composer/examples/jsm/transmission/TransmissionBuffer.js
  • t3d-effect-composer/examples/jsm/transmission/TransmissionEffect.js
  • t3d-effect-composer/examples/jsm/uv/UVBuffer.js
  • t3d-effect-composer/examples/jsm/uv/UVDebugger.js
  • t3d-effect-composer/examples/jsm/volume/ThicknessBuffer.js
  • t3d-effect-composer/examples/jsm/volume/VolumeEffect.js
  • t3d-effect-composer/examples/jsm/volume/VolumeLightingGenerator.js
  • t3d-effect-composer/examples/jsm/weather/HeightFogEffect.js
  • t3d-effect-composer/examples/jsm/weather/RainEffect.js
  • t3d-effect-composer/examples/jsm/weather/RainMesh.js
  • t3d-effect-composer/examples/jsm/weather/SnowEffect.js
  • t3d-effect-composer/examples/jsm/weather/SnowMesh.js
  • t3d-effect-composer/src/CameraJitter.js
  • t3d-effect-composer/src/DefaultEffectComposer.js
  • t3d-effect-composer/src/EffectComposer.js
  • t3d-effect-composer/src/RenderTargetCache.js
  • t3d-effect-composer/src/Utils.js
  • t3d-effect-composer/src/buffers/AccumulationBuffer.js
  • t3d-effect-composer/src/buffers/Buffer.js
  • t3d-effect-composer/src/buffers/BufferAttachManager.js
  • t3d-effect-composer/src/buffers/ColorMarkBuffer.js
  • t3d-effect-composer/src/buffers/GBuffer.js
  • t3d-effect-composer/src/buffers/MarkBuffer.js
  • t3d-effect-composer/src/buffers/NonDepthMarkBuffer.js
  • t3d-effect-composer/src/buffers/SceneBuffer.js
  • t3d-effect-composer/src/debuggers/ColorMarkBufferDebugger.js
  • t3d-effect-composer/src/debuggers/Debugger.js
  • t3d-effect-composer/src/debuggers/GBufferDebugger.js
  • t3d-effect-composer/src/debuggers/MarkBufferDebugger.js
  • t3d-effect-composer/src/debuggers/NonDepthMarkBufferDebugger.js
  • t3d-effect-composer/src/debuggers/SSAODebugger.js
  • t3d-effect-composer/src/debuggers/SSRDebugger.js
  • t3d-effect-composer/src/effects/BloomEffect.js
  • t3d-effect-composer/src/effects/BlurEdgeEffect.js
  • t3d-effect-composer/src/effects/ChromaticAberrationEffect.js
  • t3d-effect-composer/src/effects/ColorCorrectionEffect.js
  • t3d-effect-composer/src/effects/DOFEffect.js
  • t3d-effect-composer/src/effects/Effect.js
  • t3d-effect-composer/src/effects/FXAAEffect.js
  • t3d-effect-composer/src/effects/FilmEffect.js
  • t3d-effect-composer/src/effects/GhostingEffect.js
  • t3d-effect-composer/src/effects/GlowEffect.js
  • t3d-effect-composer/src/effects/InnerGlowEffect.js
  • t3d-effect-composer/src/effects/OutlineEffect.js
  • t3d-effect-composer/src/effects/RadialTailingEffect.js
  • t3d-effect-composer/src/effects/SSAOEffect.js
  • t3d-effect-composer/src/effects/SSREffect.js
  • t3d-effect-composer/src/effects/SoftGlowEffect.js
  • t3d-effect-composer/src/effects/TAAEffect.js
  • t3d-effect-composer/src/effects/TailingEffect.js
  • t3d-effect-composer/src/effects/ToneMappingEffect.js
  • t3d-effect-composer/src/effects/VignettingEffect.js
  • t3d-effect-composer/src/legacy.js
  • t3d-effect-composer/src/main.js

Readme

t3d-effect-composer

NPM Package

A high-performance, highly extensible post-processing effects library for t3d.js.

ExamplesDocuments(文档)

Features

  • Post-processing Effects: SSAO/GTAO, SSR, Color Correction, Depth of Field, Bloom, FXAA, Chromatic Aberration, Vignetting, Blur Edge, Film Grain, and more
  • Mesh Effects: Inner Glow, Glow, Soft Glow, Motion Tailing, Radial Tailing, Ghosting, Outline, and more
  • Extended Rendering: Decal Projection, Lens Flare, LUT Color Grading, Overlay Compositing, Sketch Rendering, UV Debugging, Volume Rendering, and more

Running Examples

To run the examples locally:

  1. Clone the repository
  2. Install dependencies for examples:
    npm run install-examples
  3. Start a local server in the examples directory and open any HTML file

The examples demonstrate various effects and features of the t3d-effect-composer library.

Quick Start

let width = window.innerWidth || 2;
let height = window.innerHeight || 2;

const canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
document.body.appendChild(canvas);

const gl = canvas.getContext('webgl2', {
    antialias: true,
    alpha: false,
    stencil: true
});
const renderer = new t3d.WebGLRenderer(gl);
const screenRenderTarget = new t3d.ScreenRenderTarget(canvas);
screenRenderTarget.setColorClearValue(0.1, 0.1, 0.1, 1);

const effectComposer = new t3d.DefaultEffectComposer(width, height, {});

const scene = new t3d.Scene();

const geometry = new t3d.BoxGeometry(8, 8, 8);
const material = new t3d.PBRMaterial();
const mesh = new t3d.Mesh(geometry, material);
scene.add(mesh);

const ambientLight = new t3d.AmbientLight(0xffffff);
scene.add(ambientLight);

const directionalLight = new t3d.DirectionalLight(0xffffff);
directionalLight.position.set(-5, 5, 5);
directionalLight.lookAt(new t3d.Vector3(), new t3d.Vector3(0, 1, 0));
scene.add(directionalLight);

const camera = new t3d.Camera();
camera.position.set(0, 10, 30);
camera.lookAt(new t3d.Vector3(0, 0, 0), new t3d.Vector3(0, 1, 0));
camera.setPerspective(45 / 180 * Math.PI, width / height, 1, 1000);
scene.add(camera);

function loop(count) {
    requestAnimationFrame(loop);
    
    mesh.euler.y = count / 1000 * .5; // rotate cube

    scene.updateMatrix();
    scene.updateRenderStates(camera);
    scene.updateRenderQueue(camera);

    effectComposer.render(renderer, scene, camera, screenRenderTarget);
}
requestAnimationFrame(loop);

function onWindowResize() {
    width = window.innerWidth || 2;
    height = window.innerHeight || 2;

    camera.setPerspective(45 / 180 * Math.PI, width / height, 1, 1000);

    screenRenderTarget.resize(width, height);
    effectComposer.resize(width, height);
}
window.addEventListener("resize", onWindowResize, false);