رسم الخرائط المكعبة

تُظهر الصورة السفلية اليسرى مشهدًا مع نقطة رؤية مُحددة بنقطة سوداء. تُظهر الصورة العلوية شبكة إسقاط المكعب كما تُرى من تلك النقطة، بينما تُظهر الصورة السفلية اليمنى المكعب مُركبًا على المشهد الأصلي.
+

درجة الميل : -10 درجة

الانحراف : -10 درجة

مجال الرؤية : 80 درجة

نفس عملية رسم الخرائط المكعبة المذكورة أعلاه تم عرضها كعرض ثلاثي الأبعاد.

في مجال رسومات الحاسوب ، تُعدّ تقنية رسم الخرائط المكعبة طريقةً لرسم خرائط البيئة ، حيث تستخدم أوجه المكعب الستة كشكل للخريطة. تُسقط البيئة على جوانب المكعب وتُخزّن على شكل ستة نسيجات مربعة، أو تُفرد إلى ست مناطق ضمن نسيج واحد.

يتم إنشاء خريطة المكعب عن طريق عرض المشهد ست مرات من وجهة نظر معينة، حيث تُحدد هذه الوجهات بمخروط رؤية بزاوية 90 درجة يمثل كل وجه من أوجه المكعب. [ 1 ] أو إذا اعتُبرت البيئة في البداية مُسقطة على كرة ، فإن كل وجه من أوجه المكعب هو إسقاطه الزنوموني .

في معظم الحالات، يُفضّل استخدام تقنية رسم الخرائط المكعبة على طريقة رسم الخرائط الكروية القديمة ، لأنها تُزيل العديد من المشاكل المتأصلة في الأخيرة، مثل تشوّه الصورة، والاعتماد على زاوية الرؤية، وعدم كفاءة الحساب. كما توفر تقنية رسم الخرائط المكعبة قدرة أكبر بكثير على دعم عرض الانعكاسات في الوقت الفعلي مقارنةً بتقنية رسم الخرائط الكروية ، لأن الجمع بين عدم الكفاءة والاعتماد على زاوية الرؤية يُقيّد بشدة إمكانية تطبيق الأخيرة عند وجود زاوية رؤية متغيرة باستمرار.

تُستخدم أنواع مختلفة من تقنية رسم الخرائط المكعبة بشكل شائع في عرض الفيديو بزاوية 360 درجة . [ 2 ]

تاريخ

طُرحت تقنية رسم الخرائط المكعبة لأول مرة عام 1986 من قِبل نيد غرين في بحثه "رسم خرائط البيئة وتطبيقات أخرى للإسقاطات العالمية"، [ 3 ] أي بعد عشر سنوات من طرح جيم بلين ومارتن نيويل لفكرة رسم خرائط البيئة . إلا أن القيود التقنية المتعلقة بالأجهزة، والتي تحدّ من قدرتها على الوصول إلى ست صور نسيجية في آنٍ واحد، جعلت تطبيق هذه التقنية غير عملي دون مزيد من التطورات التقنية. وقد تم تدارك هذه المشكلة عام 1999 مع إصدار بطاقة الرسومات Nvidia GeForce 256. روّجت Nvidia لتقنية رسم الخرائط المكعبة في الأجهزة باعتبارها "ميزة رائدة في جودة الصورة لبطاقة GeForce 256  ، والتي ستُمكّن المطورين من إنشاء انعكاسات دقيقة في الوقت الفعلي. وبفضل تسريعها في الأجهزة، ستُطلق تقنية رسم خرائط البيئة المكعبة العنان لإبداع المطورين لاستخدام الانعكاسات وتأثيرات الإضاءة اللامعة لإنشاء بيئات جذابة وغامرة." [ 4 ] واليوم، لا تزال تقنية رسم الخرائط المكعبة تُستخدم في العديد من التطبيقات الرسومية كطريقة مفضلة لرسم خرائط البيئة.

المزايا

يُفضّل استخدام تقنية رسم الخرائط المكعبة على غيرها من طرق رسم خرائط البيئة لبساطتها النسبية. كما تُنتج هذه التقنية نتائج مشابهة لتلك التي تُحققها تقنية تتبع الأشعة ، ولكنها أكثر كفاءة حسابية بكثير  ، حيث يُعوّض الانخفاض الطفيف في الجودة بمكاسب كبيرة في الكفاءة.

قبل ظهور تقنية رسم الخرائط المكعبة، عانت تقنية رسم الخرائط الكروية من العديد من العيوب المتأصلة التي جعلتها غير عملية في معظم التطبيقات. تعتمد هذه التقنية على زاوية الرؤية، ما يعني ضرورة استخدام نسيج مختلف لكل زاوية. لذا، في التطبيقات التي تكون فيها زاوية الرؤية متحركة، يصبح من الضروري إنشاء خريطة كروية جديدة ديناميكيًا لكل زاوية رؤية جديدة (أو إنشاء خريطة مسبقًا لكل زاوية رؤية). كما أن النسيج المرسوم على سطح الكرة يتطلب التمدد والضغط، وينتج عن ذلك تشوه وانحناء (خاصةً على طول حافة الكرة). ورغم إمكانية تقليل هذه العيوب في الصورة باستخدام بعض الحيل والتقنيات مثل "التمدد المسبق"، إلا أن ذلك يزيد من تعقيد عملية رسم الخرائط الكروية.

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

على النقيض، لا تتطلب عملية رسم الخرائط المكعبة سوى تمريرة عرض واحدة، وبفضل بساطتها، يسهل على المطورين فهمها وإنشاؤها. كما تستخدم هذه التقنية كامل دقة صورة النسيج، مقارنةً برسم الخرائط الكروية والقطع المكافئ، مما يسمح باستخدام صور ذات دقة أقل لتحقيق نفس الجودة. ورغم أن معالجة فواصل خريطة المكعب تُعدّ مشكلة، فقد طُوّرت خوارزميات لمعالجة سلوك هذه الفواصل، مما ينتج عنه انعكاس سلس.

العيوب

تشمل العيوب عدم الاستمرارية، وكثرة الفهرسة، والاستيفاء الخطي للمتجهات (عند حسابها في الأجهزة)، والتصفية عبر حدود خريطة النسيج، وربما الحاجة إلى نسيجات متعددة. [ 5 ]

التطبيقات

انعكاسات ضوئية ثابتة

تستخدم برامج التصميم بمساعدة الحاسوب (CAD) الانعكاسات اللامعة كإشارات بصرية لإضفاء إحساس بانحناء السطح عند عرض الأجسام ثلاثية الأبعاد. مع ذلك، تعاني العديد من برامج CAD من مشاكل في أخذ عينات من الانعكاسات اللامعة، لأن حسابات الإضاءة اللامعة تُجرى فقط عند رؤوس الشبكة المستخدمة لتمثيل الجسم، ويُستخدم الاستيفاء لتقدير الإضاءة عبر سطح الجسم. تظهر المشاكل عندما لا تكون رؤوس الشبكة كثيفة بما يكفي، مما يؤدي إلى عدم كفاية أخذ عينات الإضاءة اللامعة. وهذا بدوره ينتج عنه انعكاسات لامعة تتناسب سطوعها مع المسافة من رؤوس الشبكة، مما يُضعف في النهاية الإشارات البصرية التي تدل على الانحناء. مع ذلك، لا يمكن حل هذه المشكلة بمجرد إنشاء شبكة أكثر كثافة، لأن ذلك قد يُقلل بشكل كبير من كفاءة عرض الجسم.

توفر خرائط المكعبات حلاً بسيطاً وفعالاً لعرض انعكاسات لامعة ثابتة. يمكن ترميز عدة انعكاسات لامعة في نسيج خريطة المكعبات، والذي يمكن الوصول إليه لاحقاً عن طريق الاستيفاء عبر متجه انعكاس السطح لتوفير الإحداثيات. بالمقارنة مع حساب الإضاءة عند رؤوس فردية، توفر هذه الطريقة نتائج أنظف تمثل الانحناء بدقة أكبر. ميزة أخرى لهذه الطريقة هي قابليتها للتوسع، حيث يمكن ترميز انعكاسات لامعة إضافية في النسيج دون زيادة في تكلفة العرض. مع ذلك، يقتصر هذا النهج على أن تكون مصادر الضوء إما بعيدة أو لانهائية، على الرغم من أن هذا هو الحال عادةً في برامج التصميم بمساعدة الحاسوب (CAD).

سكاي بوكس

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

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

إضاءة السقف

تُعدّ خرائط المكعبات مفيدةً لنمذجة الإضاءة الخارجية بدقة. إنّ نمذجة ضوء الشمس كضوء واحد لا نهائي يُبسّط الإضاءة الخارجية تبسيطًا مُفرطًا، وينتج عنه إضاءة غير واقعية. مع أنّ الشمس تُصدر كمية وفيرة من الضوء، إلا أنّ تشتت الأشعة في الغلاف الجوي يجعل السماء بأكملها تعمل كمصدر ضوء (يُشار إليها غالبًا بإضاءة ضوء السماء). مع ذلك، يُمكن باستخدام خريطة المكعبات رصد المساهمة المُنتشرة من إضاءة ضوء السماء. على عكس خرائط البيئة التي تستخدم متجه الانعكاس، تعتمد هذه الطريقة على خريطة المكعبات بناءً على متجه السطح العمودي لتوفير تقريب سريع للإضاءة المُنتشرة من ضوء السماء. العيب الوحيد لهذه الطريقة هو أنّ حساب خرائط المكعبات لتمثيل ضوء السماء بشكل صحيح أمرٌ مُعقّد للغاية؛ إحدى العمليات الحديثة هي حساب الأساس التوافقي الكروي الذي يُمثّل على أفضل وجه الإضاءة المُنتشرة منخفضة التردد من خريطة المكعبات. مع ذلك، أُجريت أبحاثٌ كثيرة لنمذجة إضاءة ضوء السماء بفعالية.

انعكاس ديناميكي

انعكاسات مُرَسَّمة على شكل مكعب قيد التنفيذ

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

مع ذلك، لا تُجدي هذه التقنية نفعًا عند وجود عدة أجسام عاكسة. عادةً ما يتطلب الأمر خريطة بيئية ديناميكية فريدة لكل جسم عاكس. كما تزداد التعقيدات إذا كانت الأجسام العاكسة تعكس بعضها بعضًا  ، إذ يمكن توليد خرائط مكعبة ديناميكية بشكل متكرر، مما يُحاكي التأثيرات التي تُنتج عادةً باستخدام تتبع الأشعة.

الإضاءة العالمية

تم تقديم خوارزمية لحساب الإضاءة العالمية بمعدلات تفاعلية باستخدام بنية بيانات خريطة مكعبة في مؤتمر ICCVG 2002. [ 6 ]

نسيج الإسقاط

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

معالجة الذاكرة

رسم توضيحي يُبين كيفية فهرسة خريطة المكعب وعنونتها

يُفهرس نسيج المكعب ست خرائط نسيجية من 0 إلى 5 بالترتيب التالي: X الموجب، X السالب، Y الموجب، Y السالب، Z الموجب، Z السالب. [ 7 ] [ 8 ] تُخزن الصور بحيث يكون الأصل في أسفل يسار الصورة. يجب أن يعكس وجها X وY الموجبان إحداثي Z، ويجب أن ينفي وجه Z السالب إحداثي X. إذا تم إعطاء الوجه وإحداثيات النسيج(u،v){\displaystyle (u,v)}، المتجه غير المعياري(x،y،z){\displaystyle (x,y,z)}يمكن حسابها بواسطة الدالة التالية:

void convert_cube_uv_to_xyz ( int index , float u , float v , float * x , float * y , float * z ) { // تحويل النطاق من 0 إلى 1 إلى -1 إلى 1 float uc = 2.0f * u - 1.0f ; float vc = 2.0f * v - 1.0f ; switch ( index ) { case 0 : * x = 1.0f ; * y = vc ; * z = - uc ; break ; // X موجب case 1 : * x = -1.0f ; * y = vc ; * z = uc ; break ; // X سالب case 2 : * x = uc ; * y = 1.0f ; * z = - vc ; break ; // Y موجب case 3 : * x = uc ; * y = -1.0f ; * z = vc ; break ; // حالة Y سالبة 4 : * x = uc ; * y = vc ; * z = 1.0f ; break ; // حالة Z موجبة 5 : * x = - uc ; * y = vc ; * z = -1.0f ; break ; // قيمة Z سالبة } }

وبالمثل، متجه(x،y،z){\displaystyle (x,y,z)}يمكن تحويلها إلى مؤشر الوجه وإحداثيات النسيج(u،v){\displaystyle (u,v)}باستخدام الوظيفة:

دالة تحويل_xyz_to_cube_uv ( float x , float y , float z , int * index , float * u , float * v ) { float absX = fabs ( x ); float absY = fabs ( y ); float absZ = fabs ( z );int isXPositive = x > 0 ? 1 : 0 ; int isYPositive = y > 0 ? 1 : 0 ; int isZPositive = z > 0 ? 1 : 0 ;float maxAxis , uc , vc ;// المحور السيني الموجب إذا ( كان المحور السيني موجبًا وقيمته المطلقة أكبر من أو تساوي قيمتي المحور الصادي والمحور السيني المطلقتين أكبر من أو تساوي قيمتي المحور العيني المطلقتين ) { // u (من 0 إلى 1) ينتقل من +z إلى -z // v (من 0 إلى 1) ينتقل من -y إلى +y maxAxis = absX ; uc = - z ; vc = y ; * index = 0 ; } // المحور السيني السالب إذا ( لم يكن المحور السيني موجبًا وقيمته المطلقة أكبر من أو تساوي قيمتي المحور الصادي والمحور السيني المطلقتين أكبر من أو تساوي قيمتي المحور العيني المطلقتين ) { // u (من 0 إلى 1) ينتقل من -z إلى +z // v (من 0 إلى 1) ينتقل من -y إلى +y maxAxis = absX ; uc = z ; vc = y ; * index = 1 ; } // المحور Y الموجب إذا ( كان المحور Y موجبًا وقيمته المطلقة أكبر من أو تساوي قيمتي X و Z ) { // u (من 0 إلى 1) ينتقل من -x إلى +x // v (من 0 إلى 1) ينتقل من +z إلى -z maxAxis = absY ; uc = x ; vc = - z ; * index = 2 ; } // المحور Y السالب إذا ( لم يكن المحور Y موجبًا وقيمته المطلقة أكبر من أو تساوي قيمتي X و Z ) { // u (من 0 إلى 1) ينتقل من -x إلى +x // v (من 0 إلى 1) ينتقل من -z إلى +z maxAxis = absY ; uc = x ; vc = z ; * index = 3 ; } // Z موجب إذا ( كان Z موجبًا && القيمة المطلقة لـ Z أكبر من أو تساوي القيمة المطلقة لـ X && القيمة المطلقة لـ Z أكبر من أو تساوي القيمة المطلقة لـ Y ) { // u (من 0 إلى 1) ينتقل من -x إلى +x // v (من 0 إلى 1) ينتقل من -y إلى +y maxAxis = القيمة المطلقة لـ Z ; uc = x ; vc = y ; * index = 4} ; // قيمة Z سالبة إذا ( ! isZPositive && absZ >= absX && absZ >= absY ) { // u (من 0 إلى 1) تتراوح من +x إلى −x // v (من 0 إلى 1) تتراوح من −y إلى +y maxAxis = absZ ; uc = - x ; vc = y ; * index = 5 ; }// تحويل النطاق من -1 إلى 1 إلى 0 إلى 1 * u = 0.5f * ( uc / maxAxis + 1.0f ); * v = 0.5f * ( vc / maxAxis + 1.0f ); }

انظر أيضاً

مراجع

  1. فرناندو، ر. وكيلغارد، م. ج. (2003). دليل الرسوميات الحاسوبية: الدليل الشامل للرسومات القابلة للبرمجة في الوقت الحقيقي. (الطبعة الأولى). شركة أديسون-ويسلي لونغمان للنشر، بوسطن، ماساتشوستس، الولايات المتحدة الأمريكية. الفصل 7: تقنيات رسم خرائط البيئة
  2. stevewhims (2021-01-06). "رسم خرائط البيئة المكعبة (Direct3D 9) - تطبيقات Win32" . learn.microsoft.com . تم الاطلاع عليه بتاريخ 21-08-2024 .
  3. غرين، ن. (1986). "رسم خرائط البيئة وتطبيقات أخرى للإسقاطات العالمية". مجلة IEEE لتطبيقات رسومات الحاسوب ، 6 (11): 21-29 . doi : 10.1109/MCG.1986.276658 . S2CID 11301955 . 
  4. إنفيديا، يناير 2000. موجز تقني: انعكاسات مثالية وتأثيرات إضاءة لامعة مع رسم خرائط بيئة مكعبة. مؤرشف في 4 أكتوبر 2008 على موقع Wayback Machine.
  5. زيمونز، بول (10 ديسمبر 1999). COMP238: رسومات نقطية (خرائط بيئية كروية، مكعبة، وقطع مكافئ) (ملف PDF) . جامعة نورث كارولينا في تشابل هيل .
  6. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.95.946
  7. "مقدمة عن الخامات في Direct3D 11 - تطبيقات Win32 | مستندات مايكروسوفت" . 23 أغسطس 2019.
  8. "الفصل 19. الإضاءة القائمة على الصور" .