+ [page:Float decay] - مقدار تضاؤل الضوء على طول مسافة الضوء.
+ الافتراضي هو 2.<br /><br />
+
+ إنشاء جديد [name].
+ </p>
+
+ <h2>الخصائص (Properties)</h2>
+ <p>انظر إلى قائمة [page:Light Light] للخصائص المشتركة.</p>
+
+ <h3>[property:Boolean castShadow]</h3>
+ <p>
+ إذا تم تعيينه إلى `true`، ستلقي الضوء ظلالًا ديناميكية. <b>تحذير</b>: هذا مكلف ويتطلب التعديل للحصول على الظلال المناسبة. راجع [page:PointLightShadow] للحصول على التفاصيل. الافتراضي هو `false`.
+ </p>
+
+ <h3>[property:Float decay]</h3>
+ <p>
+ مقدار تضاؤل الضوء على طول مسافة الضوء. القيمة الافتراضية هي
+ `2`.<br />
+ في سياق التصيير الفعلي الصحيح ، يجب عدم تغيير القيمة الافتراضية.
+ </p>
+
+ <h3>[property:Float distance]</h3>
+ <p>
+ `الوضع الافتراضي` - عندما تكون المسافة صفرًا ، لا يتلاشى الضوء. عندما
+ تكون المسافة غير صفرية ، سيتلاشى الضوء بشكل خطي من أقصى شدة
+ عند موقع الضوء إلى الصفر على هذه المسافة من الضوء.
+ </p>
+ <p>
+ عندما يتم تعطيل [page:WebGLRenderer.useLegacyLights legacy lighting mode] -
+ عندما تكون المسافة صفرًا ، سيتلاشى الضوء وفقًا لقانون المربع المعكوس
+ إلى مسافة لانهائية. عندما تكون المسافة غير صفرية ، سيتلاشى الضوء
+ وفقًا لقانون المربع المعكوس حتى قرب نقطة قطع المسافة ، حيث
+ سيتلاشى بسرعة وبسلاسة إلى 0. بطبعه، ليست نقطة القطع فيزيائية صحيحة.
+ </p>
+ <p>القيمة الافتراضية هي `0.0`.</p>
+
+ <h3>[property:Float intensity]</h3>
+ <p>
+ شدة الضوء. القيمة الافتراضية هي `1`.<br />
+ عندما يتم تعطيل [page:WebGLRenderer.useLegacyLights legacy lighting mode]،
+ الشدة هي شدة إضاءة الضوء المقاسة بالشمعات
+ (cd).<br /><br />
+
+ تغيير الشدة سيغير أيضًا قوة الضوء.
+ </p>
+
+ <h3>[property:Float power]</h3>
+ <p>
+ قوة الضوء.<br />
+ عندما يتم تعطيل [page:WebGLRenderer.useLegacyLights legacy lighting mode]،
+ الطاقة هي قوة إضاءة الضوء المقاسة باللومن (lm).
+ <br /><br />
+
+ تغيير الطاقة سيغير أيضًا شدة الضوء.
+ </p>
+
+ <h3>[property:PointLightShadow shadow]</h3>
+ <p>
+ [page:PointLightShadow] يستخدم لحساب ظلال هذا الضوء.<br /><br />
+
+ [page:LightShadow.camera كاميرا] lightShadow مُعَدَّلَهُ إلى
+ [page:PerspectiveCamera] مع [page:PerspectiveCamera.fov fov] من 90،
+ [page:PerspectiveCamera.aspect aspect] من 1، [page:PerspectiveCamera.near near]
+ clipping plane at 0.5 and [page:PerspectiveCamera.far far] clipping
+ plane at 500.
+ </p>
+
+ <h2>الطرق (Methods)</h2>
+ <p>انظر إلى قائمة [page:Light Light] للطرق المشتركة.</p>
+
+ <h3>[method:undefined dispose]()</h3>
+ <p>
+ تحرير المصادر المتعلقة بالجهاز GPU التي تم تخصيصها من قبل هذه المثيل. اتصل بهذه
+ ينبعث RectAreaLight بالضوء بشكل موحد عبر وجه سطح مستطيل. يمكن استخدام هذا النوع من الضوء لمحاكاة مصادر الضوء مثل النوافذ المشرقة أو الإضاءة المخططة.<br /><br />
+
+ ملاحظات هامة:
+ </p>
+ <ul>
+ <li>لا يوجد دعم للظلال.</li>
+ <li>
+ يتم دعم [page:MeshStandardMaterial MeshStandardMaterial] و
+ [page:MeshPhysicalMaterial MeshPhysicalMaterial] فقط.
+ </li>
+ <li>
+ يجب عليك تضمين
+ [link:https://threejs.org/examples/jsm/lights/RectAreaLightUniformsLib.js RectAreaLightUniformsLib] في مشهدك واستدعاء `init()`.
+ يحتاج هذه التكوينات على إنشاء الخريطة البيانية على عكس الصور العادية التي تحتاجها عند تحميلها على وحدة معالجة الرسومات. تحتاج إلى تعيين الخيارات المكافئة عبر [page:ImageBitmapLoader.setOptions] بدلاً من ذلك. راجع
+ [link:https://www.khronos.org/registry/webgl/specs/latest/1.0/#6.10 WebGL specification] للحصول على التفاصيل.
+ </p>
+
+ <h2>مثال الكود</h2>
+
+ <code>
+ const loader = new THREE.FileLoader();
+
+ //load a text file and output the result to the console
+ يتم تحديد [name] بواسطة نسيج MatCap (أو Lit Sphere) ، الذي يشفر لون المادة والظلال. <br /><br />
+ لا يستجيب [name] للأضواء لأن ملف صورة matcap يشفر الإضاءة المخبوزة. سيطرح ظلًا على كائن يتلقى الظلال (ويعمل قص الظلال) ، ولكنه لن يظلل نفسه أو يتلقى الظلال.
+ if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+ const scene = document.getElementById( 'scene' );
+
+ scene.style.width = getComputedStyle( scene ).width;
+ scene.style.height = getComputedStyle( scene ).height;
+ scene.setAttribute( 'scrolling', 'no' );
+
+ }
+
+ </script>
+
+ <h2>المنشئ (Constructor)</h2>
+
+ <h3>[name]( [param:Object parameters] )</h3>
+ <p>
+ [page:Object parameters] - (اختياري) كائن يحتوي على خاصية واحدة أو أكثر تحدد مظهر المادة. يمكن تمرير أي خاصية من المادة (بما في ذلك أي خاصية موروثة من [page:Material]) هنا. <br /><br />
+
+ الاستثناء هو الخاصية [page:Hexadecimal color] ، التي يمكن تمريرها كسلسلة ست عشرية وهي `0xffffff` (أبيض) بشكل افتراضي. يتم استدعاء [page:Color.set]( color ) داخليًا.
+ </p>
+
+ <h2>الخصائص (Properties)</h2>
+ <p>انظر إلى الفئة الأساسية [page:Material] للحصول على الخصائص المشتركة.</p>
+ يتم استخدام لون النسيج فقط ، مع تجاهل قناة الألفا إذا كانت واحدة
+ موجود. بالنسبة للقوام RGB و RGBA ، سيستخدم [page:WebGLRenderer WebGL] renderer
+ قناة اللون الأخضر عند عيّنة هذا القوام بسبب البت الإضافي
+ من الدقة المقدمة للأخضر في DXT-compressed وغير المضغوط RGB 565
+ التنسيقات. ستعمل قوام الإضاءة فقط وقوام الإضاءة / الألفا أيضًا كما هو متوقع.
+ </p>
+
+ <h3>[property:Texture bumpMap]</h3>
+ <p>
+ القوام لإنشاء خريطة بروز. تُعيَّن قِيَمُ الأبْيَضِ والأسْوَدِ إلى
+ عُمْقٍ مُدْرَكٍ بالنسبة للأضواء. لا يؤثر Bump في الواقع
+ هندسة الكائن ، فقط الإضاءة. إذا تم تعريف خريطة طبيعية
+ سيتم تجاهل هذا.
+ </p>
+
+ <h3>[property:Float bumpScale]</h3>
+ <p>
+ مدى تأثير خريطة البروز على المادة. المدى النموذجي هو 0-1.
+ الافتراضية هى 1.
+ </p>
+
+ <h3>[property:Color color]</h3>
+ <p> [page:Color] المادة ، افتراضيًا مضبوط على أبيض (0xffffff). </p>
+
+ <h3>[property:Texture displacementMap]</h3>
+ <p>
+ يؤثر خريطة التشوه على موضع رؤوس الشبكة. على عكس
+ الخرائط الأخرى التي تؤثر فقط على الضوء والظل من المادة
+ يمكن للرؤوس المشوهة أن تلقي ظلالًا ، وتحجب الأشياء الأخرى ، وغيرها
+ يعمل كهندسة حقيقية. نسيج التشوه هو صورة حيث القيمة
+ من كل بكسل (الأبيض هو الأعلى) يتم تعيينها ضد ، و
+ إعادة تحديد مواقع ، رؤوس الشبكة.
+ </p>
+
+ <h3>[خاصية:Float displacementScale]</h3>
+ <p>
+ كم يؤثر خريطة التشويه على الشبكة (حيث اللون الأسود لا يوجد تشويه ، واللون الأبيض هو التشويه الأقصى). بدون تعيين خريطة تشويه ، لا يتم تطبيق هذه القيمة. الافتراضي هو 1.
+ </p>
+
+ <h3>[property:Float displacementBias]</h3>
+ <p>
+ إزاحة قيم خريطة التشوه على رؤوس شبكة المصفوفات.
+ بدون تعيين خريطة التشوه ، لا يتم تطبيق هذه القيمة. الافتراضية هى 0.
+ </p>
+
+ <h3>[property:Boolean flatShading]</h3>
+ <p>
+ تحديد ما إذا كان يتم عرض المادة بتظليل مسطح. الافتراضية هى
+ false.
+ </p>
+
+ <h3>[property:Boolean fog]</h3>
+ <p> ما إذا كانت المادة متأثرة بالضباب. الافتراضية هى `true`. </p>
+
+ <h3>[property:Texture map]</h3>
+ <p>
+ خريطة اللون. قد يتضمن اختيارًا قناة ألفا ، عادةً مجتمعة
+ مع [page:Material.transparent .transparent] أو [page:Material.alphaTest .alphaTest].
+ الافتراضية هى null. يتم تعديل لون خريطة القوام بواسطة
+ diffuse [page:.color].
+ </p>
+
+ <h3>[property:Texture matcap]</h3>
+ <p>خريطة matcap. الافتراضية هى null.</p>
+
+ <h3>[property:Texture normalMap]</h3>
+ <p>
+ القوام لإنشاء خريطة طبيعية. تؤثر قيم RGB على سطح
+ الطبيعي لكل قطعة بكسل وتغير طريقة إضاءة اللون. الخرائط الطبيعية
+ لا تغير شكل السطح الفعلي ، فقط الإضاءة. في
+ في حال كانت المادة تحتوي على خريطة طبيعية باستخدام التقليد المستخدم باليد اليسرى
+ يجب إنكار مكون y من normalScale للتعويض
+ للاختلاف في التوجه.
+ </p>
+
+ <h3>[property:Integer normalMapType]</h3>
+ <p>
+ نوع خريطة الطبيعية. <br /> <br />
+
+ الخيارات هي [page:constant THREE.TangentSpaceNormalMap] (الافتراضية) ، و
+ [page:constant THREE.ObjectSpaceNormalMap].
+ </p>
+
+ <h3>[property:Vector2 normalScale]</h3>
+ <p>
+ مدى تأثير خريطة الطبيعية على المادة. المدى النموذجي هو 0-1.
+ الافتراضية هى [page:Vector2] مضبوط على (1،1).
+ </p>
+
+ <h2>الطرق (Methods)</h2>
+ <p>انظر فئة [page:Material] الأساسية للطُرُق المشتركة.</p>
+ if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) {
+
+ const scene = document.getElementById( 'scene' );
+
+ scene.style.width = getComputedStyle( scene ).width;
+ scene.style.height = getComputedStyle( scene ).height;
+ scene.setAttribute( 'scrolling', 'no' );
+
+ }
+
+ </script>
+
+ <h2>المنشئ (Constructor)</h2>
+
+ <h3>[name]( [param:Object parameters] )</h3>
+ <p>
+ [page:Object parameters] - (اختياري) كائن يحتوي على خاصية واحدة أو أكثر تحدد مظهر المادة. يمكن تمرير أي خاصية من المادة (بما في ذلك أي خاصية موروثة من [page:Material]) هنا.
+ </p>
+
+ <h2>الخصائص (Properties)</h2>
+ <p>انظر إلى الفئة الأساسية [page:Material] للحصول على الخصائص المشتركة.</p>
+
+ <h3>[property:Texture bumpMap]</h3>
+ <p>
+ النسيج لإنشاء خريطة بامب. تقوم القيم السوداء والبيضاء بتعيين العمق المتصور فيما يتعلق بالأضواء. لا يؤثر البامب فعليًا على هندسة الكائن ، فقط على الإضاءة. إذا تم تعريف خريطة طبيعية ، سيتم تجاهل هذا.
+ </p>
+
+ <h3>[property:Float bumpScale]</h3>
+ <p>
+ كم يؤثر خريطة البامب على المادة. المدى النموذجي هو 0-1. الافتراضي هو 1.
+ </p>
+
+ <h3>[property:Texture displacementMap]</h3>
+ <p>
+ تؤثر خريطة التشويه على موضع رؤوس الشبكة. على عكس الخرائط الأخرى التي تؤثر فقط على ضوء وظل المادة ، يمكن للرؤوس المزحزحة أن تلقي ظلالًا وتحجب كائنات أخرى وتتصرف بطرق أخرى كهندسة حقيقية. نسيج التشويه هو صورة حيث يتم تعيين قيمة كل بكسل (الأبيض هو الأعلى) ضد وإعادة تحديد موضع رؤوس الشبكة.
+ </p>
+
+ <h3>[property:Float displacementScale]</h3>
+ <p>
+ كم يؤثر خريطة التشوه على الشبكة (حيث اللون الأسود لا يوجد تشويه ، واللون الأبيض هو التشويه الأقصى). بدون تعیین خریطۀ تشویه، لا یتم تطبیق هذه القیمۀ. الافتراضی هو 1.
+ </p>
+
+ <h3>[property:Float displacementBias]</h3>
+ <p>
+ إزاحة قيم خريطة التشويه على رؤوس الشبكة. بدون تعيين خريطة تشويه ، لا يتم تطبيق هذه القيمة. الافتراضي هو 0.
+ </p>
+
+ <h3>[property:Boolean flatShading]</h3>
+ <p>
+ تحديد ما إذا كان يتم عرض المادة بظلال مسطحة. الافتراضي هو خطأ.
+ </p>
+
+ <h3>[property:Boolean fog]</h3>
+ <p>ما إذا كانت المادة متأثرة بالضباب. الافتراضي هو `false`.</p>
+
+ <h3>[property:Texture normalMap]</h3>
+ <p>
+ النسيج لإنشاء خريطة طبيعية. تؤثر قيم RGB على السطح الطبيعي لكل قطعة بكسل وتغير طريقة إضاءة اللون. لا تغير خرائط العادية شكل السطح الفعلي ، فقط الإضاءة. في حال كانت المادة تحتوي على خريطة طبيعية مؤلفة باستخدام اتفاقية اليد اليسرى ، يجب إنكار مكون y من normalScale للتعويض عن اختلاف التوجه.
+ </p>
+
+ <h3>[property:Integer normalMapType]</h3>
+ <p>
+ نوع خريطة العادية. <br /><br />
+
+ الخيارات هي [page:constant THREE.TangentSpaceNormalMap] (افتراضي) ، و [page:constant THREE.ObjectSpaceNormalMap].
+ </p>
+
+ <h3>[property:Vector2 normalScale]</h3>
+ <p>
+ كم يؤثر خريطة العادية على المادة. المدى النموذجي هو 0-1. الافتراضي هو [page:Vector2] مضبوط على (1،1).
+ </p>
+
+ <h3>[property:Boolean wireframe]</h3>
+ <p>
+ عرض الهندسة كإطار سلكي. الافتراضي هو false (أي عرض كظلال ناعمة).
+ </p>
+
+ <h3>[property:Float wireframeLinewidth]</h3>
+ <p>
+ التحكم في سمك الإطار السلكى. الافتراضى هو 1.<br /><br />
+ لحساب الانعكاس. على عكس نموذج Lambertian المستخدم في
+ [page:MeshLambertMaterial] يمكن لهذا محاكاة الأسطح اللامعة مع تسليط الضوء على التجمعات (مثل الخشب المصقول). يستخدم [name] تظليل لكل قطعة. <br /><br />
+
+ سيكون الأداء عمومًا أكبر عند استخدام هذه المادة على
+ [page:MeshStandardMaterial] أو [page:MeshPhysicalMaterial] ، بتكلفة بعض الدقة الرسومية.
+ <h2>شيدرات الرأس وشيدرات الجزء (Vertex shaders and fragment shaders)</h2>
+
+ <div>
+ <p>يمكنك تحديد نوعين مختلفين من الشيدرات لكل مادة:</p>
+ <ul>
+ <li>
+ يعمل شيدر الرأس أولاً؛ يتلقى `attributes`، يحسب /
+ يعدل موضع كل رأس فردي، ويمرر
+ بيانات إضافية (`varying`s) إلى شيدر الجزء.
+ </li>
+ <li>
+ يعمل شيدر الجزء (أو البكسل) ثانيًا؛ يضبط لون
+ كل "جزء" فردي (بكسل) يتم عرضه على الشاشة.
+ </li>
+ </ul>
+ <p>
+ هناك ثلاثة أنواع من المتغيرات في الشيدرات: الموحدات، والسمات، و
+ varyings:
+ </p>
+ <ul>
+ <li>
+ `Uniforms` هي متغيرات لها نفس القيمة لجميع الرؤوس -
+ الإضاءة، والضباب، وخرائط الظل هي أمثلة على البيانات التي ستكون
+ مخزنة في الموحدات. يمكن الوصول إلى الموحدات من قبل كل من شيدر الرأس
+ وشيدر الجزء.
+ </li>
+ <li>
+ `Attributes` هي متغيرات مرتبطة بكل رأس - على سبيل المثال،
+ موضع الرأس، والوجه الطبيعي، ولون الرأس هي جميعها أمثلة على
+ البيانات التي ستكون مخزنة في السمات. يمكن `فقط` الوصول إلى السمات
+ داخل شيدر الرأس.
+ </li>
+ <li>
+ `Varyings` هي متغيرات تُمَرَّر من شيدر الرأس إلى
+ شيدر الجزء. لكل جزء، ستتم تقديم قيمة كل varying بشكل سلس من قِبَال رؤوس مجاورة.
+ </li>
+ </ul>
+ <p>
+ يجب ملاحظة أن `within` الشيدر نفسه، تعمل الموحدات والسمات مثل
+ المستمرات؛ يمكنك فقط تعديل قِبَالها بتمرير قِبَال مختلفة
+ إلى المخازن من كود JavaScript الخاص بك.
+ </p>
+ </div>
+
+ <h2>السمات والموحدات المدمجة (Built-in attributes and uniforms)</h2>
+
+ <div>
+ <p>
+ يوفر [page:WebGLRenderer] العديد من السمات والموحدات إلى
+ الشيدرات افتراضيًا؛ يتم إلحاق تعريفات هذه المتغيرات بكود
+ `fragmentShader` و `vertexShader` الخاص بك من قبل [page:WebGLProgram] عندما
+ يتم تجميع الشيدر؛ ليس عليك إعلانها بنفسك. انظر
+ [page:WebGLProgram] للحصول على تفاصيل هذه المتغيرات.
+ </p>
+ <p>
+ بعض هذه الموحدات أو السمات (على سبيل المثال تلك المتعلقة بالإضاءة،
+ الضباب، إلخ) تتطلب تعيين خصائص على المادة لكي
+ [page:WebGLRenderer] لنسخ القيم المناسبة إلى GPU - تأكد من تعيين هذه العلامات إذا كنت ترغب في استخدام هذه الميزات في شيدرك الخاص.
+ </p>
+ <p>
+ إذا كنت لا ترغب في أن يضيف [page:WebGLProgram] أي شيء إلى كود شيدرك
+ ، يمكنك استخدام [page:RawShaderMaterial] بدلاً من هذه الفئة.
+ </p>
+ </div>
+
+ <h2>السمات والموحدات المخصصة (Custom attributes and uniforms)</h2>
+
+ <div>
+ <p>
+ يجب إعلان كل من السمات والموحدات المخصصة في كود GLSL shader
+ (داخل `vertexShader` و / أو `fragmentShader`). يجب تعريف الموحدات المخصصة
+ في `both` خاصية `uniforms` لـ
+ `ShaderMaterial`، في حين يجب تعريف أي سمات مخصصة عبر
+ [page:BufferAttribute] instances. يجب ملاحظة أن `varying`s يجب فقط أن
+ يتم إعلانها داخل كود الشيدر (وليس داخل المادة).
+ </p>
+ <p>
+ لإعلان سمة مخصصة، يرجى الإشارة إلى
+ [page:BufferGeometry] للحصول على نظرة عامة، و
+ [page:BufferAttribute] للحصول على نظرة مفصلة على API `BufferAttribute`.
+ </p>
+ <p>
+ عند إنشاء سماتك، يجب أن يكون كل مجموعة مُطَبَّقَة التي تقوم بإنشائها لحفظ بيانات سمتك مضروبًا في حجم نوع بياناتك. على سبيل المثال، إذا كانت سمتك من نوع [page:Vector3 THREE.Vector3] ، وكان لديك 3000 رأس في [page:BufferGeometry] ، فيجب إنشاء قيمة مجموعتك المُطَبَّقَة بطول 3000 * 3 ، أو 9000 (قيمة واحدة
+ لكل مُكَوِّن). يظهر جدول حجم كل نوع من أنواع البيانات أدناه للإشارة:
+ </p>
+
+ <table>
+ <caption>
+ <a id="attribute-sizes">Attribute sizes</a>
+ </caption>
+ <thead>
+ <tr>
+ <th>GLSL type</th>
+ <th>JavaScript type</th>
+ <th>Size</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>float</td>
+ <td>[page:Number]</td>
+ <td>1</td>
+ </tr>
+ <tr>
+ <td>vec2</td>
+ <td>[page:Vector2 THREE.Vector2]</td>
+ <td>2</td>
+ </tr>
+ <tr>
+ <td>vec3</td>
+ <td>[page:Vector3 THREE.Vector3]</td>
+ <td>3</td>
+ </tr>
+ <tr>
+ <td>vec3</td>
+ <td>[page:Color THREE.Color]</td>
+ <td>3</td>
+ </tr>
+ <tr>
+ <td>vec4</td>
+ <td>[page:Vector4 THREE.Vector4]</td>
+ <td>4</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>
+ يجب ملاحظة أن مخازن السمات `ليست` تتحدث تلقائيًا عندما تتغير قيمها. لتحديث السمات المخصصة، قم بتعيين علامة `needsUpdate`
+ إلى true على [page:BufferAttribute] للهندسة (انظر
+ [page:BufferGeometry] لمزيد من التفاصيل).
+ </p>
+
+ <p>
+ لإعلان [page:Uniform] مخصص، استخدم خاصية `uniforms`:
+ <code>
+uniforms: {
+ time: { value: 1.0 },
+ resolution: { value: new THREE.Vector2() }
+}
+ </code>
+ </p>
+
+ <p>
+ يوصى بتحديث قيم [page:Uniform] المخصصة اعتمادًا على
+ [page:Object3D object] و [page:Camera camera] في
+ [page:Object3D.onBeforeRender] لأن [page:Material] يمكن أن يتم مشاركته
+ بين [page:Mesh meshes]، يتم تحديث [page:Matrix4 matrixWorld] لـ [page:Scene] و
+ [page:Camera] في [page:WebGLRenderer.render]، وبعض
+ المؤثرات تعرض [page:Scene scene] باستخدام خاصة بهم [page:Camera cameras].
+ </p>
+ </div>
+
+ <h2>المنشئ (Constructor)</h2>
+
+ <h3>[name]( [param:Object parameters] )</h3>
+ <p>
+ [page:Object parameters] - (اختياري) كائن يحتوي على واحد أو أكثر
+ خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+ المادة (بما في ذلك أي خاصية موروثة من [page:Material]) هنا.
+ </p>
+
+ <h2>الخصائص (Properties)</h2>
+ <p>انظر إلى الفئة الأساسية [page:Material] للخصائص المشتركة.</p>
+
+ <h3>[property:Boolean clipping]</h3>
+ <p>
+ يحدد ما إذا كانت هذه المادة تدعم القطع؛ صحيح للسماح للعارض
+ بتمرير الزي الرسمي clippingPlanes. الافتراضي هو false.
+ عندما لا تتضمن الهندسة المعروضة هذه السمات ولكن المادة تفعل ذلك، سيتم تمرير هذه القيم الافتراضية إلى الشيدرات. هذا يتجنب الأخطاء عندما تكون بيانات المخزن المؤقت مفقودة.
+
+ <code>
+this.defaultAttributeValues = {
+ 'color': [ 1, 1, 1 ],
+ 'uv': [ 0, 0 ],
+ 'uv1': [ 0, 0 ]
+};
+ </code>
+ </p>
+
+ <h3>[property:Object defines]</h3>
+ <p>
+ يحدد ثوابت مخصصة باستخدام توجيهات `#define` داخل كود GLSL
+ لكل من شيدر الرأس وشيدر الجزء؛ كل زوج من المفتاح / القيمة
+ يولد توجيهًا آخر:
+ <code>
+ defines: {
+ FOO: 15,
+ BAR: true
+ }
+ </code>
+ يولد الأسطر
+ <code>
+ #define FOO 15
+ #define BAR true
+ </code>
+ في كود GLSL.
+ </p>
+
+ <h3>[property:Object extensions]</h3>
+ <p>
+ كائن يحتوي على الخصائص التالية:
+ <code>
+this.extensions = {
+ derivatives: false, // set to use derivatives
+ fragDepth: false, // set to use fragment depth values
+ drawBuffers: false, // set to use draw buffers
+ shaderTextureLOD: false // set to use
+ shader texture LOD
+};
+ </code>
+ </p>
+
+ <h3>[property:Boolean fog]</h3>
+ <p>
+ تحدد ما إذا كان يتم التأثير على لون المادة بإعدادات الضباب العالمية؛ صحيح
+ لتمرير موحدات الضباب إلى الشيدر. الافتراضي هو false.
+ </p>
+
+ <h3>[property:String fragmentShader]</h3>
+ <p>
+ كود GLSL لشيدر الجزء. هذا هو الكود الفعلي للشيدر. في
+ المثال أعلاه، يتم استخراج كود `vertexShader` و `fragmentShader` من
+ DOM؛ يمكن تمريره كسلسلة مباشرة أو تحميله عبر AJAX
+ بدلاً من ذلك.
+ </p>
+
+ <h3>[property:String glslVersion]</h3>
+ <p>
+ يحدد إصدار GLSL لكود الشيدر المخصص. ذو صلة فقط لـ WebGL 2
+ لتحديد ما إذا كان يجب تحديد GLSL 3.0 أم لا. القيم المتاحة هي
+ `THREE.GLSL1` أو `THREE.GLSL3`. الافتراضي هو `null`.
+ [page:Object parameters] - (اختياري) كائن يحتوي على واحد أو أكثر
+ خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
+ المادة (بما في ذلك أي خاصية موروثة من [page:Material]) هنا.<br /><br />
+
+ الاستثناء هو خاصية [page:Hexadecimal color]، التي يمكن
+ تمريرها كسلسلة ست عشرية وهي `0xffffff` (أبيض) افتراضيًا.
+ يتم استدعاء [page:Color.set]( color ) داخليًا. لا يتم قطع SpriteMaterials باستخدام [page:Material.clippingPlanes].
+ </p>
+
+ <h2>الخصائص (Properties)</h2>
+ <p>انظر إلى الفئة الأساسية [page:Material] للخصائص المشتركة.</p>
+
+ <h3>[property:Texture alphaMap]</h3>
+ <p>
+ الخريطة الألفية هي نسيج رمادي يتحكم في التعتيم عبر السطح (أسود: شفاف تمامًا؛ أبيض: غير شفاف تمامًا). الافتراضي هو
+ null.<br /><br />
+
+ يتم استخدام لون النسيج فقط، متجاهلاً قناة الألفا إذا كانت موجودة. بالنسبة للقوام RGB و RGBA، سيستخدم [page:WebGLRenderer WebGL] renderer
+ قناة الأخضر عند عينة هذا النسيج بسبب البت الإضافي من الدقة المقدمة للأخضر في تنسيقات DXT المضغوطة و RGB 565 غير المضغوطة. ستعمل القوام المُضِئَة فقط والقوام المُضِئَة / الألفية أيضًا كما هو متوقع.
+ </p>
+
+ <h3>[property:Color color]</h3>
+ <p>
+ [page:Color] المادة، بشكل افتراضي مضبوط على الأبيض (0xffffff). The
+ [page:.map] مضروب باللون.
+ </p>
+
+ <h3>[property:Boolean fog]</h3>
+ <p>ما إذا كانت المادة متأثرة بالضباب. الافتراضي هو `true`.</p>
+
+ <h3>[property:Boolean isSpriteMaterial]</h3>
+ <p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معطىً من نوع [name].</p>
+
+ <h3>[property:Texture map]</h3>
+ <p>
+ خريطة اللون. قد تشمل اختيارًا قناة ألفا، عادةً مُجَمَّعَةً مع [page:Material.transparent .transparent] أو [page:Material.alphaTest .alphaTest].
+ الافتراضي هو null.
+ </p>
+
+ <h3>[property:Radians rotation]</h3>
+ <p>دوران الرذاذ بالراديان. الافتراضي هو 0.</p>
+
+ <h3>[property:Boolean sizeAttenuation]</h3>
+ <p>
+ ما إذا كان حجم الرذاذ يُخَفَّف بعمق الكاميرات.
+ (كاميرات المنظور فقط.) الافتراضي هو `true`.
+ </p>
+
+ <h3>[property:Boolean transparent]</h3>
+ <p>يحدد ما إذا كانت هذه المادة شفافة. الافتراضي هو `true`.</p>
+
+ <h2>الطرق (Methods)</h2>
+ <p>انظر إلى الفئة الأساسية [page:Material] للطرق المشتركة.</p>
+ يوسع هذا المربع بشكل متساوٍ بواسطة [page:Vector2 vector]. سيتم توسيع عرض هذا المربع بمكون x من [page:Vector2 vector] في كلا الاتجاهين. ستتم توسيع ارتفاع هذا المربع بمكون y من [page:Vector2 vector] في كلا الاتجاهين.
+ يعود تقاطع هذا و [page:Box2 box]، محددًا الحد الأعلى لهذا المربع إلى أقل من حدود المربعين الأعلى والحد الأدنى لهذا المربع إلى أكبر من حدود المربعين الأدنى.
+ [page:Vector2 offset] - اتجاه ومسافة التحويل.<br /><br />
+
+ يضيف [page:Vector2 offset] إلى كلاً من الحدود العليا والسفلى لهذا المربع، مما يؤدي بشكل فعال إلى نقل هذا المربع [page:Vector2 offset] وحدات في مسافة 2D.
+ </p>
+
+ <h3>[method:this union]([param:Box2 box])</h3>
+ <p>
+ [page:Box2 box] - مربع سيتم دمجه مع هذا المربع.<br /><br />
+
+ يجمع هذا المربع مع [page:Box2 box]، حيث يضع الحد الأقصى لهذا المربع على أكبر حدود علوية للمربعين والحد الأدنى لهذا المربع على أقل حدود سفلى للمربعين.
+ precise - (اختياري) توسيع مربع التحديد بأقل ما يمكن على حساب المزيد من الحسابات. الافتراضي هو false.<br /><br />
+
+ يوسع حدود هذا المربع لتضمين [page:Object3D object] وأطفاله، مع مراعاة تحولات الكائن والأطفال العالمية. قد يؤدي التابع إلى مربع أكبر من اللازم بشكل صارم (ما لم يتم تحديد معلمة precise على true).
+ يوسع هذا المربع بشكل متساوٍ بواسطة [page:Vector3 vector]. سيتم توسيع عرض هذا المربع بمكون x من [page:Vector3 vector] في كلا الاتجاهين. ستتم توسيع ارتفاع هذا المربع بمكون y من [page:Vector3 vector] في كلا الاتجاهين. ستتم توسيع عمق هذا المربع بمكون z من `vector` في كلا الاتجاهين.
+ يحسب تقاطع هذا و [page:Box3 box]، وضع الحد الأقصى لهذا المربع على أقل حدود علوية للمربعين والحد الأدنى لهذا المربع على أكبر حدود سفلى للمربعين. إذا لم يكن هناك تداخل، يجعل هذا المربع فارغًا.
+ [page:Object3D object] - [page:Object3D] لحساب مربع التحديد الخاص به.<br />
+ precise - (اختياري) حساب أصغر مربع تحديد محدود بمحاور العالم على حساب المزيد من الحسابات. الافتراضي هو false.<br /><br />
+
+ يحسب مربع التحديد المحدود بمحاور العالم لـ [page:Object3D] (بما في ذلك أطفاله)، مع مراعاة تحولات الكائن والأطفال العالمية. قد يؤدي التابع إلى مربع أكبر من اللازم بشكل صارم.
+ [page:Vector3 offset] - اتجاه ومسافة التحويل.<br /><br />
+
+ يضيف [page:Vector3 offset] إلى كلا من الحدود العلوية والسفلى لهذا المربع، بشكل فعال ينقل هذا المربع [page:Vector3 offset] وحدات في الفضاء ثلاثي الأبعاد.
+ [page:Box3 box] - مربع سيتم دمجه مع هذا المربع.<br /><br />
+
+ يحسب اتحاد هذا المربع و [page:Box3 box]، وضع الحد الأقصى لهذا المربع على أكبر حدود علوية للمربعين والحد الأدنى لهذا المربع على أقل حدود سفلى للمربعين.
+ [page:Color_Hex_or_String r] - (اختياري) إذا تم تعريف الوسيطتين [page:Float g] و [page:Float b]، فهو مكون أحمر للون. إذا لم يتم تعريفهما، فيمكن أن يكون [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثيًا سداسيًا عشريًا] (مستحسن)، أو سلسلة على طراز CSS، أو مثيل `Color` آخر.<br />
+ [page:Float g] - (اختياري) إذا تم تعريفه، فهو مكون أخضر للون.<br />
+ [page:Float b] - (اختياري) إذا تم تعريفه، فهو مكون أزرق للون.<br /><br />
+
+ يرجى ملاحظة أن الطريقة القياسية لتحديد اللون في three.js هي باستخدام [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثية سداسية عشرية]، وتستخدم هذه الطريقة في جميع أنحاء المستندات المتبقية.<br /><br />
+
+ عند تعريف جميع المعاملات ثم [page:Color_Hex_or_String r] هو المكوِّن الأحمر و [page:Float g] هو المكوِّن الأخضر و [page:Float b] هو المكوِّن الأزرق للون.<br />
+ عند تعريف [page:Color_Hex_or_String r] فقط:<br />
+ </p>
+
+ <ul>
+ <li>
+ يمكن أن يكون [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثيًا سداسيًا عشريًا] يمثل اللون (مستحسن).
+ </li>
+ <li>يمكن أن يكون مثيل Color آخر.</li>
+ <li>
+ يمكن أن يكون سلسلة على طراز CSS. على سبيل المثال:
+ <ul>
+ <li>'rgb(250، 0،0)'</li>
+ <li>'rgb(100٪،0٪،0٪)'</li>
+ <li>'hsl(0، 100٪، 50٪)'</li>
+ <li>'#ff0000'</li>
+ <li>'#f00'</li>
+ <li>'red'</li>
+ </ul>
+ </li>
+ </ul>
+
+ <h2>الخصائص (Properties)</h2>
+
+ <h3>[property:Boolean isColor]</h3>
+ <p>علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].</p>
+
+ <h3>[property:Float r]</h3>
+ <p>قيمة قناة حمراء بين 0 و 1. الافتراضي هو 1.</p>
+
+ <h3>[property:Float g]</h3>
+ <p>قيمة قناة خضراء بين 0 و 1. الافتراضي هو 1.</p>
+
+ <h3>[property:Float b]</h3>
+ <p>قيمة قناة زرقاء بين 0 و 1. الافتراضي هو 1.</p>
+ [page:Float alpha] - عامل التداخل في الفاصل المغلق `[0، 1]`.<br /><br />
+
+ يتداخل بشكل خطي قيم RGB لهذا اللون نحو قيم RGB للحجة الممررة. يمكن التفكير في وسيطة alpha كالنسبة بين اللونين، حيث `0.0` هذا اللون و `1.0` هو الحجة الأولى.
+ [page:Float alpha] - عامل التداخل، عادة في الفاصل المغلق `[0، 1]`.<br /><br />
+
+ يضع هذا اللون ليكون اللون المتداخل بشكل خطي بين [page:Color color1] و [page:Color color2] حيث يكون alpha هو نسبة المسافة على الخط الذي يربط بين اللونين - سيكون alpha = 0 [page:Color color1]، وسيكون alpha = 1 [page:Color color2].
+ [page:Float alpha] - عامل التداخل في الفاصل المغلق `[0، 1]`.<br /><br />
+
+ يتداخل بشكل خطي قيم HSL لهذا اللون نحو قيم HSL للحجة الممررة. يختلف عن [page:.lerp] الكلاسيكية بعدم التداخل مباشرة من لون إلى آخر، ولكن بدلاً من ذلك يمر عبر جميع الألوان الموجودة بين تلك الألوان. يمكن التفكير في وسيطة alpha كالنسبة بين اللونين، حيث 0.0 هذا اللون و 1.0 هو الحجة الأولى.
+ يضيف [page:Float h] و [page:Float s] و [page:Float l] المعطى إلى قيم هذا اللون. داخليًا، يحول هذا اللون قيم [page:.r r] و [page:.g g] و [page:.b b] إلى HSL، يضيف [page:Float h] و [page:Float s] و [page:Float l]، ثم يحول اللون مرة أخرى إلى RGB.
+ [page:Color_Hex_or_String r] - (اختياري) إذا تم تعريف الوسيطتين [page:Float g] و [page:Float b]، فهو مكون أحمر للون. إذا لم يتم تعريفهما، فيمكن أن يكون [link:https://en.wikipedia.org/wiki/Web_colors#Hex_triplet ثلاثيًا سداسيًا عشريًا] (مستحسن)، أو سلسلة على طراز CSS، أو مثيل `Color` آخر.<br />
+ [page:Float g] - (اختياري) إذا تم تعريفه، فهو مكون أخضر للون.<br />
+ [page:Float b] - (اختياري) إذا تم تعريفه، فهو مكون أزرق للون.<br /><br />
+
+ انظر المُنشئ أعلاه للحصول على التفاصيل الكاملة حول الوسائط الممكنة. يفوض إلى [page:.copy]،
+ [page:.setStyle]، [page:.setRGB] أو [page:.setHex] اعتمادًا على نوع الإدخال.
+ [page:String style] — اللون كسلسلة على طراز CSS.<br /><br />
+
+ يضع هذا اللون من سلسلة على طراز CSS. على سبيل المثال، "rgb(250، 0،0)"، "rgb(100٪، 0٪، 0٪)"، "hsl(0، 100٪، 50٪)"، "#ff0000"، "#f00" أو "red" (أو أي [link:https://en.wikipedia.org/wiki/X11_color_names#Color_name_chart اسم لون X11] - يتم دعم جميع أسماء الألوان الـ 140).<br />
+
+ يتم قبول الألوان شفافة مثل "rgba(255، 0، 0، 0.5)" و "hsla(0، 100٪، 50٪، 0.5)" أيضًا، ولكن سيتم تجاهل إحداثية قناة ألفا.<br /><br />
+
+ يرجى ملاحظة أنه بالنسبة لأسماء الألوان X11، تصبح الكلمات المتعددة مثل Dark Orange السلسلة 'darkorange'.
+ فئة تمثل متجه 2D [link:https://en.wikipedia.org/wiki/Vector_space]. متجه 2D هو زوج مرتب من الأرقام (مسمى x و y)، والذي يمكن استخدامه لتمثيل عدد من الأشياء، مثل:
+ </p>
+
+ <ul>
+ <li>نقطة في الفضاء 2D (أي موضع على مستوى).</li>
+ <li>
+ اتجاه وطول عبر مستوى. في three.js سيكون الطول دائمًا [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي] (طول الخط المستقيم) من `(0، 0)` إلى `(x، y)` ويتم قياس الاتجاه أيضًا من `(0، 0)` نحو `(x، y)`.
+ </li>
+ <li>أي زوج مرتب عشوائي من الأرقام.</li>
+ </ul>
+
+ <p>
+ هناك أشياء أخرى يمكن استخدام متجه 2D لتمثيلها، مثل المتجهات الزخمية، والأعداد المركبة وما إلى ذلك، ومع ذلك فإن هذه هي الاستخدامات الأكثر شيوعًا في three.js.
+ </p>
+
+ <p>
+ التكرار عبر نسخة [name] سيعود بمكوناته `(x، y)` بالترتيب المقابل.
+ يحسب المسافة المربعة من هذا المتجه إلى [page:Vector2 v]. إذا كنت تقارن فقط المسافة مع مسافة أخرى، يجب عليك مقارنة المسافة المربعة بدلاً من ذلك لأنه أكثر كفاءة قليلاً في الحساب.
+ يحسب [link:https://en.wikipedia.org/wiki/Cross_product حاصل الضرب المتقاطع] لهذا المتجه و [page:Vector2 v]. يرجى ملاحظة أن "حاصل الضرب المتقاطع" في 2D غير محدد بشكل جيد. تحسب هذه الوظيفة حاصل ضرب متقاطع هندسي يستخدم في الغالب في رسومات 2D
+ إذا كان index يساوي 0 يعود بقيمة [page:.x x]. <br />
+ إذا كان index يساوي 1 يعود بقيمة [page:.y y].
+ </p>
+
+ <h3>[method:Float length]()</h3>
+ <p>
+ يحسب [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي] (طول الخط المستقيم) من (0، 0) إلى (x، y).
+ </p>
+
+ <h3>[method:Float manhattanLength]()</h3>
+ <p>
+ يحسب [link:http://en.wikipedia.org/wiki/Taxicab_geometry طول مانهاتن] لهذا المتجه.
+ </p>
+
+ <h3>[method:Float lengthSq]()</h3>
+ <p>
+ يحسب مربع [link:https://en.wikipedia.org/wiki/Euclidean_distance الطول الإقليدي] (طول الخط المستقيم) من (0، 0) إلى (x، y). إذا كنت تقارن أطوال المتجهات، يجب عليك مقارنة الطول المربع بدلاً من ذلك لأنه أكثر كفاءة قليلاً في الحساب.
+ [page:Float alpha] - عامل التداخل، عادة في الفترة المغلقة `[0، 1]`.<br /><br />
+
+ يتداخل بشكل خطي بين هذا المتجه و [page:Vector2 v]، حيث alpha هو نسبة المسافة على طول الخط - سيكون alpha = 0 هذا المتجه، وسيكون alpha = 1 [page:Vector2 v].
+ [page:Float alpha] - عامل التداخل، عادة في الفترة المغلقة `[0، 1]`.<br /><br />
+
+ يضبط هذا المتجه ليكون المتجه المُركب بشكل خطي بين [page:Vector2 v1] و [page:Vector2 v2] حيث alpha هو نسبة المسافة على طول الخط الذي يربط بين المتجهين - سيكون alpha = 0 [page:Vector2 v1]، وسيكون alpha = 1 [page:Vector2 v2].
+ </p>
+
+ <h3>[method:this negate]()</h3>
+ <p>يعكس هذا المتجه - أي يضع x = -x و y = -y.</p>
+
+ <h3>[method:this normalize]()</h3>
+ <p>
+ يحول هذا المتجه إلى [link:https://en.wikipedia.org/wiki/Unit_vector متجه وحدة] -
+ أي يضعه مساوٍ لمتجه بنفس الاتجاه
+ كهذا، ولكن [page:.length length] 1.
+ </p>
+
+ <h3>[method:this max]( [param:Vector2 v] )</h3>
+ <p>
+ إذا كانت قيمة x أو y لهذا المتجه أقل من قيمة x أو y لـ [page:Vector2 v]، استبدل تلك القيمة بالقيمة العظمى المقابلة.
+ </p>
+
+ <h3>[method:this min]( [param:Vector2 v] )</h3>
+ <p>
+ إذا كانت قيمة x أو y لهذا المتجه أكبر من قيمة x أو y لـ [page:Vector2 v]، استبدل تلك القيمة بالقيمة الدنيا المقابلة.