Fundamentals
Core
Master
Shaders
Staging
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.
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 es0.5
.preset
controla la configuraci贸n de la iluminaci贸n. El valor predeterminado esrembrandt
.environment
controla el preset del entorno. El valor predeterminado escity
. (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.
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>
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.