[page:Material] →

[name]

مادة قائمة على الفيزياء القياسية، باستخدام سير عمل Metallic-Roughness.

أصبح التقديم القائم على الفيزياء (PBR) مؤخرًا المعيار في العديد من تطبيقات 3D، مثل [link:https://blogs.unity3d.com/2014/10/29/physically-based-shading-in-unity-5-a-primer/ Unity]، [link:https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/PhysicallyBased/ Unreal] و [link:http://area.autodesk.com/blogs/the-3ds-max-blog/what039s-new-for-rendering-in-3ds-max-2017 3D Studio Max].

هذا النهج يختلف عن النهج الأقدم في أنه بدلاً من استخدام تقريبات لطريقة تفاعل الضوء مع سطح، يتم استخدام نموذج صحيح فيزيائيًا. الفكرة هي أنه، بدلاً من تعديل المواد لتبدو جيدة تحت إضاءة محددة، يمكن إنشاء مادة سوف تتفاعل 'بشكل صحيح' تحت جميع سيناريوهات الإضاءة.

عمليًا يعطي هذا نتيجة أكثر دقة وواقعية من [page:MeshLambertMaterial] أو [page:MeshPhongMaterial]، بتكلفة أن يكون أكثر تكلفة حسابية قليلًا. يستخدم [name] التظليل لكل جزء.

لاحظ أنه للحصول على أفضل النتائج يجب دائمًا تحديد [page:.envMap خريطة بيئة] عند استخدام هذه المادة.

لمقدمة غير فنية لمفهوم PBR وكيفية إعداد مادة PBR، تحقق من هذه المقالات من قِبَل الأشخاص في [link:https://www.marmoset.co marmoset]:

التفاصيل الفنية للنهج المستخدم في three.js (ومعظم نظم PBR الأخرى) يمكن العثور على هذا [link:https://media.disneyanimation.com/uploads/production/publication_asset/48/asset/s2012_pbs_disney_brdf_notes_v3.pdf ورقة من Disney] (pdf)، بواسطة Brent Burley.

المنشئ (Constructor)

[name]( [param:Object parameters] )

[page:Object parameters] - (اختياري) كائن بواحد أو أكثر خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من المادة (بما في ذلك أي خاصية موروثة من [page:Material]) هنا.

الاستثناء هو الخاصية [page:Hexadecimal color]، التي يمكن تمريرها كسلسلة ست عشرية وهي `0xffffff` (أبيض) بشكل افتراضي. يتم استدعاء [page:Color.set]( color ) داخليًا.

الخصائص (Properties)

انظر إلى فئة [page:Material] الأساسية للخصائص المشتركة.

[property:Texture alphaMap]

خريطة الألفا هي قوام رمادي يتحكم في الشفافية عبر السطح (أسود: شفاف تمامًا؛ أبيض: غير شفاف تمامًا). الافتراضى هى null.

يُستخدَم فقط لون القوام، متجاهلاً قناة الألفا إذا كانت واحدة موجود. بالنسبة لقوام RGB و RGBA، سوف يستخدم [page:WebGLRenderer WebGL] renderer قناة اللون الأخضر عند أخذ عينات من هذه القوام بسبب البت الإضافي الدقة المقدمة للأخضر في تنسيقات DXT المضغوطة و RGB 565 غير المضغوطة. ستعمل قوام الإضاءة فقط وقوام الإضاءة / الألفا أيضًا كما هو متوقع.

[property:Texture aoMap]

يُستخدَم قناة اللون الأحمر من هذه القوام كخريطة احتجاب محيط. الافتراضى هى null. يتطلب aoMap مجموعة ثانية من UVs.

[property:Float aoMapIntensity]

شدة تأثير الاحتجاب المحيط. الافتراضى هو 1. الصفر هو لا تأثير احتجاب.

[property:Texture bumpMap]

القوام لإنشاء خريطة بروز. تُعين قِيَمُ الأبيض والأسود إلى العمق المدرك فيما يتعلق بالأضواء. لا يؤثر البروز فعليًا على هندسة الكائن، فقط الإضاءة. إذا تم تعريف خريطة عادية سيتم تجاهل هذا.

[property:Float bumpScale]

مدى تأثير خريطة البروز على المادة. المدى النموذجى هو 0-1. الافتراضى هو 1.

[property:Color color]

[page:Color] المادة، بشكل افتراضى مضبوط على أبيض (0xffffff).

[property:Object defines]

كائن من نوع: { 'STANDARD': '' }; يستخدم هذا بواسطة [page:WebGLRenderer] لتحديد المُظَهِّرات.

[property:Texture displacementMap]

تؤثر خريطة التشويه على موضع رؤوس شبكة المادة. على عكس خرائط أخرى التي تؤثر فقط على الضوء والظل للمادة الرؤوس المشوهة يمكن أن تلقي ظلالًا، وتحجب كائنات أخرى، وغير ذلك العمل كهندسة حقيقية. خريطة التشويه هي صورة حيث قِيَمَةُ كل بكسل (الأبيض هو الأعلى) مُعَيَّنَةٌ ضد، و إعادة تحديد مواقع، رؤوس الشبكة.

[property:Float displacementScale]

مدى تأثير خريطة التشويه على الشبكة (حيث اللون الأسود هو لا التشويه، والأبيض هو التشويه الأقصى). بدون تعيين خريطة تشويه، لا يتم تطبيق هذه القيمة. الافتراضى هو 1.

[property:Float displacementBias]

إزاحة قِيَمِ خريطة التشويه على رؤوس شبكة المادة. بدون تعيين خريطة تشويه، لا يتم تطبيق هذه القيمة. الافتراضى هو 0.

[property:Color emissive]

لون المادة المُضِيءِ (الضوء)، عبارة عن لون صلب غير متأثر بإضاءة أخرى. الافتراضى هو أسود.

[property:Texture emissiveMap]

تعيين خريطة مُضِيئَة (مُضِيئَة). الافتراضى هى null. يتم تعديل لون خريطة المُضِيئَة بواسطة اللون المُضِيئَ وشدة المُضِيئَ. إذا كان لديك خريطة مُضِيئَ، تأكد من تعيين اللون المُضِيئَ إلى شيء آخر غير أسود.

[property:Float emissiveIntensity]

شدة الضوء المُضِيئَ. يعدل اللون المُضِيئَ. الافتراضى هو 1.

[property:Texture envMap]

خريطة البيئة. لضمان التقديم الصحيح فيزيائًا، يجب عليك فقط إضافة خرائط بيئية تم معالجتها مسبقًا بـ [page:PMREMGenerator]. الافتراضى هى null.

[property:Float envMapIntensity]

تقوم بتحجيم تأثير خريطة البيئة عن طريق ضرب لونها.

[property:Boolean flatShading]

تحديد ما إذا كان يتم تصدير المادة بظلال مسطحة. الافتراضى هو false.

[property:Boolean fog]

ما إذا كانت المادة متأثرة بالضباب. الافتراضى هو `true`.

[property:Boolean isMeshStandardMaterial]

علامة للقراءة فقط للتحقق مما إذا كان كائن معين من نوع [name].

[property:Texture lightMap]

خريطة الضوء. الافتراضى هى null. يتطلب lightMap مجموعة ثانية من UVs.

[property:Float lightMapIntensity]

شدة الضوء المخبوز. الافتراضى هو 1.

[property:Texture map]

خريطة اللون. قد تشمل اختياريًا قناة ألفا، عادةً مجتمعة مع [page:Material.transparent .transparent] أو [page:Material.alphaTest .alphaTest]. الافتراضى هى null. يتم تعديل لون خريطة القوام بواسطة اللون المُشْتَتِّ [page:.color].

[property:Float metalness]

مدى شبه المادة بالمعدن. المواد غير المعدنية مثل الخشب أو الحجر استخدم 0.0، المعدن استخدم 1.0، مع عدم وجود شيء (عادة) في الوسط. الافتراضى هو 0.0. يمكن استخدام قيمة بين 0.0 و 1.0 للحصول على مظهر معدن صدئ. إذا تم توفير metalnessMap أيضًا، تتم ضرب كلا القيمتين.

[property:Texture metalnessMap]

يُستخدَم قناة اللون الأزرق من هذه القوام لتغيير شبه المادة بالمعدن.

[property:Texture normalMap]

القوام لإنشاء خريطة عادية. تؤثر قِيَمُ RGB على سطح الطبيعية لكل جزء بكسل وتغير طريقة إضاءة اللون. خرائط عادية لا تغير شكل السطح الفعلي، فقط الإضاءة. في حال كانت المادة لديها خريطة عادية باستخدام التقليد الذي يستخدم يدًا يسرى، يجب إنكار مكوِّن y من normalScale للتعويض على التفاوت في التسلسل.

[property:Integer normalMapType]

نوع خريطة عادية.

الخيارات هى [page:constant THREE.TangentSpaceNormalMap] (الافتراضى)، و [page:constant THREE.ObjectSpaceNormalMap].

[property:Vector2 normalScale]

مدى تأثير خريطة عادية على المادة. المدى النموذجى هو 0-1. الافتراضى هو [page:Vector2] مضبوط على (1,1).

[property:Float roughness]

مدى خشونة المادة. 0.0 يعني انعكاس مرآة ناعم، 1.0 يعني تشتت كامل. الافتراضي هو 1.0. إذا تم توفير roughnessMap أيضًا، تتم ضرب كلا القيمتين.

[property:Texture roughnessMap]

يُستخدَم قناة اللون الأخضر من هذه القوام لتغيير خشونة المادة.

[property:Boolean wireframe]

تصدير الهندسة كإطار سلكي. الافتراضى هو `false` (أي تصدير كأشكال مسطحة).

[property:String wireframeLinecap]

تحديد مظهر نهايات الخطوط. القيم الممكنة هى "butt"، "round" و "square". الافتراضى هو 'round'.

هذا يتوافق مع [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap] خاصية ويتم تجاهله بواسطة [page:WebGLRenderer WebGL] renderer.

[property:String wireframeLinejoin]

تحديد مظهر مفاصل الخطوط. القيم الممكنة هى "round"، "bevel" و "miter". الافتراضى هو 'round'.

هذا يتوافق مع [link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin] خاصية ويتم تجاهله بواسطة [page:WebGLRenderer WebGL] renderer.

[property:Float wireframeLinewidth]

يتحكم في سُمْكِ الإطارِ السلكِيِّ. الافتراضى هو 1.

بسبب قيود [link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile] مع [page:WebGLRenderer WebGL] renderer على معظم المنصات سيظل linewidth دائمًا 1 بغض النظر عن القيمة المحددة.

الطرق (Methods)

انظر إلى فئة [page:Material] الأساسية للطرق المشتركة.

المصدر (Source)

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]