Post processing

Starter pack

Post processing est une technique utilisée pour appliquer des effets à une scène après qu'elle ait été rendue. Ceci est couramment utilisé pour ajouter des effets comme le blur, le bloom et la correction des couleurs.

Utilisé correctement, le post processing peut grandement améliorer la qualité visuelle d'une scène.

Voici la scène avec laquelle nous allons travailler :

Unprocessed starter project

Et ce que nous obtiendrons :

Processed scene

Le résultat est bien meilleur, non ?

React Postprocessing

React Postprocessing est une bibliothèque qui facilite l'ajout d'effets de post processing à vos projets React Three Fiber.

Bien qu'il y ait d'autres moyens d'ajouter des effets de post processing à Three.js, React Postprocessing organise automatiquement et fusionne toute combinaison d'effets donnée.

Cela permet de simplifier l'ajout d'effets à votre scène avec le moins de surcharge de performance possible.

Commençons par installer la bibliothèque :

yarn add @react-three/postprocessing

Pour l'utiliser, il nous suffit de regrouper nos effets dans le composant EffectComposer.

Pour garder notre code organisé, créons un nouveau fichier components/Effects.jsx et ajoutons le code suivant :

import { EffectComposer } from "@react-three/postprocessing";

export const Effects = () => {
  return <EffectComposer></EffectComposer>;
};

Nous pouvons maintenant importer et utiliser ce composant dans notre fichier App.jsx :

import { Effects } from "./components/Effects";

import { Canvas } from "@react-three/fiber";
import { Effects } from "./components/Effects";
import { Experience } from "./components/Experience";
function App() {
  return (
    <>
      <Canvas camera={{ position: [-1, 0.225, 5.91], fov: 42 }}>
        <color attach="background" args={["#333333"]} />
        <Experience />
        <Effects />
      </Canvas>
    </>
  );
}

export default App;

Si nous regardons notre scène, nous pouvons voir tous nos objets comme s'ils utilisaient le meshNormalMaterial.

Normal pass

C'est parce que par défaut, le composant EffectComposer va rendre la scène en utilisant l'effet NormalPass. Comme nous n'avons ajouté aucun autre effet, c'est la seule chose que nous voyons.

Nous pouvons désactiver cela en définissant la prop disableNormalPass sur true :

<EffectComposer disableNormalPass></EffectComposer>

Maintenant, notre EffectComposer est prĂŞt Ă  recevoir des effets.

La liste des effets disponibles peut être trouvée dans la documentation de React Postprocessing.

Pour chaque effet, il inclut un exemple de code avec les différentes props disponibles pour la personnalisation. Certains effets sont également accompagnés d'exemples CodeSandbox pour visualiser et expérimenter.

DĂ©couvrons ensemble certains d'entre eux !

Vignette

Si vous faites de la photographie, vous ĂŞtes peut-ĂŞtre familier avec le terme vignette. Il s'agit d'un assombrissement des coins d'une image.

Vignette aide à attirer l'attention du spectateur vers le centre de la scène.

Ajoutons-le Ă  notre fichier Effects.jsx :

End of lesson preview

To get access to the entire lesson, you need to purchase the course.