مادة قائمة على الفيزياء القياسية، باستخدام سير عمل 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.
[page:Object parameters] - (اختياري) كائن بواحد أو أكثر
خصائص تحدد مظهر المادة. يمكن تمرير أي خاصية من
المادة (بما في ذلك أي خاصية موروثة من [page:Material]) هنا.
الاستثناء هو الخاصية [page:Hexadecimal color]، التي يمكن
تمريرها كسلسلة ست عشرية وهي `0xffffff` (أبيض) بشكل افتراضي.
يتم استدعاء [page:Color.set]( color ) داخليًا.
انظر إلى فئة [page:Material] الأساسية للخصائص المشتركة.
خريطة الألفا هي قوام رمادي يتحكم في الشفافية عبر
السطح (أسود: شفاف تمامًا؛ أبيض: غير شفاف تمامًا). الافتراضى هى null.
يُستخدَم فقط لون القوام، متجاهلاً قناة الألفا إذا كانت واحدة
موجود. بالنسبة لقوام RGB و RGBA، سوف يستخدم [page:WebGLRenderer WebGL] renderer
قناة اللون الأخضر عند أخذ عينات من هذه القوام بسبب البت الإضافي
الدقة المقدمة للأخضر في تنسيقات DXT المضغوطة و RGB 565 غير المضغوطة.
ستعمل قوام الإضاءة فقط وقوام الإضاءة / الألفا أيضًا كما هو متوقع.
يُستخدَم قناة اللون الأحمر من هذه القوام كخريطة احتجاب محيط. الافتراضى هى null. يتطلب aoMap مجموعة ثانية من UVs.
شدة تأثير الاحتجاب المحيط. الافتراضى هو 1. الصفر هو لا تأثير احتجاب.
القوام لإنشاء خريطة بروز. تُعين قِيَمُ الأبيض والأسود إلى العمق المدرك فيما يتعلق بالأضواء. لا يؤثر البروز فعليًا على هندسة الكائن، فقط الإضاءة. إذا تم تعريف خريطة عادية سيتم تجاهل هذا.
مدى تأثير خريطة البروز على المادة. المدى النموذجى هو 0-1. الافتراضى هو 1.
[page:Color] المادة، بشكل افتراضى مضبوط على أبيض (0xffffff).
كائن من نوع:
{ 'STANDARD': '' };
يستخدم هذا بواسطة [page:WebGLRenderer] لتحديد المُظَهِّرات.
تؤثر خريطة التشويه على موضع رؤوس شبكة المادة. على عكس خرائط أخرى التي تؤثر فقط على الضوء والظل للمادة الرؤوس المشوهة يمكن أن تلقي ظلالًا، وتحجب كائنات أخرى، وغير ذلك العمل كهندسة حقيقية. خريطة التشويه هي صورة حيث قِيَمَةُ كل بكسل (الأبيض هو الأعلى) مُعَيَّنَةٌ ضد، و إعادة تحديد مواقع، رؤوس الشبكة.
مدى تأثير خريطة التشويه على الشبكة (حيث اللون الأسود هو لا التشويه، والأبيض هو التشويه الأقصى). بدون تعيين خريطة تشويه، لا يتم تطبيق هذه القيمة. الافتراضى هو 1.
إزاحة قِيَمِ خريطة التشويه على رؤوس شبكة المادة. بدون تعيين خريطة تشويه، لا يتم تطبيق هذه القيمة. الافتراضى هو 0.
لون المادة المُضِيءِ (الضوء)، عبارة عن لون صلب غير متأثر بإضاءة أخرى. الافتراضى هو أسود.
تعيين خريطة مُضِيئَة (مُضِيئَة). الافتراضى هى null. يتم تعديل لون خريطة المُضِيئَة بواسطة اللون المُضِيئَ وشدة المُضِيئَ. إذا كان لديك خريطة مُضِيئَ، تأكد من تعيين اللون المُضِيئَ إلى شيء آخر غير أسود.
شدة الضوء المُضِيئَ. يعدل اللون المُضِيئَ. الافتراضى هو 1.
خريطة البيئة. لضمان التقديم الصحيح فيزيائًا، يجب عليك فقط إضافة خرائط بيئية تم معالجتها مسبقًا بـ [page:PMREMGenerator]. الافتراضى هى null.
تقوم بتحجيم تأثير خريطة البيئة عن طريق ضرب لونها.
تحديد ما إذا كان يتم تصدير المادة بظلال مسطحة. الافتراضى هو false.
ما إذا كانت المادة متأثرة بالضباب. الافتراضى هو `true`.
علامة للقراءة فقط للتحقق مما إذا كان كائن معين من نوع [name].
خريطة الضوء. الافتراضى هى null. يتطلب lightMap مجموعة ثانية من UVs.
شدة الضوء المخبوز. الافتراضى هو 1.
خريطة اللون. قد تشمل اختياريًا قناة ألفا، عادةً مجتمعة مع [page:Material.transparent .transparent] أو [page:Material.alphaTest .alphaTest]. الافتراضى هى null. يتم تعديل لون خريطة القوام بواسطة اللون المُشْتَتِّ [page:.color].
مدى شبه المادة بالمعدن. المواد غير المعدنية مثل الخشب أو الحجر استخدم 0.0، المعدن استخدم 1.0، مع عدم وجود شيء (عادة) في الوسط. الافتراضى هو 0.0. يمكن استخدام قيمة بين 0.0 و 1.0 للحصول على مظهر معدن صدئ. إذا تم توفير metalnessMap أيضًا، تتم ضرب كلا القيمتين.
يُستخدَم قناة اللون الأزرق من هذه القوام لتغيير شبه المادة بالمعدن.
القوام لإنشاء خريطة عادية. تؤثر قِيَمُ RGB على سطح الطبيعية لكل جزء بكسل وتغير طريقة إضاءة اللون. خرائط عادية لا تغير شكل السطح الفعلي، فقط الإضاءة. في حال كانت المادة لديها خريطة عادية باستخدام التقليد الذي يستخدم يدًا يسرى، يجب إنكار مكوِّن y من normalScale للتعويض على التفاوت في التسلسل.
نوع خريطة عادية.
الخيارات هى [page:constant THREE.TangentSpaceNormalMap] (الافتراضى)، و
[page:constant THREE.ObjectSpaceNormalMap].
مدى تأثير خريطة عادية على المادة. المدى النموذجى هو 0-1. الافتراضى هو [page:Vector2] مضبوط على (1,1).
مدى خشونة المادة. 0.0 يعني انعكاس مرآة ناعم، 1.0 يعني تشتت كامل. الافتراضي هو 1.0. إذا تم توفير roughnessMap أيضًا، تتم ضرب كلا القيمتين.
يُستخدَم قناة اللون الأخضر من هذه القوام لتغيير خشونة المادة.
تصدير الهندسة كإطار سلكي. الافتراضى هو `false` (أي تصدير كأشكال مسطحة).
تحديد مظهر نهايات الخطوط. القيم الممكنة هى "butt"، "round" و
"square". الافتراضى هو 'round'.
هذا يتوافق مع
[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineCap 2D Canvas lineCap]
خاصية ويتم تجاهله بواسطة [page:WebGLRenderer WebGL] renderer.
تحديد مظهر مفاصل الخطوط. القيم الممكنة هى "round"، "bevel" و
"miter". الافتراضى هو 'round'.
هذا يتوافق مع
[link:https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D/lineJoin 2D Canvas lineJoin]
خاصية ويتم تجاهله بواسطة [page:WebGLRenderer WebGL] renderer.
يتحكم في سُمْكِ الإطارِ السلكِيِّ. الافتراضى هو 1.
بسبب قيود
[link:https://www.khronos.org/registry/OpenGL/specs/gl/glspec46.core.pdf OpenGL Core Profile]
مع [page:WebGLRenderer WebGL] renderer على معظم
المنصات سيظل linewidth دائمًا 1 بغض النظر عن القيمة المحددة.
انظر إلى فئة [page:Material] الأساسية للطرق المشتركة.
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]