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 рджреВрд░рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪред
React Three Fiber: The Ultimate Guide to 3D Web Development
тЬи You have reached the end of the preview тЬи
Go to the next level with Three.js and React Three Fiber!
Get full access to this lesson and the complete course when you enroll:
- ЁЯФУ Full lesson videos with no limits
- ЁЯТ╗ Access to the final source code
- ЁЯОУ Course progress tracking & completion
- ЁЯТм Invite to our private Discord community
One-time payment. Lifetime updates included.