يقدم هذا المستند نظرة عامة شاملة على flexmark-Java، وهو تطبيق Java عالي الأداء لمحلل CommonMark Markdown. وهو يعرض تفاصيل ميزاته، بما في ذلك السرعة وقابلية التوسعة والتتبع التفصيلي لموضع المصدر، إلى جانب تعليمات البدء السريع والامتدادات المتاحة والانتقال من Pegdown. وتغطي الوثيقة أيضًا إرشادات التطوير والمساهمة المستمرة.
flexmark-java
flexmark-java هو تطبيق Java لمحلل CommonMark (المواصفات 0.28) باستخدام
الكتل أولاً، مضمّنة بعد بنية التحليل Markdown.
نقاط قوتها هي السرعة والمرونة وعنصر مصدر Markdown القائم على AST مع تفاصيل
موضع المصدر وصولاً إلى الأحرف الفردية من المعاجم التي تشكل العنصر و
القابلية للتوسعة.
تسمح واجهة برمجة التطبيقات (API) بالتحكم الدقيق في عملية التحليل وهي مُحسّنة للتحليل باستخدام نطاق كبير
عدد الامتدادات المثبتة يأتي المحلل اللغوي والإضافات مع الكثير من الخيارات للمحلل اللغوي
اختلافات السلوك وعرض HTML. الهدف النهائي هو تمكين المحلل اللغوي والعارض
لتقليد المحللين الآخرين بدرجة كبيرة من الدقة. لقد اكتمل هذا الآن جزئيًا مع
تنفيذ محاكاة معالج تخفيض السعر
كان الدافع وراء هذا المشروع هو الحاجة إلى استبدال محلل pegdown في Markdown Navigator الخاص بي
البرنامج المساعد لـ JetBrains IDEs. يحتوي Pegdown على مجموعة ميزات رائعة ولكن سرعته بشكل عام أقل
من المثالي وللإدخال المرضي إما توقف أو توقف عمليا أثناء التحليل.
️الإصدار 0.60.0 به تغييرات جذرية بسبب إعادة التنظيم وإعادة التسمية والتنظيف و
تحسين فئات التنفيذ. التغييرات مفصلة في
الإصدار-0.60.0-التغييرات.
أحدث
متطلبات
بالنسبة للإصدارات 0.62.2 أو أقل، أو Java 8 أو أعلى، متوافق مع Java 9+. للإصدارات 0.64.0 أو
أعلاه، جافا 11 أو أعلى.
المشروع موجود على Maven: com.vladsch.flexmark
لا يحتوي النواة على أي تبعيات غير org.jetbrains:annotations:24.0.1. للحصول على ملحقات، انظر
وصف الامتداد أدناه.
لا تزال واجهة برمجة التطبيقات (API) تتطور لاستيعاب الإضافات والوظائف الجديدة.
بداية سريعة
بالنسبة إلى Maven، أضف flexmark-all باعتباره تبعية تتضمن النواة وجميع الوحدات النمطية إلى ملف
العينة التالية:
مصدر:
BasicSample.java
البناء عبر Gradle
البناء باستخدام Android Studio
إعدادات إضافية بسبب الملفات المكررة:
يمكن العثور على مزيد من المعلومات في الوثائق:
أمثلة على استخدام Wiki Home
تفاصيل التمديد
ملحقات الكتابة
مساعد الهجرة Pegdown
تعمل فئة PegdownOptionsAdapter على تحويل إشارات pegdown Extensions.* إلى خيارات flexmark و
قائمة الامتدادات. تم تضمين Pegdown Extensions.java لتوفير الراحة ولم يتم العثور على خيارات جديدة
في pegdown 1.6.0. توجد هذه في وحدة flexmark-profile-pegdown ولكن يمكنك الحصول على
المصدر من هذا الريبو: PegdownOptionsAdapter.java، Extensions.java واصنع بنفسك
الإصدار، المعدل لاحتياجات المشروع الخاص بك.
يمكنك تمرير إشارات الامتداد الخاصة بك إلى PegdownOptionsAdapter.flexmarkOptions(int) الثابت أو أنت
يمكنه إنشاء مثيل لـ PegdownOptionsAdapter واستخدام أساليب ملائمة للضبط والإضافة والإزالة
أعلام التمديد. سوف يقوم PegdownOptionsAdapter.getFlexmarkOptions() بإرجاع نسخة جديدة من
DataHolder في كل مرة مع الخيارات التي تعكس إشارات امتداد الربط.
تستخدم محاكاة flexmark-java pegdown الافتراضية تحليل كتلة HTML أقل صرامة والذي يقاطع
كتلة HTML على سطر فارغ. يقوم Pegdown بمقاطعة كتلة HTML الموجودة على سطر فارغ فقط إذا كانت جميع العلامات موجودة
كتلة HTML مغلقة.
للاقتراب من سلوك تحليل كتلة HTML الأصلي، استخدم الطريقة التي تأخذ
وسيطة HTML الصارمة:
تتوفر أيضًا عينة تحتوي على محلل ارتباط مخصص، والذي يتضمن محلل الارتباط لـ
تغيير عناوين URL أو سمات الروابط وعارض العقدة المخصص إذا كنت بحاجة إلى تجاوز
تم إنشاء رابط HTML.
يحتوي flexmark-Java على العديد من الإضافات وخيارات التكوين أكثر من
pegdown بالإضافة إلى الامتدادات المتوفرة في pegdown 1.6.0.
الامتدادات المتاحة عبر PegdownOptionsAdapter
أحدث الإضافات والتغييرات
إعادة التنظيم الرئيسية وتنظيف التعليمات البرمجية للتنفيذ في الإصدار 0.60.0، راجع
الإصدار-0.60.0-التغييرات بفضل العمل الرائع الذي قام به
Alex Karezin يمكنك الحصول على نظرة عامة على تبعيات الوحدة
مع القدرة على التعمق في الحزم والفئات.
دمج واجهة برمجة التطبيقات (API) لدمج مستندات تخفيض السعر المتعددة في مستند واحد
وثيقة.
امتداد عارض Docx:
التعامل مع عقدة السمات المحدودة
وحدة HTML القابلة للتوسيع لتحويل Markdown:
flexmark-html2md-converter. عينة:
HtmlToMarkdownCustomizedSample.java
توافق وحدة Java9+
المراجع المركبة
تعداد المراجع ملحق لإنشاء
الترقيم القانوني للعناصر والعناوين.
امتداد وحدات الماكرو للسماح بمحتوى تخفيض السعر التعسفي
تم إدراجها ككتلة أو عناصر مضمنة، مما يسمح باستخدام عناصر الكتلة في الأماكن المضمنة فقط
العناصر مسموح بها من خلال بناء الجملة.
GitLab Flavored Markdown للتحليل و
تقديم ملحقات تخفيض سعر GitLab.
وحدة OSGi مقدمة من Dan Klco (GitHubklcodanr)
علامات الوسائط امتداد محول رابط الوسائط من باب المجاملة
تقوم كورنيليا شولتز (GitHubCorneliaXaos) بتحويل الروابط
باستخدام بادئات مخصصة لعلامات HTML5 للصوت والتضمين والصورة والفيديو.
واجهة برمجة تطبيقات مساعد الترجمة لإجراء عملية تخفيض السعر للترجمة
المستندات أسهل.
تحذير لإنشاء محتوى جانبي على شكل كتلة. ل
التوثيق الكامل يرجى الاطلاع على ملحق التحذير، المادة الخاصة بـ MkDocs
الوثائق.
تعداد مرجعي لإنشاء تعداد
مراجع للأشكال والجداول وعناصر تخفيض السعر الأخرى.
سمات لتحليل سمات النموذج {name name=value name='value' name="value" #id .class-name} السمات.
يوتيوب محول الرابط المضمن
بفضل Vyacheslav N. Boyko (GitHub @bvn13) يحول الروابط البسيطة لمقاطع فيديو youtube إلى
فيديو مضمن iframe HTML.
محول Docx باستخدام مكتبة docx4j. كيفية الاستخدام:
نموذج DocxConverter، كيفية التخصيص:
تخصيص عرض Docx
تم تطوير هذه الوحدة برعاية
معهد جونر GmbH.
قم بتحديث المكتبة لتكون متوافقة مع CommonMark (المواصفات 0.28) وقم بإضافتها
ParserEmulationProfile.COMMONMARK027 وParserEmulationProfile.COMMONMARK028 للسماح
تحديد خيارات إصدار المواصفات المحددة.
واجهة برمجة تطبيقات عرض العقدة المخصصة مع القدرة على استدعاء العرض القياسي للعقدة التي تم تجاوزها،
السماح بعرض العقدة المخصصة التي تتعامل فقط مع الحالات الخاصة والسماح بعرض الباقي على أنه
المعتاد. محلل الارتباط المخصص
Gfm-قضايا و
ملحقات Gfm-Users للتحليل والعرض رقم 123 و
@ اسم المستخدم على التوالي.
خيار تحليل كتلة HTML العميق للتعامل بشكل أفضل مع علامات النص الخام التي تأتي بعد العلامات الأخرى
ومن أجل توافق تحليل كتلة HTML.
وحدة flexmark-all التي تتضمن: الأساسية، وجميع الامتدادات، والمنسق، وJIRA، وYouTrack
المحولات ووحدة ملف تعريف pegdown وتحويل HTML إلى Markdown.
وحدة إخراج PDF
إخراج PDF باستخدام Open HTML To PDF
تم تنفيذ الطباعة
ملحق ماكرو XWiki
علامات جيكل
أتش تي أم أل إلى تخفيض السعر
البرنامج المساعد لمولد الصفحة Maven Markdown
وحدة Markdown Formatter لإخراج AST كتخفيض سعري
خيارات التنسيق.
جداول لمنسق تخفيض السعر
مع عرض العمود ومحاذاة جداول تخفيض السعر:
الإصدارات وإصلاحات الأخطاء والتحسينات والدعم
أستخدم flexmark-java كمحلل للمكون الإضافي Markdown Navigator لـ JetBrains IDEs. أنا أميل إلى ذلك
استخدم الإصدار الأحدث الذي لم يتم طرحه لإصلاح الأخطاء أو الحصول على التحسينات. لذلك إذا وجدت خطأ ما
توقف العرض لمشروعك أو رأيت خطأ في صفحة مشكلات github تم وضع علامة "ثابت" للإصدار التالي والذي يؤثر على مشروعك، فيرجى إبلاغي بذلك وقد أتمكن من ذلك على الفور
قم بإنشاء إصدار جديد لمعالجة مشكلتك. خلاف ذلك، سأسمح بإصلاحات الأخطاء والتحسينات
تراكم التفكير فلا يتأثر أحد بما تم إصلاحه بالفعل.
نقاط الامتداد في API كثيرة ومتعددة
هناك العديد من خيارات الامتداد في واجهة برمجة التطبيقات (API) للاستخدام المقصود منها. البداية الناعمة الجيدة هي
وحدة flexmark-java-samples التي تحتوي على عينات بسيطة مطلوبة
ملحقات. المكان التالي الأفضل هو مصدر الامتداد الموجود الذي له بناء جملة مماثل
إلى ما تريد إضافته.
إذا كان ملحقك متوافقًا مع واجهة برمجة التطبيقات (API) الصحيحة، فعادةً ما تكون المهمة قصيرة جدًا وحلوة. إذا كان لديك
يستخدم الملحق واجهة برمجة التطبيقات بطريقة غير مقصودة أو لا يتبع التدبير المنزلي المتوقع
البروتوكولات، قد تجد أنها معركة شاقة مع عش الفئران للتعامل مع حالة if/else و
إصلاح خطأ واحد يؤدي فقط إلى إنشاء خطأ آخر.
بشكل عام، إذا استغرق الأمر أكثر من بضع عشرات من الأسطر لإضافة امتداد بسيط، فإما أنت
هل تسير الأمور بشكل خاطئ أو أن واجهة برمجة التطبيقات (API) تفتقد نقطة امتداد. إذا نظرت إلى كل
عند تنفيذ الإضافات، سترى أن معظمها عبارة عن بضعة أسطر من التعليمات البرمجية بخلاف لوحة الغلاية
تمليها API. هذا هو هدف هذه المكتبة: توفير نواة قابلة للتوسيع
ملحقات الكتابة نسيم.
الامتدادات الأكبر هي flexmark-ext-tables وflexmark-ext-spec-example، لحم
كلاهما حوالي 200 سطر من التعليمات البرمجية. يمكنك استخدامها كدليل إرشادي لتقدير الحجم الخاص بك
امتداد.
تُظهر تجربتي الخاصة في إضافة الإضافات أنه في بعض الأحيان يكون النوع الجديد من الإضافات هو الأفضل
تمت معالجتها من خلال تحسين واجهة برمجة التطبيقات (API) لجعل تنفيذها سلسًا، أو من خلال إصلاح الخلل الذي
لم يكن مرئيًا قبل أن يؤكد الامتداد على واجهة برمجة التطبيقات (API) بالطريقة الصحيحة. المقصود الخاص بك
قد يكون الامتداد هو الذي يتطلب مثل هذا النهج.
لا تتردد في فتح موضوع إذا لم تجد الإجابة
الفكرة هي: إذا كنت تريد تنفيذ إضافة أو ميزة، فلا تتردد في ذلك
افتح مشكلة وسأقدم لك مؤشرات حول أفضل طريقة للقيام بذلك. قد يوفر لك الكثير
من الوقت من خلال السماح لي بتحسين واجهة برمجة التطبيقات (API) لتلبية احتياجات الامتداد الخاص بك قبل أن تضع الكثير من
جهد عقيم في ذلك.
أطلب منك أن تدرك أنني رئيس الطباخين وغسالة الزجاجات في هذا المشروع، بدون
ذرة من مهارات دمج العقل فولكان. أطلب منك وصف ما تريد تنفيذه
لأنني لا أستطيع قراءة عقلك. يرجى القيام ببعض الأعمال الاستطلاعية حول المصدر
الكود والوثائق لأنني لا أستطيع نقل ما أعرفه إليك دون رغبتك
جهد.
الاستشارة متاحة
إذا كان لديك تطبيق تجاري ولا ترغب في كتابة الامتداد (الامتدادات) بنفسك أو تريد ذلك
لتقليل الوقت والجهد المبذولين في تنفيذ الامتدادات ودمج flexmark-Java، Feel
حرية الاتصال بي. أنا متاح على أساس الاستشارة/التعاقد.
محاكاة معالج تخفيض السعر
على الرغم من اسمها، فإن Commonmark ليست مجموعة شاملة ولا مجموعة فرعية من نكهات تخفيض السعر الأخرى.
بدلاً من ذلك، فهو يقترح مواصفات تركيبية قياسية لا لبس فيها للأصل "الأساسي"
تخفيض السعر، وبالتالي تقديم نكهة أخرى بشكل فعال. بينما تكون العلامة المرنة افتراضيًا
متوافق مع العلامة المشتركة، ويمكن تعديل المحلل اللغوي بطرق مختلفة. مجموعات التعديلات المطلوبة ل
محاكاة موزعي تخفيض السعر الأكثر استخدامًا المتوفرة في flexmark as
ParserEmulationProfiles.
كما يوحي الاسم ParserEmulationProfile، فإن المحلل اللغوي هو فقط الذي تم ضبطه على ملف
نكهة تخفيض السعر محددة. لا يؤدي تطبيق ملف التعريف إلى إضافة ميزات تتجاوز تلك المتوفرة فيه
com.commonmark. إذا كنت تريد استخدام flexmark لمحاكاة سلوك معالج تخفيض السعر الآخر بشكل كامل،
يجب عليك ضبط المحلل اللغوي وتكوين ملحقات العلامات المرنة التي توفر الميزات الإضافية
الميزات المتوفرة في المحلل اللغوي الذي تريد محاكاته.
إعادة كتابة محلل القائمة للتحكم بشكل أفضل في محاكاة معالجات تخفيض السعر الأخرى وفقًا لما هو مطلوب
اكتملت محاكاة معالجات Markdown. إضافة
الإعدادات المسبقة للمعالج لمحاكاة سلوك معالجة تخفيض السعر المحدد لهؤلاء المحللين موجودة على
قائمة قصيرة للقيام.
تقوم بعض عائلات المحاكاة بعمل أفضل في محاكاة هدفها من غيرها. معظم
تم توجيه الجهد إلى محاكاة كيفية تحليل هذه المعالجات لـ Markdown والقائمة القياسية
التحليل ذات الصلة على وجه التحديد. بالنسبة للمعالجات التي تقوم بتمديد Markdown الأصلي، ستحتاج إلى إضافتها
تلك الامتدادات التي تم تنفيذها بالفعل في flexmark-java إلى منشئ Parser/Renderer
خيارات.
سيتم تعديل الامتدادات لتشمل الإعدادات المسبقة الخاصة بها لمحاكاة معالج معين، إذا
يحتوي هذا المعالج على ملحق مكافئ تم تنفيذه.
إذا وجدت تناقضا يرجى فتح مشكلة حتى يمكن معالجتها.
يتم تنفيذ عائلات المعالجات الرئيسية وبعض أفراد العائلة أيضًا:
ملفات التعريف لتغليف تفاصيل التكوين للمتغيرات داخل
تمت إضافة العائلة في 0.11.0:
التاريخ والدافع
flexmark-Java عبارة عن شوكة لمشروع commonmark-Java، تم تعديله لإنشاء AST الذي
يعكس جميع العناصر الموجودة في المصدر الأصلي، وتتبع موضع المصدر بالكامل لجميع العناصر
في AST وأسهل إنشاء JetBrains Open API PsiTree.
تم تغيير واجهة برمجة التطبيقات للسماح بمزيد من التحكم الدقيق في عملية التحليل وتحسينها
تحليل مع عدد كبير من الملحقات المثبتة. المحلل اللغوي والإضافات تأتي مع الكثير
خيارات التغيير والتبديل لسلوك المحلل اللغوي وتنوعات عرض HTML. الهدف النهائي هو الحصول على
يكون المحلل اللغوي والعارض قادرين على تقليد المحللين الآخرين بدرجة كبيرة من الدقة.
كان الدافع وراء ذلك هو الحاجة إلى استبدال محلل pegdown في البرنامج المساعد Markdown Navigator.
يحتوي Pegdown على مجموعة ميزات رائعة ولكن سرعته بشكل عام أقل من المثالية
المدخلات المرضية إما معلقة أو معلقة عمليا أثناء التحليل.
تتمتع Commonmark-Java ببنية تحليلية ممتازة يسهل فهمها وتوسيعها.
كان الهدف هو التأكد من أن إضافة تتبع موضع المصدر في AST لن يغير السهولة
تحليل وتوليد AST أكثر من اللازم.
أسباب اختيار Commonmark-Java كمحلل هي: السرعة، سهولة الفهم، سهولة
تمديد وسرعة. الآن بعد أن قمت بإعادة صياغة النواة وإضافة بعض الامتدادات، فأنا سعيد للغاية
راض عن خياري.
كان الهدف الآخر هو تحسين قدرة الامتدادات على تعديل سلوك المحلل اللغوي بحيث لا يمكن لأي منها
يمكن تنفيذ لهجة تخفيض السعر من خلال آلية التمديد. خيارات قابلة للتوسيع
تمت إضافة واجهة برمجة التطبيقات (API) للسماح بتحديد جميع الخيارات في مكان واحد. استخدام المحلل اللغوي والعارض والإضافات
هذه الخيارات للتكوين، بما في ذلك تعطيل بعض موزعي الكتلة الأساسية.
هذا عمل قيد التقدم مع العديد من تغييرات واجهة برمجة التطبيقات. لم تتم أي محاولة للاحتفاظ بواجهة برمجة التطبيقات (API) المتخلفة
التوافق مع المشروع الأصلي وحتى اكتمال مجموعة الميزات في الغالب، ولا حتى
الإصدارات السابقة من هذا المشروع.
مقارنة الميزات
(1)
الإدخال المرضي لـ flexmark-Java يبلغ 100000 [تحليل في 68 مللي ثانية، 100000] في 57 مللي ثانية، 100000
تحليل متداخل [ ] في 55 مللي ثانية
(2)
المدخلات المرضية المشتركة لجافا تبلغ 100000 [تحليل في 30 مللي ثانية، 100000] في 30 مللي ثانية، 100000
تحليل متداخل [ ] في 43 مللي ثانية
(3)
المدخلات المرضية المرجعية لـ 17 [توزيع في 650 مللي ثانية، 18 [في 1300 مللي ثانية
تقدم
أنا سعيد جدًا بقرار التحول إلى المحلل اللغوي المعتمد على Commonmark-Java بنفسي
المشاريع. على الرغم من أنني اضطررت إلى إجراء عملية جراحية كبيرة على أحشائه للحصول على وضع المصدر الكامل
التتبع وAST الذي يطابق عناصر المصدر، إنه لمن دواعي سروري العمل معه وهو الآن
من دواعي سروري أن تمتد. إذا لم تكن بحاجة إلى عنصر مستوى المصدر AST أو بقية عناصر flexmark-java
تمت إضافته وCommonMark هو محلل تخفيض السعر المستهدف، ثم أشجعك على استخدامه
commonmark-Java لأنه خيار ممتاز لاحتياجاتك وأدائه لا يفعل ذلك
تعاني من عبء الميزات التي لن تستخدمها.
المعايير
الأحدث، 28 يناير 2017 flexmark-java 0.13.1، intellij-markdown من CE EAP 2017، commonmark-java
0.8.0:
النسب المذكورة أعلاه:
نظرًا لأن هذين الملفين يمثلان المدخلات المرضية لـ pegdown، لم أعد أقوم بتشغيلهما كـ
جزء من المعيار لمنع انحراف النتائج. النتائج هنا للأجيال القادمة.
النسب المذكورة أعلاه:
المساهمة
سحب الطلبات والقضايا والتعليقات موضع ترحيب؟. لطلبات السحب:
رخصة
حقوق الطبع والنشر (ج) 2015-2016 أتلاسيان وآخرون.
حقوق الطبع والنشر (ج) 2016-2023، فلاديمير شنايدر،
ترخيص BSD (بندان)، راجع ملف LICENSE.txt.
مثال:
ميتسوبا ريندر 3
التوثيق | أشرطة الفيديو التعليمية | لينكس | ماك | ويندوز | بايبي |
---|---|---|---|---|---|
️
تحذير
️
يوجد حاليًا قدر كبير من العمل غير الموثق وغير المستقر الجاري
الفرع master
. نحن نوصي بشدة باستخدام موقعنا
أحدث إصدار
حتى إشعار آخر.
إذا كنت ترغب بالفعل في تجربة التغييرات القادمة، فيرجى إلقاء نظرة عليها
دليل النقل هذا.
وينبغي أن يغطي معظم الميزات الجديدة والتغييرات العاجلة القادمة.
مقدمة
Mitsuba 3 هو نظام عرض موجه نحو البحث للضوء الأمامي والعكسي
تم تطوير محاكاة النقل في EPFL في سويسرا.
وهو يتألف من مكتبة أساسية ومجموعة من المكونات الإضافية التي تنفذ الوظائف
تتراوح من المواد ومصادر الضوء إلى خوارزميات العرض الكاملة.
Mitsuba 3 قابل لإعادة الاستهداف : وهذا يعني أن التطبيقات الأساسية و
يمكن أن تتحول هياكل البيانات لإنجاز مهام مختلفة مختلفة. ل
على سبيل المثال، يمكن لنفس الكود محاكاة نقل RGB العددي (التقليدي لشعاع واحد في كل مرة)
أو النقل الطيفي التفاضلي على GPU. كل هذا مبني على
Dr.Jit، مترجم متخصص في الوقت المناسب (JIT) تم تطويره خصيصًا لهذا المشروع.
الميزات الرئيسية
عبر الأنظمة الأساسية : تم اختبار Mitsuba 3 على Linux ( x86_64
)، وmacOS
( aarch64
و x8664
) و Windows ( x8664
).
الأداء العالي : يقوم برنامج التحويل البرمجي Dr.Jit الأساسي بدمج كود العرض
إلى حبات تحقق أداءً متطورًا باستخدام
واجهة LLVM الخلفية تستهدف وحدة المعالجة المركزية وواجهة CUDA/OptiX الخلفية
استهداف وحدات معالجة الرسومات NVIDIA مع تسريع أجهزة تتبع الأشعة.
Python أولاً : تم دمج Mitsuba 3 بعمق مع Python. مواد،
يمكن تطوير القوام، وحتى خوارزميات العرض الكاملة في بايثون،
الذي يجمعه نظام JIT (ويفرقه اختياريًا) بسرعة.
وهذا يتيح إجراء التجارب اللازمة للبحث في رسومات الحاسوب و
التخصصات الأخرى.
التمايز : ميتسوبا 3 هو عارض قابل للتمييز، مما يعني أنه
يمكن حساب مشتقات المحاكاة بأكملها فيما يتعلق بالمدخلات
المعلمات مثل وضعية الكاميرا، والهندسة، وBSDF، والأنسجة، والأحجام. هو - هي
ينفذ خوارزميات العرض التفاضلية الحديثة التي تم تطويرها في EPFL.
الطيفي والاستقطاب : يمكن استخدام ميتسوبا 3 كجهاز أحادي اللون
العارض أو العارض المستند إلى RGB أو العارض الطيفي. يمكن لكل متغير
حساب اختياريا لآثار الاستقطاب إذا رغبت في ذلك.
أشرطة الفيديو التعليمية والوثائق
لقد سجلنا العديد من مقاطع الفيديو على YouTube التي تقدم مقدمة لطيفة
ميتسوبا 3 ودكتور جيت. علاوة على ذلك، يمكنك العثور على دفاتر ملاحظات Juypter كاملة
تغطي مجموعة متنوعة من التطبيقات والأدلة الإرشادية والوثائق المرجعية
على readthedocs.
تثبيت
نحن نقدم عجلات ثنائية مجمعة مسبقًا عبر PyPI. يعد تثبيت Mitsuba بهذه الطريقة أمرًا بسيطًا مثل التشغيل
نقطة تثبيت ميتسوبا
على سطر الأوامر. تتضمن حزمة Python ثلاثة عشر متغيرًا افتراضيًا:
scalar_rgb
scalar_spectral
scalarspectralpolarized
llvmadrgb
llvmadmono
llvmadmono_polarized
llvmadspectral
llvmadspectral_polarized
cudaadrgb
cudaadmono
cudaadmono_polarized
cudaadspectral
cudaadspectral_polarized
يقوم الأولان بإجراء محاكاة كلاسيكية لشعاع واحد في كل مرة باستخدام إما RGB
أو تمثيل الألوان الطيفية، بينما يمكن استخدام الأخيرين للعكس
العرض على وحدة المعالجة المركزية أو وحدة معالجة الرسومات. للوصول إلى متغيرات إضافية، سوف تحتاج إلى
تجميع نسخة مخصصة من Dr.Jit باستخدام CMake. يرجى الاطلاع على
الوثائق
للحصول على تفاصيل حول هذا.
متطلبات
Python >= 3.8
(اختياري) للحساب على وحدة معالجة الرسومات: Nvidia driver >= 495.89
(اختياري) للحسابات الموجهة/المتوازية على وحدة المعالجة المركزية: LLVM >= 11.1
الاستخدام
فيما يلي مثال بسيط لـ "Hello World" يوضح مدى سهولة تقديم ملف
المشهد باستخدام ميتسوبا 3 من بايثون:
# استيراد المكتبة باستخدام الاسم المستعار "mi"import mitsuba as mi# تعيين متغير renderermi.setvariant('scalarrgb')# تحميل مشهد = mi.loaddict(mi.cornellbox())# Render the sceneimg = mi. render(scene)# اكتب الصورة المقدمة إلى ملف EXRmi.Bitmap(img).write('cbox.exr')
يمكن العثور على البرامج التعليمية ودفاتر الملاحظات النموذجية التي تغطي مجموعة متنوعة من التطبيقات
في الوثائق.
عن
تم إنشاء هذا المشروع بواسطة وينزل جاكوب.
تمت المساهمة في ميزات و/أو تحسينات مهمة على الكود بواسطة
سيباستيان سبيرر,
نيكولا روسيل،
ميرلين نمير ديفيد,
ديليو فيتشيني،
تيزيان زيلتنر،
بابتيست نيكوليه،
ميغيل كريسبو,
فنسنت ليروي، و
زيي تشانغ.
عند استخدام ميتسوبا 3 في المشاريع الأكاديمية، يرجى ذكر ما يلي:
@software{Mitsuba3,title = {Mitsuba 3 renderer},author = {Wenzel Jakob وSébastien Speierer وNicola Roussel وMerlin Nimier-David وDelio Vicini وTizian Zeltner وBaptiste Nicolet وMiguel Crespo وVincent Leroy وZiyi Zhang}، ملاحظة = {https://mitsuba-renderer.org},الإصدار = {3.1.1}، السنة = 2022}