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

Three.js
الشعار
معلومات عامة
نوع
نظام التشغيل
النموذج المصدري
المطور الأصلي
Ricardo Cabello (Mr.doob)
المطورون
Three.js Authors[1]
موقع الويب
معلومات تقنية
لغة البرمجة
الإصدار الأول
24 أبريل 2010؛ منذ 14 سنة (2010-04-24)[2]
الإصدار الأخير
  • 161
    (31 يناير 2024)
    [4]
  • 0.151.3
    (3 أبريل 2023)
    [3] عدل القيمة على Wikidata
المستودع
الرخصة

نظرة عامة عدل

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

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

التاريخ عدل

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

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

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

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

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

الميزات عدل

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

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

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

قراءة متعمقة عدل

روابط خارجية عدل