ملف تعريف مادة العرض Sceneform (مواد العرض الخاصة بسينما) (*.sfa
) هو وصف يمكن للمستخدمين قراءته حول مادة العرض الثنائية (Seneform Binary) (*.sfb
). يشير إلى النماذج وتعريفات المواد والزخارف في مادة عرض المصدر ويوفّر أيضًا معلَمات جوهرية للمواد القائمة على Sceneform.
يتم إنشاء هذا الملف تلقائيًا عند الاستيراد الأول بواسطة مكوّن Sceneform Android Android Studio، ولكن يمكنك تعديل السمات لتغيير مظهر مادة العرض. يوضّح هذا المرجع السمات التي يمكنك ضبطها لتعديل مظهر مادة العرض. سيكون للسمات الاختيارية غير الموجودة في sfa
قيمتها التلقائية. بنية sfa
هي
jsonnet، وهي إحدى إضافات
JSON.
البنية
{ materials: [ { name: "<name>", parameters: [ { <parameterName>: <parameterDefaultValue>, }, … ], source: "path/to/source_material.sfm", }, … ], model: { attributes: [ "Position", "TexCoord", "Orientation", ], file: "path/to/source_asset.ext", name: "<Name>", scale: 1.0, recenter: false, smoothing_angle: 45.0, flip_texture_coordinates: false, fix_infacing_normals: false, }, samplers: [ { file: "path/to/source_texture.ext", name: "<name>", params: { usage_type: "Color", mag_filter: "Linear", min_filter: "NearestMipmapLinear", wrap_s: "Repeat", wrap_t: "Repeat", }, pipeline_name: "<pipeline_name>", }, … ] }
السمات
materials[].parameters
يعتمد محتوى هذا الحظر على تعريف المادة الذي تحدّده السمة
source
.بالنسبة إلى المواد التلقائية (
*.sfm
)، راجِع قائمة المعلّمات المتوافقة:- مواد عرض OBJ:
obj_material.sfm
- مواد عرض FBX:
fbx_material.sfm
- مواد عرض glTF:
gltf_material.sfm
بالنسبة إلى المواد المخصّصة (
*.mat
)، يتم تحديد قائمة المعلّمات المتوافقة في ملف*.mat
:- راجع مرجع المادة المخصّصة
- مواد عرض OBJ:
materials[].source
- يحدد ملف تعريف المادة، إما ملف تعريف المواد
التلقائية (
*.sfm
) أو ملف تعريف المادة المخصّصة (*.mat
).
model.attributes
تحدّد هذه السياسة مجموعة ساحات المشاركات الرأسية التي تم تصديرها والتي تم احتسابها أثناء استيراد نموذج المصدر. القيم المحتمَلة هي:
القيمة الوصف "Color"
الرأس COLOR
."Orientation"
الرأس TANGENT
."Position"
الرأس POSITION
."TexCoord"
TEXCOORD0
، وهو أول إحداثيات للأشعة فوق البنفسجية.
model.file
- السمة المطلوبة تحتوي على مسار نظام ملفات إلى ملف مادة عرض مصدر.
التنسيقات المتوافقة حاليًا هي
*.fbx
و*.obj
و*.gltf
و*.glb
.
model.scale
السمة الاختيارية هي
1.0
بشكل تلقائي. التحكم في حجم النموذج الذي تم تصديره مقارنةً بمواد عرض المصدر. وسيؤدي المقياس2.0
إلى زيادة مادة العرض بمقدار الضعف.يتم تحديد قيم موضع العرض بالمتر. لاستيعاب الاختلافات في الوحدات العادية، يتم حساب عبارة المقياس تلقائيًا أثناء الاستيراد الأولي لجعل المحور الأكبر لا يقل عن 5 سم، والمحور الأصغر لا يزيد عن متر واحد. ويهدف هذا إلى تجربة الاستيراد الأولية، ولا يتم فرض هذه الحدود.
model.recenter
السمة الاختيارية هي
false
بشكل تلقائي. يتحكم في تحديد موضع الهندسة الهندسية التي تم تصديرها. القيم المحتمَلة هي:القيمة الوصف false
سيتم تصدير السمات الهندسية كما تمت كتابتها، بدون تغيير. true
سيتم وضع مركز الهندسة في الأصل. "root"
سيتم تصدير الشكل الهندسي ويمكن استخدام ذلك لضمان أن نموذجًا تم تصديره، تم وضعه على قاعدة ارتساء أو طائرة، سيقف فوق نقطة الارتساء هذه. {x:float, y:float, z:float}
سيتم تصدير الهندسة بحيث يتم وضع الأصل وفقًا للنقطة المشار إليها. {x:0, y:0, z:0}
يقابل الحد الأدنى في وضع الحد الذي تمت محاذاةه مع المحور.{x:1, y:1, z:1}
يقابل الحد الأقصى لمربّع الحد الذي تمت محاذاةه مع المحور.
model.smoothing_angle
- السمة الاختيارية المحددة بالدرجات هي السمة التلقائية،
45
. بالنسبة إلى مواد عرض المصدر التي لا تحتوي على قيم عادية لكل انعكاس (مثلobj
) سيتم إنشاء قيم عادية لكل انعكاسية باستخدام ناعمة زاوية للحد من مجموعة تعبيرات الوجوه المُستخدَمة في حساب قيمة النص العادي العادية. سيظهر حواف لا يتجاوز حجمها هذه الزاوية و#39;صعب'؛ أو ذات وجوه، ستظهر حواف لا تتجاوز سلسة.
model.flip_texture_coordinates
- سمة اختيارية والإعداد التلقائي هو
false
. إذا كانت القيمة صحيحة، يتم عكس الإحداثي الرأسي ((u, v) -> (u, 1 - v)
) أثناء الاستيراد. ويساعد ذلك في استيعاب الاختلافات السابقة بين OpenGL/Direct3D.
model.fix_infacing_normals
- سمة اختيارية والإعداد التلقائي هو
false
. في حال ضبط هذه السياسة على "صحيح"، ستحاول عملية الاستيراد العثور على الحالات المصحّحة فيها (العادية 'into' والسطح الخارجي) ومقابلها#، بدلاً من ' الواجهة.
samplers[].params.usage_type
- يحدد هذا الإعداد كيفية تفسير وقت التشغيل لبيانات الصورة المشفرة. يمكنك استخدام
"Color"
لتحديد زخارف الصور في تنسيق sRGB. يمكنك استخدام"Data"
أو"Normal"
للتعامل مع محتوى الصورة كما لو كان في مساحة خطية. القيمة التلقائية هي"Color"
.
samplers[].params.mag_filter
لتعريف فلتر التصغير المُستخدَم عندما تكون عينة mpmap أكبر من حجم البكسل للهندسة الهندسية التي يتم أخذ عينات منها. القيمة التلقائية هي
"Linear"
. القيم المحتمَلة هي:القيمة الوصف "Nearest"
يتطابق مع GL_NEAREST
. تعرض قيمة عنصر النسيج الأقرب (في مسافة مانهاتن) إلى وسط وحدة البكسل التي يتم زخرفةها."Linear"
يتطابق مع GL_LINEAR
. تعرض المتوسط المُرجَّح لعناصر النسيج الأربعة الأقرب إلى مركز وحدة البكسل التي يتم زخرفةها. يمكن أن يتضمّن ذلك عناصر الزخرفة على الحدود، وذلك وفقًا لقيم الزخرفةwrap_s
والزخارفwrap_t
والتعيين الدقيق.
samplers[].params.min_filter
لتعريف فلتر التصغير المُستخدَم عندما تكون عينة mpmap أكبر من حجم البكسل للهندسة الهندسية التي يتم أخذ عينات منها. والقيمة التلقائية هي
"NearestMipmapLinear"
. القيم المحتمَلة هي:القيمة الوصف "Nearest"
يتطابق مع GL_NEAREST
. لعرض قيمة عنصر النسيج الأقرب (على مسافة مانهاتن) إلى وسط بكسل البكسل."Linear"
يتطابق مع GL_LINEAR
. تعرض المتوسط المرجّح لعناصر النسيج الأربعة الأقرب إلى مركز وحدة البكسل التي يتم زخرفةها. يمكن أن يشمل ذلك عناصر الزخرفة الحدية بناءً على قيم الزخرفةwrap_s
والزخرفةwrap_t
وعلى التحديد الدقيق للخريطة."NearestMipmapNearest"
يتطابق مع GL_NEAREST_MIPMAP_NEAREST
. يتم اختيار الصورة المصغّرة التي تتطابق إلى حد كبير مع حجم البكسل الذي يتم زخرفةه وتستخدم المعيار"Nearest"
(عنصر النسيج الأقرب إلى منتصف البكسل) لإنشاء قيمة النسيج."LinearMipmapNearest"
يتطابق مع GL_NEAREST_MIPMAP_LINEAR
. يتم اختيار الخطتين الرئيسيتين اللتين تتطابقان إلى حد كبير مع حجم البكسل الذي يتم زخرفةه ويستخدِم معيار"Nearest"
(عنصر النسيج الأقرب إلى منتصف وحدة البكسل) لإنشاء قيمة نسيج من كل صورة مصغّرة. قيمة النسيج النهائية هي متوسط مرجَّح لهاتين القيمتين."LinearMipmapLinear"
يتطابق مع GL_LINEAR_MIPMAP_LINEAR
. يتم اختيار المعلمتين الرئيسيتين اللتين تتطابقان إلى حد كبير مع حجم البكسل الذي يتم زخرفةه ويستخدِم معيار"Linear"
(المتوسط المرجّح لعناصر النسيج الأربعة الأقرب إلى مركز وحدات البكسل) لإنتاج قيمة نسيج من كل خريطة mipmap. قيمة النسيج النهائية هي متوسط مرجَّح لهذه القيمتَين.
samplers[].params.wrap_s
السمة الاختيارية هي
"Repeat"
بشكل تلقائي. يتحكّم في سلوك الالتفاف الأفقي.القيمة الوصف "ClampToBorder"
يتطابق مع GL_CLAMP_TO_BORDER
."ClampToEdge"
يتطابق مع GL_CLAMP_TO_BORDER
."MirroredRepeat"
يتطابق مع GL_MIRRORED_REPEAT
."MirrorClampToEdge"
يتطابق مع GL_MIRROR_CLAMP_TO_EDGE
."Repeat"
يتطابق مع GL_REPEAT
.
samplers[].params.wrap_t
السمة الاختيارية هي
"Repeat"
بشكل تلقائي. يتحكّم في سلوك الالتفاف العموديالقيمة الوصف "ClampToBorder"
يتطابق مع GL_CLAMP_TO_BORDER
."ClampToEdge"
يتطابق مع GL_CLAMP_TO_BORDER
."MirroredRepeat"
يتطابق مع GL_MIRRORED_REPEAT
."MirrorClampToEdge"
يتطابق مع GL_MIRROR_CLAMP_TO_EDGE
."Repeat"
يتطابق مع GL_REPEAT
.
معلّمات المواد التلقائية
يوفر تطبيق Sceneform ثلاثة تعريفات جوهرية تلقائية: أحدهما لأصول OBJ وأحد مواد عرض FBX والآخر لأصول glTF.
يسرد هذا القسم المعلَمات الأساسية المتوافقة مع كل تعريف للمواد التلقائية.
obj_material.sfm
المعلمة | القيمة | الوصف |
---|---|---|
baseColor
|
<sampler_name>
|
احسب baseColor كقيمة من
العينة مضروبة في اللون
المستنتَج. |
null
|
احتسِب baseColor على أنه اللون
المقدر، أو الأبيض في حال عدم توفّر لون. |
|
baseColorTint
|
<vec4>
|
تنطبق درجات الألوان على قيمة baseColor المحسوبة، والتي يتم تحديدها على أنها [r, b,
g, a] . |
metallic
|
<float_value>
|
تتحكّم هذه السمة في المعادن
للمواد المعدنية. استخدِم 0.0 للمواد غير المعدنية.استخدِم السمة 1.0
للمواد المعدنية. |
roughness
|
<float_value>
|
تتحكّم هذه السياسة في صلبة المادة الأساسية. استخدِم القيم المنخفضة للمواد اللامعة (تمثّل 0.0 انعكاسًا مثاليًا).استخدِم قيمًا عالية للمواد الموزّعة (تمثّل 1.0 المادة الأساسية
بدون لمعان). |
opacity |
null |
معتمة تمامًا. |
<float_value>
|
تم تفعيل الشفافية.1.0 معتم بالكامل.0.0 شفاف بالكامل. |
fbx_material.sfm
المعلمة | القيمة | الوصف |
---|---|---|
baseColor
|
<vec4>
|
عامل تلوين خفيف على نتيجة
baseColorMap محدد على أنه [r, g, b,
a] |
baseColorMap
|
<sampler_name>
|
النتيجة هي قيمة
عيّنة baseColorMap . |
null |
تتحول إلى اللون الأبيض. | |
normalMap
|
<sampler_name>
|
لتفسير نتيجة النتيجة على أنها مساحة طبيعية ظلية، تُستخدم في حسابات الإضاءة. |
null
|
استخدِم [0, 0, 1] الثابت
كمظلة عادية. |
|
metallic
|
<float_value>
|
استخدام المقاييس metallicMap للتحكّم في تعدين المواد.استخدام 0.0 المواد غير المعدنيةاستخدام 1.0 المواد المعدنية |
metallicMap
|
<sampler_name>
|
استخدِم قيمة القناة الحمراء من العيّنة باعتبارها قيمة metallicMap . |
null
|
استخدِم قيمة 1.0 ثابتة، بحيث يمكن قياسها بمقدار
metallic . |
|
roughness
|
<float_value>
|
تضبط هذه السمة roughnessMap للتحكّم في خامة المادة.استخدم خشنة منخفضة للمواد اللامعة. استخدِم الخشنة العالية المواد المنتشرة. |
roughnessMap
|
<sampler_name>
|
استخدِم قيمة القناة الحمراء من العيّنة باعتبارها قيمة roughnessMap . |
null
|
استخدِم قيمة 1.0 ثابتة، بحيث يمكن قياسها بمقدار
roughness . |
|
reflectance
|
<float_value>
|
تتحكّم هذه السياسة في انعكاس المادة الأساسية. يغطّي الإعداد التلقائي 0.5 كل المواد المحتمَلة. |
opacity
|
null
|
لا يتوفر عنصر تحكم صريح في التعتيم. إذا تم تحديد خريطة تعتيم في بيانات المصدر، سيتم عرض المادة مع مزج شفاف. |
gltf_material.sfm
المعلمة | القيمة | الوصف |
---|---|---|
baseColorFactor
|
<vec4>
|
عامل تلوين خفيف على نتيجة baseColor ، يتم تحديده على أنه [r, g, b,
a] |
normal
|
<sampler_name>
|
لتفسير النتيجة كنتيجة في ظل الزاوية بشكل طبيعي، ويتم استخدامها في عمليات حساب الإضاءة. |
null
|
استخدِم [0, 0, 1] ثابتًا
كمساحة ظل ظل عادية. |
|
metallicFactor
|
<float_value>
|
المقاييس metallicRoughness
للتحكّم في المعادن
للمادة.استخدم 0.0 المواد غير المعدنية.استخدم 1.0
للمواد المعدنية. |
roughnessFactor
|
<float_value>
|
مقاييس metallicRoughness
للتحكّم في مستوى الصرامة
في المادة.استخدِم الحد المنخفض من المواد المتلألئة. استخدِم درجات متانة عالية لمواد منتشرة. |
metallicRoughness
|
<sampler_name>
|
استخدِم القناة الخضراء من
العيّنة لقياس درجة الخشنة
(يتم قياسها بنسبة
roughnessFactor ).استخدِم القناة الزرقاء من العيّنة للمعدن (تمّ قياسها حسب metallicFactor ). |
null
|
استخدِم metallicFactor
وroughnessFactor . |
|
occlusion
|
<sampler_name>
|
استخدِم القناة الحمراء من عيّنة العينات المحيطة. |
null
|
في حال توفّر النسيج metallicRoughness ، استخدِم القناة الحمراء لتحقيق تراكم في الخلفية. |
|
emissiveFactor
|
<float_value>
|
تحدّد هذه السمة emissive للتدرّج على انبعاثات المواد.استخدِم 0.0
للمواد التي لا تؤدي إلى إضاءة الضوء الخاص بها. |
emissive
|
<sampler_name>
|
استخدِم اللون المأخوذ من العيّنة باعتباره القيمة الانبعاثية. |
null |
بلا انبعاثات. | |
reflectance
|
<float_value>
|
يتحكم في انعكاس
المادة. يغطي الإعداد التلقائي لـ 0.5 جميع
المواد الممكنة تقريبًا. |
إذا تم تحديد مهلة الإصدار الأولي في بيانات المصدر، سيتم عرض المادة مع مزج الكمامات. في حال تفعيل المزج على المحتوى المصدر، سيتم تفعيل الشفافية.
تغيير الزخارف أو إضافتها
تحدّد القالب samplers
الزخارف المتوفّرة
لموادك. تشير سجلّات العيّنات التي تنشأ من مادة العرض المصدر إلى
pipeline_name
، وبالتالي يتم التعرّف عليها بشكلٍ فريد من خلال مسار الصورة الأصلي في مادة عرض المصدر. يمكن تغيير الحقل file
ليحتوي على مسار ملف نسبي app/
. على سبيل المثال، الرمز:
{ file: "sampledata/models/textures/dandy_andy.png", name: "andy", pipeline_name: "andy.png", },
يستبدل نسيج المصدر المُشار إليه باسم andy.png
في مواد عرض المصدر مع محتوى الملف./sampledata/models/textures/dandy_andy.png
.
قد لا يتم استيراد الزخارف المُعلَنة بالكامل أو جزئيًا في مادة العرض المصدر إلى مادة العرض تلقائيًا، وفي هذه الحالة يمكن إضافتها إلى
الهيئة غير الربحية. يمكن إضافة زخارف إلى أي نموذج يتضمّن TexCoord
في قائمة السمات. بدلاً من استخدام pipeline_name
، الذي لا ينطبق إلا على العيّنات التي يتم استيرادها تلقائيًا، يحدِّد المستخدم حظر injections
.
ننصحك باستخدام نموذج FBX يتضمن سمات TexCoord
ولكن بدون زخارف. يمكنك إضافة ملف صورة في مجلد المشروع وربطه في كتلة عيّنة جديدة، ثم تعلن عمليات الحقن عن استخدامه على أنه
"Normal"
كما في الرمز التالي:
{ file: "sampledata/models/cragly_normal.png", name: "bumps", injections: [ {usage: "Normal",}, ], },
وفي هذه المرحلة، تكون القوام متاحة لموادك. ولعرض هذه العيّنة،
تأكّد من أنّ طلبات العيّنة تحتوي على معلّمة normalMap
(وإلا قد تظهر العيّنة غير مستخدَمة وسيتمّ اختيارها). بما أنّ اسم bumps
في مجموعة العيّنات يعني أنّ المادة الأساسية يجب أن تتضمّن الرمز التالي:
{ normalMap: 'bumps', },
الاستخدامات المتاحة لجزء الحقن هي BaseColor
وMetallic
وNormal
وEmissive
Roughness
وOcclusion
.