Camera, Lights, Scenegraph، Renderers
Three.js برای ساخت و نمایش صحنههای سهبعدی از چهار بخش اصلی استفاده میکند:
-
Camera – دید دوربین
-
Lights – نورپردازی
-
Scenegraph – ساختار سلسلهمراتبی اشیاء
-
Renderers – رندرینگ صحنه
۱️⃣ Camera (دوربین)
🔹 تعریف
-
دوربین تعیین میکند چه چیزی و از چه زاویهای دیده شود
-
دو نوع رایج:
| Camera | توضیح |
|--------|-------|
| PerspectiveCamera | دید پرسپکتیو، شبیه چشم انسان |
| OrthographicCamera | دید بدون پرسپکتیو، برای نقشه و UI |
🔹 مثال
۲️⃣ Lights (نورها)
🔹 تعریف
-
نورها ظاهر و سایه اشیاء را تعیین میکنند
-
انواع نور رایج:
| Light | توضیح |
|-------|-------|
| AmbientLight | نور عمومی، بدون جهت |
| DirectionalLight | نور شبیه خورشید، قابل سایهاندازی |
| PointLight | نور نقطهای در همه جهات |
| SpotLight | نور مخروطی با جهت مشخص |
| HemisphereLight | نور آسمان و زمین |
🔹 مثال
۳️⃣ Scenegraph (ساختار سلسلهمراتبی)
🔹 تعریف
-
صحنه یک درخت سلسلهمراتبی از Object3Dهاست
-
هر Object میتواند فرزند داشته باشد و Transform فرزندها به والدها وابسته است
🔹 مثال
📌 چرخش یا حرکت parent روی child نیز تاثیر میگذارد
۴️⃣ Renderers (رندرینگ)
🔹 تعریف
-
Renderer صحنه و دوربین را به خروجی نمایش میدهد
-
انواع رایج:
| Renderer | توضیح |
|----------|-------|
| WebGLRenderer | سریع، قابل استفاده برای اکثر پروژهها |
| CSS3DRenderer | رندر HTML/CSS به عنوان سهبعدی |
| SVGRenderer | رندر SVG، مناسب برای گرافیک ساده |
🔹 مثال WebGLRenderer
۵️⃣ مثال کامل
📌 این مثال شامل:
-
دوربین پرسپکتیو
-
نور Directional
-
ساختار سلسلهمراتبی صحنه
-
Renderer WebGL برای نمایش
۶️⃣ نکات مهم
-
هر Scene شامل Object3Dها و نورهاست
-
Camera دید شما را تعیین میکند
-
Renderer خروجی صحنه را نمایش میدهد
-
Scenegraph امکان مدیریت سلسلهمراتبی اشیاء و Transformها را میدهد