Renderers مختلف
Three.js چند نوع Renderer دارد که هر کدام کاربرد و محدودیتهای خاص خودشون رو دارن:
۱️⃣ WebGLRenderer (رایجترین)
🔹 تعریف
-
بر پایه WebGL
-
سرعت بالا، GPU محور
-
پشتیبانی از سایهها، نور و PBR
🔹 ایجاد WebGLRenderer
📌 مناسب اکثر پروژهها، بازیها، شبیهسازیها و واقعگرایی
۲️⃣ CanvasRenderer (قدیمی و ساده)
🔹 تعریف
-
بر پایه Canvas 2D
-
سریعتر برای صحنههای ساده
-
پشتیبانی محدود از سایه، نور و متریال پیشرفته
🔹 نکات
-
از نسخه r110 به بعد رسمی حذف شده، فقط برای پروژههای ساده قدیمی
۳️⃣ CSS3DRenderer
🔹 تعریف
-
اشیاء DOM (HTML/CSS) را به صورت سهبعدی رندر میکند
-
تعامل با HTML واقعی ممکن است
🔹 مثال
📌 مناسب UI سهبعدی، تابلوها، متنهای HTML در صحنه
۴️⃣ SVGRenderer
🔹 تعریف
-
رندر کردن صحنه به صورت SVG
-
خروجی برداری (Vector)
-
قابل بزرگنمایی بدون افت کیفیت
🔹 نکات
-
سرعت کمتر نسبت به WebGL
-
مناسب گرافیکهای دو بعدی، نمودارها و اشکال ساده
۵️⃣ مقایسه سریع Rendererها
Renderer | پایه | نور و سایه | کیفیت | کاربرد |
---|---|---|---|---|
WebGLRenderer | GPU | ✅ | بالا | بازیها، واقعگرایی، PBR |
CanvasRenderer | CPU | ❌ محدود | متوسط | صحنههای ساده، قدیمی |
CSS3DRenderer | DOM | ❌ محدود | متوسط | UI سهبعدی، متن HTML |
SVGRenderer | SVG | ❌ محدود | برداری | نمودارها، گرافیک برداری |
۶️⃣ نکات مهم
-
WebGLRenderer تقریبا استاندارد تمام پروژههاست
-
CSS3DRenderer و SVGRenderer بیشتر برای ترکیب با DOM و بردارها کاربرد دارند
-
CanvasRenderer امروزه کاربرد چندانی ندارد مگر پروژههای قدیمی یا آموزشی
۷️⃣ مثال ساده WebGLRenderer
📌 در این مثال، WebGLRenderer صحنه را با نور و سایه بهینه نمایش میدهد.