Three.js هي مكتبة JavaScript تستخدم مع متصفحات الويب وواجهة برمجة تطبيقات (API) وتُستخدم لإنشاء رسومات كمبيوتر متحركة ثلاثية الأبعاد وعرضها في مستعرض ويب باستخدام WebGL . تمت استضافة الكود الأصلي في مستودع على GitHub .[3]

Three.js
معلومات عامة
نوع
المطور الأصلي
Ricardo Cabello (Mr.doob)
المطورون
Three.js Authors[1]
موقع الويب
معلومات تقنية
لغة البرمجة
الإصدار الأول
24 أبريل 2010؛ منذ 14 سنة (2010-04-24)[2]
الرخصة

نظرة عامة

تسمح Three.js بإنشاء رسوم متحركة ثلاثية الأبعاد يتم تسريعها باستخدام وحدة المعالجة الرسومية (GPU) باستخدام لغة JavaScript كجزء من موقع ويب دون الاعتماد على المكونات الإضافية للمتصفح .[4][5] هذا ممكن بسبب ظهور تقنية الـ WebGL ، [6] وهو واجهة برمجة تطبيقات ( API ) رسومية منخفضة المستوى تم إنشاؤها خصيصًا للويب.[7]

تتيح المكتبات عالية المستوى مثل Three.js أو GLGE و SceneJS و PhiloGL وغيرها الكثير إمكانية تأليف رسوم متحركة معقدة ثلاثية الأبعاد للكمبيوتر لعرضها في المتصفح دون بذل الجهد المطلوب لتطبيق تقليدي مستقل أو إضافة للمتصفح.[8]

التاريخ

تم إصدار Three.js لأول مرة بواسطة Ricardo Cabello على GitHub في أبريل 2010. يمكن إرجاع أصول المكتبة إلى مشاركته في الديموسين في أوائل القرن الحادي والعشرين.[9] تم تطوير الكود في الأصل بلغة ActionScript التي يستخدمها Adobe Flash ، ثم تم نقله لاحقًا إلى JavaScript في عام 2009. في ذهن Cabello ، كانت هناك نقطتان قويتان بررتا التحول عن ActionScript: أولاً ، قدمت JavaScript استقلالية أكبر للنظام الأساسي. ثانيًا ، لن تحتاج التطبيقات المكتوبة بلغة JavaScript إلى أن يجمعها المطور مسبقًا ، على عكس تطبيقات Flash.

تشمل المساهمات الإضافية من Cabello تصميم API ، و CanvasRenderer ، و SVGRenderer ، كونها مسؤولة عن دمج الـ Commits من قبل المساهمين المختلفين في المشروع.

مع ظهور WebGL ، تمكن Paul Brunt من تنفيذ تقنية العرض الجديدة بسهولة تامة حيث تم تصميم Three.js باستخدام كود العرض كـ Module وليس في جوهره.[10] بدأ Branislav Uličný ، أحد المساهمين الأوائل ، بـ Three.js في عام 2010 بعد أن نشر عددًا من عروض WebGL التوضيحية على موقعه الخاص. لقد أراد إمكانات عارض WebGL في Three.js لتتجاوز قدرات CanvasRenderer أو SVGRenderer.[10] تشمل مساهماته الرئيسية بشكل عام المواد والتظليل والمعالجة اللاحقة.

بعد فترة وجيزة من تقديم WebGL 1.0 على Firefox 4 في مارس 2011 ، انضم Joshua Koo. قام ببناء أول عرض توضيحي لـ Three.js للنص ثلاثي الأبعاد في سبتمبر 2011.[11] غالبًا ما تتعلق مساهماته بتوليد الهندسة.

لدى Three.js أكثر من 1500 مساهم على GitHub.[12]

الميزات

يتضمن Three.js الميزات التالية:[13]

  • التأثيرات.
  • المشاهد: إضافة وإزالة الكائنات في وقت التشغيل ؛ ضباب
  • الكاميرات: المنظور والحركات. وحدات التحكم: كرة التتبع و FPS والمسار والمزيد
  • الرسوم المتحركة: التركيبات ، الحركية إلى الأمام ، الحركية العكسية ، التحويل ، والإطار الرئيسي
  • الأضواء: الأضواء المحيطة ، والاتجاه ، والنقطة ، والنقطة ؛ الظلال: يلقي ويستقبل
  • المواد: لامبرت وفونج والتظليل الناعم والقوام والمزيد
  • Shaders: الوصول إلى إمكانات OpenGL Shading Language ( GLSL ) الكاملة: توهج العدسة ، وتمرير العمق ، ومكتبة ما بعد المعالجة الشاملة
  • الكائنات: الشبكات والجزيئات والعفاريت والخطوط والشرائط والعظام والمزيد - كل ذلك بمستوى التفاصيل
  • الهندسة: المستوى ، المكعب ، الكرة ، الحلقة ، النص ثلاثي الأبعاد ، والمزيد ؛ المعدلات: مخرطة ، بثق ، وأنبوب
  • برامج تحميل البيانات: ثنائي ، وصورة ، و JSON ، ومشهد
  • الأدوات المساعدة: مجموعة كاملة من وظائف الوقت والرياضيات ثلاثية الأبعاد بما في ذلك frustum ، و matrix ، و quaternion ، و UVs ، والمزيد
  • التصدير والاستيراد: أدوات مساعدة لإنشاء ملفات JSON متوافقة مع Three.js من الداخل: Blender و openCTM و FBX و Max و OBJ
  • الدعم: وثائق API قيد الإنشاء. المنتدى العام وويكي يعملان بشكل كامل.
  • أمثلة: أكثر من 150 ملفًا من أمثلة الترميز بالإضافة إلى الخطوط والنماذج والأنسجة والأصوات وملفات الدعم الأخرى
  • تصحيح الأخطاء: Stats.js ، [14] WebGL Inspector ، [15] Three.js Inspector [16]
  • الواقع الافتراضي والواقع المعزز عبر WebXR [17]

يعمل Three.js في جميع المتصفحات التي يدعمها WebGL 1.0.

يتم توفير Three.js بموجب ترخيص MIT .

أنظر أيضا

مراجع

  1. ^ أ ب "Three.js/license". github.com/mrdoob. مؤرشف من الأصل في 2023-03-18. اطلع عليه بتاريخ 2012-05-20.
  2. ^ "First commit". github.com/mrdoob. مؤرشف من الأصل في 2023-03-18. اطلع عليه بتاريخ 2012-05-20.
  3. ^ Mr.doob (4 مارس 2021)، mrdoob/three.js، مؤرشف من الأصل في 2023-01-08، اطلع عليه بتاريخ 2021-03-04
  4. ^ O3D
  5. ^ يونيتي (محرك ألعاب)
  6. ^ "Khronos Releases Final WebGL 1.0 Specification". Khronos Group. 3 مارس 2011. مؤرشف من الأصل في 2023-01-27. اطلع عليه بتاريخ 2012-06-02.
  7. ^ "WebGL". The Khronos Group (بEnglish). 19 Jul 2011. Archived from the original on 2023-01-17. Retrieved 2022-01-22.
  8. ^ Crossley، Rob (11 يناير 2010). "Study: Average dev costs as high as $28m". Intent Media Ltd. مؤرشف من الأصل في 2010-01-13. اطلع عليه بتاريخ 2012-06-02.
  9. ^ NVScene. "NVScene 2015 Session: Reinventing The Wheel - One Last Time (Ricardo Cabello)". YouTube. مؤرشف من الأصل في 2023-01-27.
  10. ^ أ ب "Three.js White Paper". Github.com. 21 مايو 2012. مؤرشف من الأصل في 2021-09-28. اطلع عليه بتاريخ 2013-05-09.
  11. ^ "Three.js White Paper". Github.com. 21 مايو 2012. مؤرشف من الأصل في 2021-09-28. اطلع عليه بتاريخ 2013-05-09."Three.js White Paper".
  12. ^ Mr.doob (3 أغسطس 2020)، mrdoob/three.js، مؤرشف من الأصل في 2023-01-08، اطلع عليه بتاريخ 2020-08-03
  13. ^ mrdoob (26 نوفمبر 2012). "Features mrdoob/three.js Wiki GitHub". Github.com. مؤرشف من الأصل في 2021-03-08. اطلع عليه بتاريخ 2013-05-09.
  14. ^ "Stats.js". Github.com. مؤرشف من الأصل في 2023-03-12. اطلع عليه بتاريخ 2013-05-09.
  15. ^ "WebGL Inspector". Benvanik.github.com. مؤرشف من الأصل في 2023-03-14. اطلع عليه بتاريخ 2013-05-09.
  16. ^ "Three.js Inspector Labs". Zz85.github.com. مؤرشف من الأصل في 2023-01-27. اطلع عليه بتاريخ 2013-05-09.
  17. ^ "three.js examples". threejs.org. مؤرشف من الأصل في 2023-03-15.

قراءة متعمقة

روابط خارجية