鈿★笍 Limited Black Friday Deal
Get 50% off on the React Three Fiber Ultimate Course with the promo code ULTIMATE50
Buy Now
Fundamentals
Core
Master
Shaders
Sombras
En gr谩ficos 3D, las sombras se utilizan para simular el efecto de la luz golpeando un objeto y proyectando una sombra en otro objeto.
Proyectar y recibir sombras
React Three Fiber facilita la adici贸n de sombras a una escena.
Lo primero que necesitamos hacer es habilitar las sombras globalmente a帽adiendo el prop shadows
en el componente <Canvas />
:
<Canvas shadows />
Luego, debes habilitar las sombras en los objetos que proyectar谩n sombras:
<mesh castShadow />
Y en los objetos que recibir谩n sombras:
<mesh receiveShadow />
Por supuesto, puedes habilitar ambos en el mismo objeto:
<mesh castShadow receiveShadow />
Hag谩moslo en nuestro proyecto:
<Canvas shadows camera={{ position: [0, 3, 3] }}> {/* ... */} <mesh rotation-y={Math.PI / 4} castShadow> <boxGeometry /> <meshStandardMaterial color="white" /> </mesh> <mesh rotation-x={-Math.PI / 2} position-y={-0.5} receiveShadow> <planeGeometry args={[5, 5]} /> <meshStandardMaterial color="white" /> </mesh> </Canvas>
Hemos a帽adido shadows
en el <Canvas />
, castShadow
en el cubo y receiveShadow
en el plano, pero no ocurre nada.
Esto se debe a que tambi茅n necesitamos indicar qu茅 luz proyectar谩 sombras.
{ /* ... */ } <directionalLight position={[5, 5, 5]} intensity={0.5} castShadow />; { /* ... */ }
Ahora, podemos ver la sombra del cubo en el plano. Tambi茅n podemos establecer sombras desde m煤ltiples luces:
{/* ... */} <directionalLight position={[5, 5, 5]} intensity={0.5} castShadow /> <directionalLight position={[-5, 5, 5]} intensity={0.5} color="red" castShadow /> {/* ... */}
Ve c贸mo el color de la sombra es afectado por el color de las luces.
Vamos a a帽adir una esfera a la escena:
End of lesson preview
To get access to the entire lesson, you need to purchase the course.