Fundamentals
Core
Master
Shaders
Staging
рдЗрд╕ рдкрд╛рда рдореЗрдВ рд╣рдо рдЕрдкрдиреЗ 3D рдЕрдиреБрднрд╡реЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдкреНрд░реЛрдлреЗрд╢рдирд▓ рд▓реБрдХ рджреЗрдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдФрд░ рдШрдЯрдХреЛрдВ рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред
рдЬрдмрдХрд┐ рдПрдХ рд╕реАрди рдХрд╛ рдХрдВрдЯреЗрдВрдЯ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЙрд╕рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХрд╛ рддрд░реАрдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рд▓рд╛ рд╕рдХрддрд╛ рд╣реИред рдмреЗрд╣рддрд░реАрди рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ 3D рдореЙрдбрд▓ рд╕рд╛рдзрд╛рд░рдг рджрд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╣рдорд╛рд░рд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдХ Tesla Model 3 рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдмреАрдЪ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реИред
рд╕реАрди рдореЗрдВ рдПрдХ рдСрд░реНрдмрд┐рдЯ рдХрдВрдЯреНрд░реЛрд▓ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╣рдо рдХрд╛рд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдо рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдХрдВрдЯреНрд░реЛрд▓ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░ рдХреА рд╣рдореЗрд╢рд╛ рдЕрдЪреНрдЫреА рджреГрд╢реНрдпрддрд╛ рдмрдиреА рд░рд╣реЗред рдпрд╣ рднреА рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдФрд░ рдкреНрд░реЛрдлреЗрд╢рдирд▓ рд▓реБрдХрд┐рдВрдЧ рдЕрдиреБрднрд╡ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред
рд╡рд╣рд╛рдБ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рдХрд╛рд╢ рд╕реНрд░реЛрдд рд╣реИ: рдПрдХ рдПрдореНрдмрд┐рдПрдВрдЯ рд▓рд╛рдЗрдЯред рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рд╕реАрди рдХреЛ рд░реЛрд╢рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд╛рд░ рдлреНрд▓реИрдЯ рджрд┐рдЦрддреА рд╣реИред
рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░ рд╕рдХрддреЗ рд╣реИрдВ! рдореИрдВ рдЖрдкрдХреЛ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдмрд╣реБрдд рдмреЗрд╣рддрд░ рджрд┐рдЦреЗрдЧрд╛ред
Stage
Drei рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ Stage рдПрдХ рд░реИрдкрд░ рдШрдЯрдХ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рд╕реАрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕реНрдЯреВрдбрд┐рдпреЛ рд▓рд╛рдЗрдЯрд┐рдВрдЧ рд╕реЗрдЯрдЕрдк рдмрдирд╛рддрд╛ рд╣реИред
рдЖрдЗрдП рдЕрдкрдиреА рдХрд╛рд░ рдХреЛ Stage
рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рд▓рдкреЗрдЯреЗрдВ:
import { Stage } from "@react-three/drei"; // ... export const Experience = () => { return ( <> {/* ... */} <Stage> <TeslaModel3 scale={0.012} position-z={0.6} /> </Stage> {/* ... */} <> ); };
рдХрд╛рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдмреЗрд╣рддрд░ рджрд┐рдЦ рд░рд╣реА рд╣реИ! рд▓рд╛рдЗрдЯрд┐рдВрдЧ рдЕрдзрд┐рдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣реИ рдФрд░ рдХрд╛рд░ рдЕрдзрд┐рдХ 3D рджрд┐рдЦ рд░рд╣реА рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЫрд╛рдпрд╛рдПрдВ рднреА рд╣реИрдВ!
рд╣рдо рдХреБрдЫ рдкреНрд░реЙрдкреНрд╕ рдкрд╛рд╕ рдХрд░рдХреЗ Stage
рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
<Stage intensity={0.4} preset={"upfront"} environment={"studio"}> <TeslaModel3 scale={0.012} position-z={0.6} /> </Stage>
intensity
рд▓рд╛рдЗрдЯ рдХреА рддреАрд╡реНрд░рддрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди0.5
рд╣реИредpreset
рд▓рд╛рдЗрдЯрд┐рдВрдЧ рд╕реЗрдЯрдЕрдк рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиrembrandt
рд╣реИредenvironment
рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░реАрд╕реЗрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиcity
рд╣реИред (рд╣рдо рдЗрд╕ рдкрд╛рда рдореЗрдВ рдмрд╛рдж рдореЗрдВ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗ)
рдпрд╣ рдШрдЯрдХ рдЖрдкрдХреЗ рд╕реАрди рдХреЛ рдмреЗрд╣рддрд░ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдФрд░ рддреЗрдЬ рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЕрдиреНрдп рдкреНрд░реЙрдкреНрд╕ рднреА рд╣реИрдВ рдЬрд┐рдирдХреА рдЖрдк рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдореЗрдВ рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдо рд▓рд╛рдЗрдЯрд┐рдВрдЧ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВрдЧреЗред
рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд░рдВрдЧ рдФрд░ рдзреБрдВрдз
рдЕрдм рддрдХ рдЗрд╕ рдХреЛрд░реНрд╕ рдореЗрдВ, рд╣рдордиреЗ рд╣рдореЗрд╢рд╛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдкрд╛рд░рджрд░реНрд╢реА рд░рдЦрд╛ рдерд╛ред рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕рдлреЗрдж рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реА HTML рдкреЗрдЬ рдХрд╛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд╕рдлреЗрдж рдерд╛ред
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд░рдВрдЧ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЕрдкрдиреЗ рдкреЗрдЬ рдХреЗ body
рдХреА рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд░рдВрдЧ рдХреЛ CSS рдореЗрдВ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯреНрд╕ рдпрд╛ рдЗрдореЗрдЬреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
index.css
рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗрдВ:
body { margin: 0; background-color: #d9afd9; background-image: linear-gradient(0deg, #d9afd9 0%, #97d9e1 100%); }
рдпрд╣ рдПрдХ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ Grabient рдкрд░ рдкрд╛рдпрд╛ред
рдЕрдм рд╣рдорд╛рд░рд╛ рджреГрд╢реНрдп рд╕реБрдВрджрд░ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд╣реИред
рд╣рдо рд╣рдореЗрд╢рд╛ рдкреЗрдЬ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдЕрдкрдиреЗ рджреГрд╢реНрдп рдХреЗ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд░рдВрдЧ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдЧрд░ рд╣рдо рдзреБрдВрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдп рдХрд╛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд░рдВрдЧ рд╕реЗрдЯ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд╣рдорд╛рд░реЗ рджреГрд╢реНрдп рдореЗрдВ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд░рдВрдЧ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ scene
рдХреА background
рдкреНрд░реЙрдкрд░реНрдЯреА рдкрд░ color
рдШрдЯрдХ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рджреГрд╢реНрдп рдореЗрдВ рдЧрд╣рд░рд╛ рдиреАрд▓рд╛ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
<Canvas camera={{ position: [-3, 1.5, 12], fov: 30 }}> <color attach="background" args={["#171720"]} /> {/* ... */} </Canvas>
рд╣рдорд╛рд░реЗ 3D рджреГрд╢реНрдп рдХрд╛ рдЕрдм рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд╣реИ рдФрд░ рдпрд╣ рдкреЗрдЬ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдХреЛ рдЫреБрдкрд╛ рджреЗрддрд╛ рд╣реИред
рдЕрдм рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рджреГрд╢реНрдп рдореЗрдВ рдХреБрдЫ рдзреБрдВрдз рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:
<Canvas camera={{ position: [-3, 1.5, 12], fov: 30 }}> <color attach="background" args={["#171720"]} /> <fog attach="fog" args={["#171720", 20, 30]} /> {/* ... */} </Canvas>
fog
рдШрдЯрдХ 3 рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ:
color
: рдзреБрдВрдз рдХрд╛ рд░рдВрдЧредnear
: рдХреИрдорд░реЗ рд╕реЗ рд╡реЗ рджреВрд░реА рдЬрд╣рд╛рдВ рдзреБрдВрдз рд╢реБрд░реВ рд╣реЛрддреА рд╣реИредfar
: рдХреИрдорд░реЗ рд╕реЗ рд╡реЗ рджреВрд░реА рдЬрд╣рд╛рдВ рдзреБрдВрдз рдЦрддреНрдо рд╣реЛрддреА рд╣реИред
рдпрд╣ рдзреАрд░реЗ-рдзреАрд░реЗ рдзреБрдВрдзрд▓рд╛ рдХрд░рддрд╛ рд╣реИ near рдФрд░ far рджреВрд░рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪред
End of lesson preview
To get access to the entire lesson, you need to purchase the course.