Promo Icon

鈿★笍 Limited Black Friday Deal

Get 50% off on the React Three Fiber Ultimate Course with the promo code ULTIMATE50

Buy Now

$85.00 $42.50

Staging

Starter pack

En esta lecci贸n exploraremos formas y componentes para hacer que nuestras experiencias 3D sean m谩s profesionales.

Aunque el contenido de una escena es importante, la forma en que se presenta puede hacer una gran diferencia. Los modelos 3D mejor hechos pueden verse mediocres si no se presentan de una buena manera.

Nuestro proyecto inicial es un Tesla Model 3 mostrado en el centro de la pantalla.

Tesla Model 3

La escena contiene un orbit control para que podamos movernos alrededor del coche. Configur茅 el control para siempre tener una buena vista del coche. Esto tambi茅n es parte de la puesta en escena y de la experiencia profesional.

Solo hay una fuente de luz: una luz ambiental. Esta apenas ilumina la escena y el coche se ve plano.

隆Veamos c贸mo podemos mejorar esto! Te prometo que el resultado final se ver谩 mucho mejor.

Stage

Stage de la biblioteca Drei es un componente contenedor que crea una configuraci贸n de iluminaci贸n de estudio adecuada para tu escena.

Envolvamos nuestro coche en un componente Stage:

import { Stage } from "@react-three/drei";
// ...

export const Experience = () => {
  return (
    <>
      {/* ... */}
      <Stage>
        <TeslaModel3 scale={0.012} position-z={0.6} />
      </Stage>
      {/* ... */}
    <>
  );
};

El coche ya se ve mucho mejor! La iluminaci贸n es m谩s realista y el coche se ve m谩s 3D. 隆Incluso tenemos sombras!

Podemos personalizar el componente Stage pas谩ndole algunos props:

<Stage intensity={0.4} preset={"upfront"} environment={"studio"}>
  <TeslaModel3 scale={0.012} position-z={0.6} />
</Stage>
  • intensity controla la intensidad de la luz. El valor predeterminado es 0.5.
  • preset controla la configuraci贸n de la iluminaci贸n. El valor predeterminado es rembrandt.
  • environment controla el preset del entorno. El valor predeterminado es city. (cubrir茅 el entorno m谩s adelante en esta lecci贸n)

Este componente es muy 煤til y una forma r谩pida de hacer que tu escena se vea mejor. Tambi茅n tiene otros props que puedes consultar en la documentaci贸n.

A veces necesitar谩s tener m谩s control, por eso exploraremos otras formas de crear entornos de iluminaci贸n.

Color de fondo y niebla

Hasta ahora en este curso, siempre hemos mantenido el fondo transparente. Esto dio lugar a un fondo blanco debido al fondo de nuestra p谩gina HTML.

Lo que significa que puedes cambiar el color de fondo estableciendo el color de fondo del body de tu p谩gina en CSS e incluso usar degradados o im谩genes.

En index.css agrega lo siguiente:

body {
  margin: 0;
  background-color: #d9afd9;
  background-image: linear-gradient(0deg, #d9afd9 0%, #97d9e1 100%);
}

Este es un degradado que encontr茅 en Grabient.

Background gradient

Nuestra escena ahora tiene un nicho fondo.

No siempre podemos confiar en el fondo de la p谩gina para establecer el color de fondo de nuestra escena. Por ejemplo, si queremos usar niebla, esto requiere que la escena tenga un color de fondo.

Para agregar un color de fondo a nuestra escena, necesitamos adjuntar un componente color a la propiedad background de la scene.

Vamos a agregar un fondo azul oscuro a nuestra escena:

<Canvas camera={{ position: [-3, 1.5, 12], fov: 30 }}>
  <color attach="background" args={["#171720"]} />
  {/* ... */}
</Canvas>

Dark blue background

Nuestra escena 3D ahora tiene un fondo y oculta el degradado de la p谩gina.

Ahora agreguemos un poco de niebla a nuestra escena:

<Canvas camera={{ position: [-3, 1.5, 12], fov: 30 }}>
  <color attach="background" args={["#171720"]} />
  <fog attach="fog" args={["#171720", 20, 30]} />
  {/* ... */}
</Canvas>

El componente fog toma 3 argumentos:

  • color: el color de la niebla.
  • near: la distancia desde la c谩mara donde la niebla empieza.
  • far: la distancia desde la c谩mara donde la niebla termina.

Se desvanece suavemente entre las distancias near y far.

End of lesson preview

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