POV-Ray

برنامج تتبع الأشعة "Persistence of Vision Ray Tracer "، المعروف اختصارًا باسم POV-Ray ، هو برنامج متعدد المنصات لتتبع الأشعة ، يُنشئ صورًا من وصف نصي للمشهد. وقد بُني في الأصل على برنامج DKBTrace، الذي كتبه ديفيد كيرك باك وآرون أ. كولينز لأجهزة أميغا . برنامج POV-Ray مجاني ومفتوح المصدر ، وشفرته المصدرية متاحة بموجب ترخيص AGPL-3.0 أو أحدث .

تاريخ

مزهرية على قاعدة تم تصميمها باستخدام برنامج DKBTrace 2.12

في ثمانينيات القرن الماضي، قام ديفيد كيرك باك بتحميل الشفرة المصدرية لبرنامج تتبع الأشعة لنظام يونكس على جهاز أميغا الخاص به . جرّب البرنامج لفترة، ثم قرر كتابة برنامجه الخاص لتتبع الأشعة، وأطلق عليه اسم DKBTrace نسبةً إلى الأحرف الأولى من اسمه. نشره على نظام لوحة الإعلانات الإلكترونية (BBS) "You Can Call Me Ray" في شيكاغو، ظنًا منه أن آخرين قد يهتمون به. في عام ١٩٨٧، قام آرون أ. كولينز بتحميل DKBTrace وبدأ العمل على نسخة منه متوافقة مع معالجات x86 . تعاون هو وديفيد باك لإضافة العديد من الميزات. يُذكر أن برنامج POV كان له أوجه تشابه مع برنامج Rayshade (ويستوحي منه)، وهو برنامج آخر لتتبع الأشعة من حقبة لوحات الإعلانات الإلكترونية، بما في ذلك كتاب Rayshade .

عندما حقق البرنامج شعبية فاقت التوقعات، لم يتمكنوا من تلبية الطلب المتزايد على المزيد من الميزات. لذا، في يوليو 1991، سلّم ديفيد المشروع إلى فريق من المبرمجين العاملين في منتدى "GraphDev" على منصة CompuServe . في الوقت نفسه، رأى ديفيد أنه من غير المناسب استخدام الأحرف الأولى من اسمه على برنامج لم يعد يُشرف عليه. استُخدم اسم "STAR-Light" (فريق عمل البرمجيات المعني بالرسوم المتحركة والعرض) في البداية، ثم أصبح "PV-Ray"، ثم في النهاية "POV-Ray" (متتبع أشعة استمرار الرؤية)، [ 2 ] وهو اسم مستوحى من لوحة دالي " استمرار الذاكرة ". [ 6 ] [ 7 ]

تمت مناقشة ميزات التطبيق وملخص لتاريخه في مقابلة أجريت في فبراير 2008 مع ديفيد كيرك باك وكريس كاسون في الحلقة 24 من برنامج FLOSS Weekly . [ 7 ]

سمات

مشهد زجاجي تم عرضه بواسطة برنامج POV-Ray في عام 2006 يوضح الإشعاعية ، ورسم خرائط الفوتون ، والضبابية البؤرية ، وغيرها من القدرات الواقعية (الصورة من تصميم جيل تران ).

لقد تطور برنامج POV-Ray بشكل ملحوظ منذ إنشائه. تتضمن الإصدارات الحديثة من البرنامج الميزات التالية:

الإصدار الحالي

الإصدار الرسمي الحالي من برنامج POV-Ray هو 3.7. يقدم هذا الإصدار الميزات التالية:

من أبرز الميزات التي تم تقديمها في الإصدار السابق (3.6):

في يوليو 2006، بدأت شركة إنتل باستخدام الإصدار التجريبي 3.7 لعرض معالج كونرو ثنائي النواة الجديد الخاص بها نظرًا لكفاءة تطبيق SMP (المعالجة المتعددة المتناظرة).

البدائيون

رسم توضيحي لمخطط فين لأربع كرات تم إنشاؤها باستخدام الهندسة الصلبة البنائية (CSG). المصدر موجود في صفحة وصف الصورة.
بعض النرد الملون تم عرضه باستخدام برنامج POV-Ray. تم توضيح تأثيرات CSG والانكسار والضبابية البؤرية .

بالإضافة إلى الأشكال الهندسية ثلاثية الأبعاد القياسية مثل الحلقات والكرات وحقول الارتفاع ، يدعم برنامج POV-Ray العناصر الأولية المعرفة رياضيًا مثل السطح المتساوي (تقريب محدود لدالة عشوائية)، والعنصر الأولي متعدد الحدود ( كائن لانهائي معرف بواسطة متعدد حدود من الدرجة 15 أو أقلوالكسورية جوليا (شريحة ثلاثية الأبعاد من كسرية رباعية الأبعادوالقطع الناقص فوق التربيعي (وسيط بين الكرة والمكعب)، والعنصر الأولي البارامتري (باستخدام معادلات تمثل سطحه، بدلاً من داخله).

يُمثّل برنامج POV-Ray الكائنات داخليًا باستخدام تعريفاتها الرياضية؛ إذ يمكن وصف جميع الكائنات الأولية في POV-Ray بواسطة دوال رياضية . وهذا يختلف عن العديد من برامج الحاسوب التي تتضمن نماذج ثلاثية الأبعاد، والتي تستخدم عادةً شبكات مثلثية لتكوين جميع الكائنات في المشهد.

تُتيح هذه الحقيقة لبرنامج POV-Ray العديد من المزايا والعيوب مقارنةً بأنظمة العرض والنمذجة الأخرى؛ فالأشكال الأولية في POV-Ray أكثر دقة من نظيراتها المضلعة: فالأجسام التي يمكن وصفها باستخدام الكرات والأسطح المستوية والأسطوانات والحلقات وغيرها، تظهر بسلاسة تامة ودقة رياضية عالية في عروض POV-Ray، بينما قد تظهر تشوهات مضلعة في برامج النمذجة القائمة على الشبكات. كما أن تعريف الأشكال الأولية في POV-Ray أبسط من معظم نظيراتها المضلعة، فعلى سبيل المثال، في POV-Ray، تُوصف الكرة ببساطة من خلال مركزها ونصف قطرها؛ بينما في بيئة قائمة على الشبكات، يجب وصف الكرة بواسطة عدد كبير من المضلعات الصغيرة المتصلة (عادةً ما تكون رباعيات أو مثلثات ).

من ناحية أخرى، لا يُعدّ النمذجة الأولية القائمة على البرمجة النصية طريقة عملية دائمًا لإنشاء بعض الكائنات، مثل الشخصيات الواقعية أو القطع الأثرية المعقدة التي يصنعها الإنسان كالسيارات. يمكن إنشاء هذه الكائنات أولًا في تطبيقات النمذجة القائمة على الشبكات مثل Wings 3D و Blender ، ثم تحويلها إلى تنسيق الشبكة الخاص بـ POV-Ray.

أمثلة على لغة وصف المشهد

فيما يلي مثال على لغة وصف المشهد التي يستخدمها برنامج POV-Ray لوصف مشهدٍ لعرضه. يوضح هذا المثال استخدام لون الخلفية، والكاميرا، والإضاءة، وشكل صندوق بسيط ذي سطح عادي وتشطيب، بالإضافة إلى تأثيرات الدوران التحويلية.

إخراج صورة POV-Ray بناءً على البرنامج النصي
#version 3.6 ; // يتضمن ملفًا منفصلاً يُعرّف عددًا من الألوان الشائعة #include "colors.inc" global_settings { assumes_gamma 1.0 }// يحدد لون خلفية الصورة (رمادي داكن) background { color rgb < 0.25 , 0.25 , 0.25 > }// يضع الكاميرا // الاتجاه: يحدد، من بين أمور أخرى، مجال رؤية الكاميرا // اليمين: يحدد نسبة العرض إلى الارتفاع للصورة // انظر إلى: يخبر الكاميرا إلى أين تنظر camera { location < 0.0 , 0.5 , - 4.0 > direction 1.5 * z right x * image_width / image_height look_at < 0.0 , 0.0 , 0.0 > }// يضع مصدر ضوء // اللون: يحدد لون مصدر الضوء (أبيض) // الإزاحة: ينقل مصدر الضوء إلى الموقع المطلوب light_source { < 0 , 0 , 0 > color rgb < 1 , 1 , 1 > translate < - 5 , 5 , - 5 > } // يضع مصدر ضوء آخر // اللون: يحدد لون مصدر الضوء (رمادي داكن) // الإزاحة: ينقل مصدر الضوء إلى الموقع المطلوب light_source { < 0 , 0 , 0 > color rgb < 0.25 , 0.25 , 0.25 > translate < 6 , - 6 , - 6 > }// يُحدد شكل الصندوق // الصبغة: تُحدد لون الصندوق ("أحمر" كما هو مُعرّف في "colors.inc") // التشطيب: يُحدد كيفية انعكاس الضوء على سطح الصندوق // العمودي: يُحدد خشونة سطح الصندوق باستخدام نموذج "العقيق" المُدمج // التدوير: يُدوّر الصندوق box { < - 0.5 , - 0.5 , - 0.5 > , < 0.5 , 0.5 , 0.5 > texture { pigment { color Red } finish { specular 0.6 } normal { agate 0.25 scale 1 / 2 } } rotate < 45 , 46 , 47 > }

يوضح جزء النص البرمجي التالي استخدام تعريف المتغيرات، وتعيينها، ومقارنتها، وبنية حلقة while:

إخراج صورة POV-Ray بناءً على البرنامج النصي
#declare the_angle = 0 ;#while ( the_angle < 360 ) box { < - 0.5 , - 0.5 , - 0.5 > < 0.5 , 0.5 , 0.5 > texture { pigment { color Red } finish { specular 0.6 } normal { agate 0.25 scale 1 / 2 } } rotate the_angle } #declare the_angle = the_angle + 45 ; #end

النمذجة

لا يتضمن برنامج POV-Ray نفسه ميزة النمذجة ؛ فهو في الأساس برنامج عرض ثلاثي الأبعاد مزود بلغة وصف نماذج متطورة. ولتوفير هذه الميزات، طورت جهات خارجية مجموعة واسعة من برامج النمذجة، بعضها متخصص في POV-Ray، والبعض الآخر يدعم استيراد وتصدير هياكل بياناته، بما في ذلك برنامج Blender المجاني والمفتوح المصدر لإنشاء الرسومات ثلاثية الأبعاد . [ 11 ]

يتم ربط عدد من برامج النمذجة الإضافية المتوافقة مع POV-Ray من موقع Povray.org: برامج النمذجة .

في عام 2007، استحوذت شركة POV-Ray على حقوق برنامج Moray، [ 12 ] وهو برنامج نمذجة ثلاثية الأبعاد تفاعلي يُستخدم منذ فترة طويلة مع POV-Ray. ومع ذلك، اعتبارًا من ديسمبر 2016، توقف تطوير برنامج Moray. [ 13 ]

برمجة

التطوير والصيانة

تُجرى التعديلات الرسمية على شجرة مصدر POV-Ray أو تُعتمد من قِبل فريق POV. ويتم تقديم معظم التصحيحات والإبلاغ عن الأخطاء في مجموعات أخبار POV-Ray على خادم الأخبار news.povray.org (مع توفر واجهة ويب أيضًا ). ونظرًا لتوافر مصدر POV-Ray، توجد نسخ غير رسمية وإصدارات مُعدّلة منه من جهات خارجية؛ إلا أنها غير مدعومة رسميًا من قِبل فريق POV.

لا تدعم الإصدارات الرسمية من POV-Ray حاليًا إضافات التظليل. [ 14 ] بعض الميزات، مثل الإشعاعية والخطوط المنحنية، لا تزال قيد التطوير وقد تخضع لتغييرات في التركيب.

دعم المنصة

يُوزّع برنامج POV-Ray 3.6 بصيغة مُجمّعة لأنظمة Mac و Windows و Linux . لا يدعم إصدار Mac أجهزة Mac المزودة بمعالجات Intel ، ولكن بما أن نظام Mac OS X هو إصدار من نظام Unix، فيمكن تجميع إصدار Linux عليه.

تدعم الإصدارات 3.7 التي تدعم المعالجة المتعددة المتناظرة (SMP) رسميًا أنظمة التشغيل ويندوز ولينكس. ويمكن العثور على إصدارات غير رسمية لنظام ماك من الإصدار 3.7. [ 15 ]

يمكن نقل برنامج POV-Ray إلى أي منصة تحتوي على مترجم C++ متوافق .

الترخيص

في الأصل، تم توزيع POV-Ray بموجب ترخيص POV-Ray الخاص به ؛ وهو ترخيص توزيع POV-Ray 3.6 [ 16 ] وترخيص مصدر POV-Ray 3.6 [ 17 ] الذي سمح بالتوزيع المجاني لرمز مصدر البرنامج والملفات الثنائية، مع تقييد التوزيع التجاري وإنشاء أعمال مشتقة بخلاف الإصدارات كاملة الوظائف من POV-Ray.

على الرغم من إمكانية تعديل الشفرة المصدرية للإصدارات القديمة، إلا أنها لم تكن مفتوحة المصدر أو برمجيات حرة وفقًا لتعريف مبادرة المصادر المفتوحة (OSI) أو مؤسسة البرمجيات الحرة (FSF) ، وذلك بسبب قيود الترخيص المذكورة في البند 3.6 وما قبله. وقد شكل هذا مشكلةً، إذ استحال تبادل الشفرة المصدرية مع منظومة البرمجيات الحرة والمفتوحة المصدر الأوسع نطاقًا، نظرًا لعدم توافق الترخيص مع تراخيص حقوق النسخ .

أحد أسباب عدم ترخيص برنامج POV-Ray في الأصل بموجب رخصة جنو العمومية العامة (GPL) للبرمجيات الحرة، أو غيرها من رخص المصادر المفتوحة، هو أن برنامج POV-Ray تم تطويره قبل أن تصبح رخص GPL شائعة الاستخدام؛ فقد كتب المطورون رخصتهم الخاصة لإصدار برنامج POV-Ray، وعمل المساهمون في البرنامج على افتراض أن مساهماتهم ستكون مرخصة بموجب رخص POV-Ray 3.6.

في عام 2013، مع الإصدار 3.7، أُعيد ترخيص برنامج POV-Ray بموجب رخصة جنو أفيرو العامة الإصدار 3 (أو أحدث). [ 18 ] وبذلك، أصبح برنامج POV-Ray منذ ذلك الحين برنامجًا حرًا وفقًا لتعريف مؤسسة البرمجيات الحرة ، وبرنامجًا مفتوح المصدر وفقًا لتعريف المصادر المفتوحة .

انظر أيضاً

  • بلندر – برنامج مجاني ومفتوح المصدر للنمذجة ثلاثية الأبعاد والرسوم المتحركة والعرض ثلاثي الأبعاد
  • كيركيثيا – برنامج مجاني لتتبع الأشعة مع توافق محسّن مع برنامج سكتش أب
  • Sunflow – نظام عرض مفتوح المصدر لتوليف الصور الواقعية، مكتوب بلغة جافا

مراجع

  1. "POV-Ray: التوثيق: 1.1.5.3 سجل تاريخي للإصدارات"" . povray.org . مؤرشف من الأصل بتاريخ 20-12-2018 . تم الاطلاع عليه بتاريخ 19-12-2018 .
  2. 1 2 "POV-Ray: News" . povray.org . تم الاطلاع عليه بتاريخ 19-12-2018 .
  3. "الإصدار 3.7.0.0" . 7 نوفمبر 2013. تم الاطلاع عليه بتاريخ 15 مارس 2018 .
  4. "إصدار تجريبي من POV-Ray v3.8.0-beta.2" . POV-Ray. 9 أغسطس 2021. تاريخ الاسترجاع: 29 أغسطس 2021 .
  5. "رخصة POV-Ray" . povray.org. مؤرشف من الأصل بتاريخ 15-03-2016 . تم الاطلاع عليه بتاريخ 05-05-2014 .
  6. "الوثائق: 1.1.5 التاريخ المبكر لـ" . POV-Ray. مؤرشف من الأصل بتاريخ 2014-12-04 . تم الاطلاع عليه بتاريخ 2014-05-05 .
  7. 1 2 "شبكة TWiT للبث مع ليو لابورت" . Twit.tv. 2008-02-07 . تم الاطلاع عليه بتاريخ 2014-05-05 .
  8. بول بورك: Supershape في ثلاثي الأبعاد، مؤرشف بتاريخ 4 يونيو 2014 في Wayback Machine، هي أمثلة على صور POV-Ray تم إنشاؤها باستخدام كود برمجي قصير جدًا.
  9. "POV-Ray: الوثائق: 2.1.2.2 خيارات الإخراج العامة" . www.povray.org . تم الاطلاع عليه بتاريخ 2023-09-08 .
  10. 1 2 "POV-Ray: الوثائق: 2.1.2.8 خيارات التتبع" . www.povray.org . مؤرشف من الأصل بتاريخ 2023-09-08 . تم الاطلاع عليه بتاريخ 2023-09-08 .
  11. "خلاط" . مؤرشف من الأصل بتاريخ 2018-07-09 . تم الاسترجاع بتاريخ 2018-07-09 .
  12. "أخبار: إعلان موراي" . POV-Ray. 2007-02-01. مؤرشف من الأصل في 2014-03-27 . تم الاسترجاع في 2014-05-05 .
  13. "POV-Ray/povray: برنامج تتبع الأشعة بتقنية استمرارية الرؤية" . POV-Ray. 2013-09-06. مؤرشف من الأصل في 2022-08-05 . تم الاطلاع عليه في 2022-08-05 .
  14. للاطلاع على مثال لهذا التطبيق، انظر على سبيل المثال: http://www.aetec.ee/fv/vkhomep.nsf/pages/povman2 (مؤرشف بتاريخ 7 فبراير 2007 في أرشيف الإنترنت) .
  15. povrayunofficial_mac على megapov.inetart.net
  16. "رخصة توزيع برنامج POV-Ray 3.6" . povray.org. مؤرشف من الأصل بتاريخ 13 أغسطس 2021. تم الاطلاع عليه بتاريخ 12 ديسمبر 2016 .
  17. "رخصة مصدر POV-Ray 3.6" . povray.org. مؤرشف من الأصل بتاريخ 23-03-2022 . تم الاطلاع عليه بتاريخ 12-12-2016 .
  18. كاسون، كريس (8 نوفمبر 2013). "تنزيل POV-Ray 3.7.0" . مؤرشف من الأصل في 25 مارس 2022. تم الاطلاع عليه في 11 نوفمبر 2013. بدءًا من الإصدار 3.7، يُصدر برنامج POV-Ray بموجب ترخيص AGPL3 (أو أحدث)، وبالتالي فهو برنامج حر وفقًا لتعريف مؤسسة البرمجيات الحرة (FSF). [...] يتوفر كود المصدر الكامل، مما يسمح للمستخدمين بإنشاء إصداراتهم الخاصة، وللمطورين بدمج أجزاء من كود مصدر POV-Ray أو كله في برامجهم الخاصة شريطة توزيعه بموجب ترخيص متوافق (على سبيل المثال، AGPL3 أو - حسب اختيارهم - أي إصدار أحدث).