سایهها (Shadows)
۱️⃣ فعالسازی سایهها در Renderer
برای اینکه سایهها نمایش داده بشن، ابتدا باید Renderer رو برای سایهها فعال کنیم:
۲️⃣ انواع سایهها
-
castShadow → مشخص میکند که شیء سایه ایجاد کند
-
receiveShadow → مشخص میکند که شیء سایه دیگران را دریافت کند
مثال:
۳️⃣ نورها و سایهها
برای اینکه یک نور سایه تولید کند، باید castShadow = true داشته باشد:
📌 اکثر نورها قابلیت سایه دارن، از جمله:
-
DirectionalLight ✅
-
SpotLight ✅
-
PointLight ✅
-
AmbientLight ❌ (نور محیطی سایه ایجاد نمیکنه)
۴️⃣ تنظیمات پیشرفته سایه
-
shadow.mapSize → کیفیت سایه (عدد بالاتر → سایه دقیقتر)
-
shadow.bias → رفع مشکلات سایهها (مثل سایه شناور یا z-fighting)
۵️⃣ مثال کامل با سایهها
📌 این مثال نشان میدهد:
-
مکعب سایه میاندازد
-
صفحه سایه دریافت میکند
-
DirectionalLight سایه را تولید میکند
۶️⃣ نکات مهم
-
همیشه Renderer باید
shadowMap.enabled = true
باشد -
AmbientLight سایه تولید نمیکند، باید نور جهتدار یا نقطهای داشته باشیم
-
سایهها روی GPU پردازش میشوند، پس کیفیت بالاتر → مصرف منابع بیشتر
-
ترکیب نورها و سایهها به صحنه واقعگرایانه بودن میدهد