Wawa Sensei logo
LoginEnroll now

Post procesamiento

Starter pack

Post procesamiento es una t茅cnica utilizada para aplicar efectos a una escena despu茅s de que ha sido renderizada. Esto se usa com煤nmente para agregar efectos como desenfoque, resplandor y correcci贸n de color.

Usado correctamente, el post procesamiento puede mejorar enormemente la calidad visual de una escena.

Esta es la escena con la que trabajaremos:

Unprocessed starter project

Y con lo que terminaremos:

Processed scene

El resultado luce mucho mejor, 驴verdad?

React Postprocessing

React Postprocessing es una biblioteca que facilita la adici贸n de efectos de post procesamiento a tus proyectos de React Three Fiber.

Si bien existen otras formas de a帽adir efectos de post procesamiento a Three.js, React Postprocessing organiza autom谩ticamente y fusiona cualquier combinaci贸n de efectos dada.

Esto hace que sea m谩s sencillo agregar efectos a tu escena con la m铆nima cantidad de sobrecarga de rendimiento.

Empecemos por instalar la biblioteca:

yarn add @react-three/postprocessing

Para usarla simplemente necesitamos envolver nuestros efectos en el componente EffectComposer.

Para mantener nuestro c贸digo organizado, vamos a crear un nuevo archivo components/Effects.jsx y a帽adir el siguiente c贸digo:

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

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

Ahora podemos importar y usar este componente en nuestro archivo 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 miramos nuestra escena, podemos ver todos nuestros objetos como si estuvieran usando el meshNormalMaterial.

Normal pass

Esto es porque por defecto, el componente EffectComposer renderiza la escena usando el efecto de NormalPass. Como no agregamos ning煤n otro efecto, esto es lo 煤nico que vemos.

Podemos deshabilitar esto configurando la prop disableNormalPass a true:

<EffectComposer disableNormalPass></EffectComposer>

Ahora nuestro EffectComposer est谩 listo para recibir efectos.

La lista de efectos disponibles se puede encontrar en la documentaci贸n de React Postprocessing.

Para cada efecto, incluye una muestra de c贸digo con las diferentes props disponibles para su personalizaci贸n. Algunos efectos tambi茅n vienen con ejemplos en CodeSandbox para visualizar y experimentar con ellos.

隆Vamos a descubrir algunos de ellos juntos!

Vi帽eta

Si haces fotograf铆as, es posible que est茅s familiarizado con el t茅rmino vi帽eta. Es un oscurecimiento de las esquinas de una imagen.

Vignette ayuda a atraer la atenci贸n del espectador al centro de la escena.

Vamos a a帽adirlo a nuestro archivo Effects.jsx:

End of lesson preview

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