All Projects β†’ pmndrs β†’ React Postprocessing

pmndrs / React Postprocessing

Licence: mit
πŸ“¬ postprocessing for react-three-fiber

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to React Postprocessing

Lba2remake
A Little Big Adventure 2 / Twinsen's Odyssey reimplementation in JavaScript / Three.js / React
Stars: ✭ 116 (-62.7%)
Mutual labels:  3d, webgl, threejs
React Three Editable
πŸ‘€ ✏️ Edit your react-three-fiber scene with a visual editor without giving up control over your code.
Stars: ✭ 261 (-16.08%)
Mutual labels:  3d, webgl, threejs
Earthjs
D3 Earth JS
Stars: ✭ 128 (-58.84%)
Mutual labels:  3d, webgl, threejs
Giojs
🌏 A Declarative 3D Globe Data Visualization Library built with Three.js
Stars: ✭ 1,528 (+391.32%)
Mutual labels:  3d, webgl, threejs
Glas
WebGL in WebAssembly with AssemblyScript
Stars: ✭ 278 (-10.61%)
Mutual labels:  3d, webgl, threejs
Solar System Threejs
The Solar System: Modeled to scale with Three.js
Stars: ✭ 107 (-65.59%)
Mutual labels:  3d, webgl, threejs
Pathfinding Visualizer Threejs
A visualizer for pathfinding algorithms in 3D with maze generation, first-person view and device camera input.
Stars: ✭ 209 (-32.8%)
Mutual labels:  3d, webgl, threejs
Harp.gl
harp.gl - web map rendering engine
Stars: ✭ 828 (+166.24%)
Mutual labels:  3d, webgl, threejs
Wechart
Create all the [ch]arts by cax or three.js - Cax ε’Œ three.js εˆ›ι€ δΈ€εˆ‡ε›Ύ[葨]
Stars: ✭ 152 (-51.13%)
Mutual labels:  3d, webgl, threejs
Jeelizfacefilter
Javascript/WebGL lightweight face tracking library designed for augmented reality webcam filters. Features : multiple faces detection, rotation, mouth opening. Various integration examples are provided (Three.js, Babylon.js, FaceSwap, Canvas2D, CSS3D...).
Stars: ✭ 2,042 (+556.59%)
Mutual labels:  3d, webgl, threejs
React 3d Viewer
A 3D model viewer component based on react.js δΈ€δΈͺ基于react.jsηš„η»„δ»ΆεŒ–3dζ¨‘εž‹ζŸ₯ηœ‹ε·₯ε…·
Stars: ✭ 100 (-67.85%)
Mutual labels:  3d, webgl, threejs
Enable3d
πŸ•ΉοΈ Standalone 3D Framework / Physics for three.js (using ammo.js) / 3D extension for Phaser 3
Stars: ✭ 271 (-12.86%)
Mutual labels:  3d, webgl, threejs
Three Forcegraph
Force-directed graph as a ThreeJS 3d object
Stars: ✭ 84 (-72.99%)
Mutual labels:  3d, webgl, threejs
3dio Js
JavaScript toolkit for interior apps
Stars: ✭ 255 (-18.01%)
Mutual labels:  3d, webgl, threejs
Vimeo Depth Player
A WebVR volumetric video renderer that uses color-depth based videos hosted on Vimeo.
Stars: ✭ 65 (-79.1%)
Mutual labels:  3d, webgl, threejs
3d Force Graph
3D force-directed graph component using ThreeJS/WebGL
Stars: ✭ 2,386 (+667.2%)
Mutual labels:  3d, webgl, threejs
Roygbiv
A 3D engine for the Web
Stars: ✭ 499 (+60.45%)
Mutual labels:  3d, webgl, threejs
Trois
✨ ThreeJS + VueJS 3 + ViteJS ⚑
Stars: ✭ 648 (+108.36%)
Mutual labels:  3d, webgl, threejs
Andromeda
This is a WebGL recreation of the popular music video Gorillaz - Andromeda.
Stars: ✭ 145 (-53.38%)
Mutual labels:  3d, webgl, threejs
Threejs Sandbox
Set of experiments and extensions to THREE.js.
Stars: ✭ 163 (-47.59%)
Mutual labels:  3d, webgl, threejs

react-postprocessing

Version Downloads Discord Shield

react-postprocessing is a postprocessing wrapper for react-three-fiber. This is not (yet) meant for complex orchestration of effects, but can save you hundreds of LOC for a straight forward effects-chain.

npm install @react-three/postprocessing

Bubbles Take Control

These demos are real, you can click them! They contain the full code, too. πŸ“¦

Why postprocessing and not three/examples/jsm/postprocessing?

From https://github.com/vanruesc/postprocessing

This library provides an EffectPass which automatically organizes and merges any given combination of effects. This minimizes the amount of render operations and makes it possible to combine many effects without the performance penalties of traditional pass chaining. Additionally, every effect can choose its own blend function.

All fullscreen render operations also use a single triangle that fills the screen. Compared to using a quad, this approach harmonizes with modern GPU rasterization patterns and eliminates unnecessary fragment calculations along the screen diagonal. This is especially beneficial for GPGPU passes and effects that use complex fragment shaders.

Postprocessing also supports srgb-encoding out of the box, as well as WebGL2 MSAA (multi sample anti aliasing), which is react-postprocessing's default, you get high performance crisp results w/o jagged edges.

What does it look like?

Well, you can do pretty much anything, but here's an example combining a couple of effects (live demo).

Bubbles Demo
import React from 'react'
import { EffectComposer, DepthOfField, Bloom, Noise, Vignette } from '@react-three/postprocessing'
import { Canvas } from 'react-three-fiber'

function App() {
  return (
    <Canvas>
      {/* Your regular scene contents go here, like always ... */}
      <EffectComposer>
        <DepthOfField focusDistance={0} focalLength={0.02} bokehScale={2} height={480} />
        <Bloom luminanceThreshold={0} luminanceSmoothing={0.9} height={300} />
        <Noise opacity={0.02} />
        <Vignette eskil={false} offset={0.1} darkness={1.1} />
      </EffectComposer>
    </Canvas>
  )
}

Documentation

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].