الفئة الأساسية المجردة للمواد.
تصف المواد مظهر [page:Object objects]. هم
محددة بطريقة (غالبًا) مستقلة عن المصور ، لذلك لا تضطر إلى
إعادة كتابة المواد إذا قررت استخدام مصور مختلف.
تمتلك الخصائص والطرق التالية من جميع أنواع المواد الأخرى
(على الرغم من أنها قد تكون لها افتراضات مختلفة).
هذا ينشئ مادة عامة.
Enables alpha hashed transparency, an alternative to [page:.transparent] or [page:.alphaTest]. The material will not be rendered if opacity is lower than a random threshold. Randomization introduces some grain or noise, but approximates alpha blending without the associated problems of sorting. Using TAARenderPass can reduce the resulting noise.
يحدد قيمة ألفا التي يجب استخدامها عند تشغيل اختبار ألفا. المادة لن يتم عرضه إذا كانت الشفافية أقل من هذه القيمة. الافتراضي هو `0`.
يمكّن ألفا للتغطية. يمكن استخدامه فقط مع سياقات MSAA-enabled (وهذا يعني عند إنشاء المصور بمعامل `antialias` مضبوطًا على `true`). الافتراضي هو `false`.
وجهة المزج. الافتراضي هو [page:CustomBlendingEquation OneMinusSrcAlphaFactor].
انظر عوامل الوجهة [page:CustomBlendingEquation constants] لجميع القِيَم المحتملة.
يجب تعيين [page:Constant blending] للمادة على [page:Materials CustomBlending]
لهذا لديه أي تأثير.
شفافية [page:.blendDst]. يستخدم قيمة [page:.blendDst] إذا null. الافتراضي هو `null`.
معادلة المزج للاستخدام عند تطبيق المزج. الافتراضي هو
[page:CustomBlendingEquation AddEquation]. انظر معادلة المزج
[page:CustomBlendingEquation constants] لجميع القيم الممكنة.
يجب تعيين [page:Constant blending] للمادة على [page:Materials CustomBlending]
لهذا لديه أي تأثير.
شفافية [page:.blendEquation]. يستخدم قيمة [page:.blendEquation] إذا كان null. الافتراضي هو `null`.
أي مزج للاستخدام عند عرض الكائنات بهذه المادة.
يجب تعيين هذا على [page:Materials CustomBlending] لاستخدام مخصص
[page:Constant blendSrc]، [page:Constant blendDst] أو [page:Constant blendEquation].
انظر وضع المزج [page:Materials constants] لجميع القيم الممكنة.
الافتراضي هو [page:Materials NormalBlending].
مصدر المزج. الافتراضي هو [page:CustomBlendingEquation SrcAlphaFactor].
انظر عوامل المصدر [page:CustomBlendingEquation constants] للكل
القِيَم المحتملة.
يجب تعيين [page:Constant blending] للمادة على [page:Materials CustomBlending]
لهذا لديه أي تأثير.
شفافية [page:.blendSrc]. يستخدم قيمة [page:.blendSrc] إذا null. الافتراضي هو `null`.
تغير سلوك مستويات القطع بحيث يتم قطع تقاطعها فقط ، بدلاً من اتحادهم. الافتراضي هو `false`.
مستويات القطع المحددة من قبل المستخدم محددة كـ THREE.Plane objects في العالم الفضاء. تنطبق هذه المستويات على الكائنات التي يتم إرفاق هذه المادة بها. يتم قطع النقاط في الفضاء التي يكون مسافتها الموقعة إلى المستوى سلبية (غير معروض). هذا يتطلب [page:WebGLRenderer.localClippingEnabled] إلى كن `true`. انظر [example:webgl_clipping_intersection WebGL / clipping /intersection] مثال. الافتراضي هو `null`.
يحدد ما إذا كان يجب قطع الظلال وفقًا للمستويات القطع المحددة على هذه المادة. الافتراضي هو `false`.
سواء كان يجب عرض لون المادة. يمكن استخدام هذا بالتزامن مع خاصية [page:Integer renderOrder] لشبكة لإنشاء غير مرئية الأشياء التي تحجب الأشياء الأخرى. الافتراضي هو `true`.
تعريفات مخصصة لإدخالها في المظلل. يتم تمرير هذه في شكل محدد كائن حرفي ، بأزواج من المفتاح / القيمة. `{ MY_CUSTOM_DEFINE: '' , PI2: Math.PI * 2 }`. يتم تعريف الأزواج في كل من قمة وشظية المظللات. الافتراضي هو `undefined`.
أي دالة عمق للاستخدام. الافتراضي هو [page:Materials LessEqualDepth]. انظر وضع العمق [page:Materials constants] لجميع القيم الممكنة.
سواء كان يجب تمكين اختبار العمق عند عرض هذه المادة. افتراضي هو `true`.
سواء كان عرض هذه المادة له أي تأثير على مخزن العمق.
الافتراضي هو `true`.
عند رسم تراكبات 2D ، يمكن أن يكون من المفيد تعطيل كتابة العمق في
لطبقة عدة أشياء معًا دون إنشاء فنون فهرس z.
سواء كان يجب عرض الأشياء الشفافة ذات الجانبين بمرور واحد
أم لا. الافتراضي هو `false`.
يعرض المحرك الأشياء الشفافة ذات الجانبين بمكالمتين رسم
(الوجوه الخلفية أولاً ، ثم الوجوه الأمامية) للتخفيف من التحولات الشفافة.
هناك سيناريوهات ومع ذلك حيث لا ينتج هذا النهج عن مكاسب في الجودة
ولكن لا يزال يضاعف المكالمات الرسمية على سبيل المثال عند عرض نباتات مسطحة مثل
رشات العشب. في هذه الحالات ، قم بتعيين علامة `forceSinglePass` على `true` إلى
تعطيل التقديم المزدوج لتجنب مشاكل الأداء.
علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].
سواء كانت تتم عمليات الشبكة ضد مخزن الشبكة. في لإجراء كتابات أو مقارنات ضد مخزن الشبكة هذه القيمة يجب أن تكون `true`. الافتراضي هو `false`.
قناع البت المستخدم عند الكتابة إلى مخزن الشبكة. الافتراضي هو `0xFF`.
دالة المقارنة بالشبكة التي يجب استخدامها. الافتراضي هو [page:Materials AlwaysStencilFunc]. انظر دالة شبكية [page:Materials constants] لـ جميع القيم الممكنة.
القيمة المستخدمة عند إجراء مقارنات شبكية أو شبكية عمليات. الافتراضي هو `0`.
قناع البت المستخدم عند المقارنة مع مخزن الشبكة. الافتراضي هو `0xFF`.
العملية الشبكية التي يجب تنفيذها عندما تعود دالة المقارنة خطأ. الافتراضي هو [page:Materials KeepStencilOp]. انظر شبكية عمليات [page:Materials constants] لجميع القيم الممكنة.
العملية الشبكية التي يجب تنفيذها عندما تعود دالة المقارنة صحيح ولكن اختبار العمق يفشل. الافتراضي هو [page:Materials KeepStencilOp]. انظر عمليات شبكية [page:Materials constants] لجميع المحتمل القِيَم.
العملية الشبكية التي يجب تنفيذها عندما تعود دالة المقارنة صحيح واختبار العمق يمر. الافتراضي هو [page:Materials KeepStencilOp]. انظر عمليات الشبكة [page:Materials constants] لجميع القيم الممكنة
رقم فريد لهذه المادة.
اسم اختياري للكائن (لا يحتاج إلى أن يكون فريدًا). الافتراضي هو سلسلة فارغة.
يحدد أن المادة تحتاج إلى إعادة التجميع.
عائم في نطاق `0.0` - `1.0` يشير إلى مدى شفافية
المادة. قيمة `0.0` تشير إلى الشفافية الكاملة ، `1.0` هو كامل
غير شفاف.
إذا لم يتم تعيين خاصية [page:Boolean transparent] للمادة على
`true`، ستظل المادة غير شفافة تمامًا وسيؤثر هذا القيمة فقط
تأثير لونه.
الافتراضي هو `1.0`.
سواء كان يجب استخدام إزاحة المضلع. الافتراضي هو `false`. هذا يتوافق مع `GL_POLYGON_OFFSET_FILL` ميزة WebGL.
تعيين عامل إزاحة المضلع. الافتراضي هو `0`.
تعيين وحدات إزاحة المضلع. الافتراضي هو `0`.
تجاوز دقة المصور الافتراضية لهذه المادة. يمكن أن يكون `"highp"`، `"mediump"` أو `"lowp"`. الافتراضي هو `null`.
سواء كان يجب ضرب قيمة ألفا (الشفافية). انظر [Example:webgl_materials_physical_transmission WebGL / Materials / Physical / Transmission] لمثال على الفرق. الافتراضي هو `false`.
سواء كان يجب تطبيق التدرج على اللون لإزالة مظهر الفرقة. الافتراضي هو `false`.
يحدد أي جانب من الوجوه يلقي الظلال. عند التعيين، يمكن أن يكون [page:Materials THREE.FrontSide]،
[page:Materials THREE.BackSide]، أو [page:Materials THREE.DoubleSide].
الافتراضي هو `null`.
إذا كان `null`، يتم تحديد الجانب الذي يلقي الظلال على النحو التالي:
[page:Material.side] | Side casting shadows |
---|---|
THREE.FrontSide | back side |
THREE.BackSide | front side |
THREE.DoubleSide | both sides |
يحدد أي جانب من الوجوه سيتم عرضه - الأمامية، الخلفية أو كلاهما. الافتراضي هو [page:Materials THREE.FrontSide]. خيارات أخرى هي [page:Materials THREE.BackSide] أو [page:Materials THREE.DoubleSide].
يحدد ما إذا كانت هذه المادة معدلة نغمة وفقًا لإعدادات [page:WebGLRenderer.toneMapping toneMapping] للمُصير. الافتراضي هو `true`.
يحدد ما إذا كانت هذه المادة شفافة. له تأثير على
التصيير كما تحتاج الأشياء الشفافة إلى معاملة خاصة وتُصاغ
بعد الأشياء غير الشفافة.
عند تعيينه على true، يتم التحكم في مدى شفافية المادة
عن طريق تعيين خاصية [page:Float opacity] الخاصة به.
الافتراضي هو `false`.
القيمة هي السلسلة 'Material'. يجب عدم تغيير هذا، ويمكن استخدامه للعثور على جميع الكائنات من هذا النوع في المشهد.
[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] من هذه الحالة المادية. يتم تعيين هذا تلقائيًا، لذلك يجب عدم تحريره.
يبدأ هذا في `0` ويحسب كم مرة يتم تعيين [page:Material.needsUpdate .needsUpdate] إلى `true`.
يحدد ما إذا كان يتم استخدام تلوين الرأس. الافتراضي هو `false`. يدعم المحرك ألوان RGB و RGBA للرأس اعتمادًا على ما إذا كان يتم استخدام سمة مخزنة لونية ذات ثلاثة (RGB) أو أربعة (RGBA) مكونات.
يحدد ما إذا كانت هذه المادة مرئية. الافتراضي هو `true`.
كائن يمكن استخدامه لتخزين بيانات مخصصة حول المادة. يجب ألا يحتوي على مراجع إلى الوظائف لأنها لن تتم نسخها.
طرق [page:EventDispatcher EventDispatcher] متاحة على هذه الفئة.
يرجع مادة جديدة بنفس المعلمات كهذه المادة.
انسخ المعلمات من المادة المارة إلى هذه المادة.
يحرر الموارد المتعلقة بوحدة معالجة الرسومات التي تم تخصيصها بواسطة هذه الحالة. اتصل بهذه الطريقة كلما لم يعد هذه الحالة مستخدمة في التطبيق الخاص بك.
يجب التخلص من نسج المادة من خلال طريقة dispose() من [page:Texture Texture].
رد الاتصال الاختياري الذي يتم تنفيذه مباشرة قبل تجميع برنامج الشادر. يتم استدعاء هذه الدالة مع شفرة مصدر الشادر كمعلمة. مفيد لتعديل المواد المدمجة.
على عكس الخصائص، لا يتم دعم رد الاتصال بواسطة [page:Material.clone .clone]()، [page:Material.copy .copy]() و [page:Material.toJSON .toJSON]().
This callback is only supported in `WebGLRenderer` (not `WebGPURenderer`).
An optional callback that is executed immediately before the material is used to render a 3D object.
Unlike properties, the callback is not supported by [page:Material.clone .clone](), [page:Material.copy .copy]() and [page:Material.toJSON .toJSON]().
This callback is only supported in `WebGLRenderer` (not `WebGPURenderer`).
في حالة استخدام onBeforeCompile، يمكن استخدام هذا الرد الاتصال لتحديد قيم إعدادات المستخدمة في onBeforeCompile، بحيث يمكن لـ three.js إعادة استخدام شادر مخزن في ذاكرة التخزين المؤقت أو إعادة تجميع شادر لهذه المادة حسب الحاجة.
على سبيل المثال، إذا كان onBeforeCompile يحتوي على جملة شرطية مثل:
if ( black ) {
shader.fragmentShader = shader.fragmentShader.replace('gl_FragColor = vec4(1)',
'gl_FragColor = vec4(0)')
}
فيجب تعيين customProgramCacheKey مثل هذا:
material.customProgramCacheKey = function() {
return black ? '1' : '0';
}
على عكس الخصائص، لا يتم دعم رد الاتصال بواسطة [page:Material.clone .clone]()، [page:Material.copy .copy]() و [page:Material.toJSON .toJSON]().
values - حاوية بالمعلمات.
يضبط الخصائص بناءً على `values`.
meta - كائن يحتوي على بيانات تعريفية مثل الملمس أو الصور للمادة.
تحويل المادة إلى three.js
[link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format].
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]