# ثري.جي إس

ثري.جي إس (بالإنجليزية: Three.js)‏ هي مكتبة جافا سكريبت تستخدم مع متصفحات الويب وواجهة برمجة تطبيقات (API) ولإنشاء رسومات كمبيوتر متحركة ثلاثية الأبعاد وعرضها في مستعرض ويب باستخدام ويب جي إل . الكود الأصلي موجود في مستودع على غيت هاب .

## نظرة عامة

تسمح ثري.جي إس بإنشاء رسوم متحركة ثلاثية الأبعاد يتم تسريعها باستخدام وحدة المعالجة الرسومية (GPU) باستخدام لغة جافاسكريبت كجزء من موقع ويب دون الاعتماد على المكونات الإضافية للمتصفح . هذا ممكن بسبب ظهور تقنية الـوب جي إل، وهو واجهة برمجة تطبيقات ( API ) رسومية منخفضة المستوى تم إنشاؤها خصيصًا للويب.
تتيح المكتبات عالية المستوى مثل ثري.جي إس أو GLGE و سين جي إس و فيلو جي إل وغيرها الكثير إمكانية تأليف رسوم متحركة معقدة ثلاثية الأبعاد للكمبيوتر لعرضها في المتصفح دون بذل الجهد المطلوب لتطبيق تقليدي مستقل أو إضافة للمتصفح.

## التاريخ

تم إصدار ثري.جي إس لأول مرة بواسطة ريكاردو كابيلو على غيت هاب في أبريل 2010. يمكن إرجاع أصول المكتبة إلى مشاركته في الديموسين في أوائل القرن الحادي والعشرين. تم تطوير الكود في الأصل بلغة أكشن سكربت التي يستخدمها أدوبي فلاش، ثم تم نقله لاحقًا إلى جاقا سكريبت في عام 2009. في ذهن كابيبلو ، كانت هناك نقطتان قويتان بررتا تخليه عن أكشن سكريبت: أولاً، قدمت جافا سكريبت استقلالية أكبر للنظام الأساسي. ثانيًا، لن تحتاج التطبيقات المكتوبة بلغة جافاسكريبت إلى أن يجمعها المطور مسبقًا، على عكس تطبيقات فلاش.
تشمل المساهمات الإضافية من كابيلو تصميم آبي، وكانفا رينديرير، وSVGRenderer، كونها مسؤولة عن دمج الـ Commits من قبل المساهمين المختلفين في المشروع.
مع ظهور وب جي إل، تمكن بول برنت من تنفيذ تقنية العرض الجديدة بسهولة تامة حيث تم تصميم ثري.جي إس باستخدام كود العرض كـمودل وليس كإضافة جوهره. بدأ Branislav Uličný ، أحد المساهمين الأوائل، بـ ثري.جي إس في عام 2010 بعد أن نشر عددًا من عروض وب جي إل التوضيحية على موقعه الخاص. لقد أراد إمكانات عارض وب جي إل في ثري.جي إس لتتجاوز قدرات CanvasRenderer أو SVGRenderer. تشمل مساهماته الرئيسية بشكل عام المواد والتظليل والمعالجة اللاحقة.
بعد فترة وجيزة من تقديم وب جي إل 1.0 على فايروفوكس 4 في مارس 2011 ، انضم جوشوا كو. قام ببناء أول عرض توضيحي لـ ثري.جي إس للنص ثلاثي الأبعاد في سبتمبر 2011. غالبًا ما تتعلق مساهماته بتوليد الهندسة.
لدى ثري.جي إس أكثر من 1500 مساهم على غيت هاب.

## الميزات

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

## أنظر أيضا

* إطار عمل جافا سكريبت
* مكتبة جافا سكريبت

## مراجع

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

## قراءة متعمقة

* Dirksen، Jos (2013). Learning Three.js: The JavaScript 3D Library for WebGL. UK: Packt Publishing. ISBN:9781782166283. مؤرشف من الأصل في 2023-01-27.
* Parisi، Tony (2012). Webgl Up and Running. Sebastopol: Oreilly & Associates Inc. ISBN:9781449323578.
* Seidelin، Jacob (2012). HTML5 games : creating fun with HTML5, CSS3, and WebGL. Chichester, West Sussex, U.K: John Wiley & Sons. ص. 412–414. ISBN:978-1119975083. مؤرشف من الأصل في 2022-03-22. - "Three.js can make game development easier by taking care of low-level details"
* Williams، James (2012). Learning HTML5 game programming : a hands-on guide to building online games using Canvas, SVG, and WebGL. Upper Saddle River, NJ: Addison-Wesley. ص. 117–120, 123–131, 136, 140–142. ISBN:978-0321767363. مؤرشف من الأصل في 2022-03-22.
* Raasch، Jon (2011). Smashing WebKit. Chichester: Wiley. ص. 181, 182, 216. ISBN:978-1119999133.