Helpers, Utilities و Constants

Three.js علاوه بر کلاس‌های اصلی، شامل مجموعه‌ای از ابزارها و ثابت‌هاست که توسعه صحنه را آسان‌تر می‌کنند.

۱️⃣ Helpers (ابزارهای کمکی)

🔹 تعریف

  • ابزارهایی برای نمایش بصری یا debug صحنه

  • اشیاء واقعی صحنه را تغییر نمی‌دهند، صرفاً برای توسعه و تنظیمات

🔹 انواع رایج

Helperتوضیحمثال
AxesHelperنمایش محورهای X,Y,Znew THREE.AxesHelper(5)
GridHelperنمایش شبکه زمینnew THREE.GridHelper(10, 10)
CameraHelperنمایش محدوده دید دوربینnew THREE.CameraHelper(camera)
DirectionalLightHelperنمایش جهت نورnew THREE.DirectionalLightHelper(light, 5)
BoxHelperنمایش Bounding Box یک Object3Dnew THREE.BoxHelper(mesh)

🔹 مثال

const axesHelper = new THREE.AxesHelper(5); scene.add(axesHelper);

۲️⃣ Utilities (ابزارهای کمکی محاسباتی)

🔹 تعریف

  • کلاس‌ها و توابع برای محاسبات هندسی و عملیات متداول

  • سرعت توسعه و مدیریت صحنه را افزایش می‌دهند

🔹 Utilities رایج

Utilityتوضیح
BufferGeometryUtilsادغام و تقسیم Geometryها
MathUtilsتوابع ریاضی مثل degToRad, lerp, clamp
Colorمدیریت رنگ‌ها و تبدیل‌ها
SkeletonUtilsمدیریت کپی و clone از SkinnedMesh و Animation

🔹 مثال MathUtils

const angle = THREE.MathUtils.degToRad(90); // تبدیل 90 درجه به رادیان const value = THREE.MathUtils.clamp(10, 0, 5); // محدود کردن به 0 تا 5

۳️⃣ Constants (ثابت‌ها)

🔹 تعریف

  • مقادیر ثابت برای تنظیم Renderer، ShadowMap، Blending، Wrapping و غیره

🔹 Constants رایج

Constantتوضیح
THREE.FrontSide, THREE.BackSide, THREE.DoubleSideتعیین سمت نمایش Material
THREE.RepeatWrapping, THREE.ClampToEdgeWrappingروش Wrap کردن Texture
THREE.LinearFilter, THREE.NearestFilterفیلتر Texture
THREE.PCFSoftShadowMapنوع ShadowMap نرم
THREE.AdditiveBlending, THREE.NormalBlendingنوع Blending برای Material

🔹 مثال

const texture = new THREE.TextureLoader().load('texture.png'); texture.wrapS = THREE.RepeatWrapping; texture.wrapT = THREE.RepeatWrapping; texture.minFilter = THREE.LinearMipMapLinearFilter;

۴️⃣ نکات مهم

  • Helpers فقط برای debug و طراحی صحنه استفاده می‌شوند

  • Utilities برای محاسبات و عملیات هندسی بسیار کاربردی هستند

  • Constants باعث جلوگیری از خطای تایپی و استانداردسازی کد می‌شوند

  • ترکیب این سه دسته باعث توسعه سریع، خوانا و بهینه کد می‌شود