7.2. عرض الخريطة ثلاثي الأبعاد

يُوفَّر دعم التصور ثلاثي الأبعاد من خلال عرض الخريطة ثلاثي الأبعاد. يمكنك إنشاء عروض الخريطة ثلاثية الأبعاد وإدارتها وفتحها عبر القائمة View ► 3D Map Views ►:

  1. بالنقر على new3DMap New 3D Map View يمكنك إنشاء عرض خريطة ثلاثي الأبعاد جديد. ستظهر لوحة QGIS عائمة وقابلة للإرساء (انظر نافذة حوار عرض الخريطة ثلاثي الأبعاد). لها الامتداد والعرض نفسيهما للوحة الخريطة الرئيسية ثنائية الأبعاد، وتوفر مجموعة من أدوات التنقل لتحويل العرض إلى ثلاثي الأبعاد.

  2. بالنقر على Manage 3D Map Views تنتقل إلى مدير عروض الخريطة ثلاثية الأبعاد. هنا يمكنك فتح عروض الخريطة ثلاثية الأبعاد ونسخها وحذفها وإعادة تسميتها.

  3. إذا أنشأت عرضًا أو أكثر من عروض الخريطة ثلاثية الأبعاد، فستراها مدرجة في 3D Map Views. يمكنك تشغيلها وإيقافها بالنقر عليها. وستُحفظ عند حفظ المشروع، حتى لو كانت متوقفة.

../../../_images/3dmapview.png

شكل 7.22 نافذة حوار عرض الخريطة ثلاثي الأبعاد

تتوفر الأدوات التالية أعلى لوحة عرض الخريطة ثلاثي الأبعاد:

  • pan Camera Control: يحرّك العرض مع الإبقاء على زاوية الكاميرا واتجاهها

  • zoomFullExtent Zoom Full: يغيّر حجم العرض ليشمل امتداد جميع الطبقات، أو الامتداد المرجعي إن كان مضبوطًا

  • 3dNavigation Toggle On-Screen Notification: يُظهر/يُخفي عنصر واجهة التنقل (الذي يهدف إلى تسهيل التحكم في عرض الخريطة)

  • identify Identify: يعيد معلومات عن النقطة المنقورة من التضاريس أو المعلم (أو المعالم) ثلاثي الأبعاد المنقور -- مزيد من التفاصيل في تعريف المعالم

  • measure Measurement Line: يقيس المسافة الأفقية والرأسية والكلية ثلاثية الأبعاد بين النقاط

    • انقر لإضافة نقاط

    • انقر بزر الفأرة الأيمن لإنهاء القياس

    • يؤدي النقر بزر الفأرة الأيمن مرتين أو الضغط على New إلى إعادة تعيين الجدول

  • play Animations: يُظهر/يُخفي عنصر واجهة مشغّل الحركة

  • تتيح القائمة sharingExport Export تصدير المشهد إلى صيغ مختلفة:

    • saveMapAsImage Save as Image...: يصدّر العرض الحالي إلى ملف بصيغة صورة

    • 3d Export 3D Scene: يصدّر العرض الحالي كمشهد ثلاثي الأبعاد (ملف .obj)، مما يتيح المعالجة اللاحقة في تطبيقات مثل Blender... تُصدَّر التضاريس والمعالم المتجهية ككائنات ثلاثية الأبعاد. تشمل إعدادات التصدير، التي تتجاوز خصائص الطبقات أو إعدادات عرض الخريطة، ما يلي:

      • Scene name و Folder الوجهة

      • Terrain resolution

      • Terrain texture resolution

      • Model scale

      • checkbox Smooth edges

      • checkbox Export normals

      • checkbox Export textures

  • showPresets Set View Theme: يتيح لك اختيار مجموعة الطبقات التي تُعرض في عرض الخريطة من سمات الخريطة المعرّفة مسبقًا.

  • تساعدك القائمة camera Camera على التحكم في العلاقة بين العرضين ثنائي الأبعاد وثلاثي الأبعاد:

    • مزامنة العرضين (2D map view follows 3D camera و/أو 3D camera follows 2D Map view)

    • Show visible camera area in 2D map view

    • Set 3D scene on 2D map view: يتيح قص المشهد ثلاثي الأبعاد وعرض التضاريس والمعالم المتقاطعة مع امتداد مرسوم على لوحة الخريطة ثنائية الأبعاد فقط. تتوفر خيارات أخرى في تبويب الإعدادات العامة.

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

    • استخدم editCutDisabled Disable Cross Section لإزالة المقطع العرضي.

  • تضيف shadow Effects مؤثرات بصرية إلى الرسم ثلاثي الأبعاد، مثل إظهار الظلال أو إضاءة القبة البصرية أو الانسداد المحيطي.

  • يفتح الزر options Configure... نافذة الحوار لضبط إعدادات عرض الخريطة ثلاثي الأبعاد.

  • dock Dock 3D Map View: التبديل من عنصر واجهة مُرسى إلى نافذة مستقلة

7.2.1. إعداد المشهد

يُفتح عرض الخريطة ثلاثي الأبعاد ببعض الإعدادات الافتراضية التي يمكنك تخصيصها. لذلك اضغط زر options Configure... أعلى لوحة العرض ثلاثي الأبعاد لفتح نافذة 3D configuration.

في نافذة الإعداد ثلاثي الأبعاد توجد خيارات متنوعة لضبط المشهد ثلاثي الأبعاد بدقة:

7.2.1.1. عام

../../../_images/3dmapconfiguration_general.png

شكل 7.23 نافذة الحوار للإعدادات العامة للخريطة ثلاثية الأبعاد

ضمن تبويب general General، يمكنك:

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

    يُستخدم الامتداد المضبوط أيضًا امتدادًا مرجعيًا عند الضغط على زر zoomFullExtent Zoom full في عرض الخريطة ثلاثي الأبعاد.

  • فعّل checkbox Show in 2D map view لعرض إطار مطاطي (rubberband) في لوحة الخريطة الرئيسية يطابق الامتداد الحالي للمشهد ثلاثي الأبعاد.

7.2.1.2. التضاريس

../../../_images/3dmapconfiguration_terrain.png

شكل 7.24 نافذة الحوار لإعدادات تضاريس الخريطة ثلاثية الأبعاد

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

    • يمكن أن يكون Type تضاريس الارتفاع:

      • تضاريس مسطحة Flat terrain

      • نموذج ارتفاع رقمي محمّل DEM (Raster Layer)

      • خدمة Online تحمّل بلاطات الارتفاع المنتَجة بأدوات Mapzen -- مزيد من التفاصيل على https://registry.opendata.aws/terrain-tiles/

      • مجموعة بيانات Mesh محمّلة

      • طبقة Quantized Mesh من المشروع

    • Elevation: الطبقة الشبكية (رستر) أو طبقة الشبكة المثلثية (mesh) المراد استخدامها لتوليد التضاريس. يجب أن تحتوي الطبقة الشبكية على نطاق يمثل الارتفاع. أما في طبقة الشبكة المثلثية، فتُستخدم قيم Z للرؤوس.

    • Vertical scale: معامل المقياس للمحور الرأسي. تؤدي زيادة المقياس إلى تضخيم ارتفاع التضاريس.

    • Tile resolution: عدد العينات المأخوذة من الطبقة الشبكية للتضاريس لكل بلاطة. تعني القيمة 16px أن الشكل الهندسي لكل بلاطة سيتكون من 16x16 عينة ارتفاع. تُنشئ القيم الأعلى بلاطات تضاريس أكثر تفصيلًا على حساب زيادة تعقيد الرسم.

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

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

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

  • عند استخدام طبقة الشبكة المثلثية (mesh) تضاريسَ، يمكنك تهيئة Triangles settings (العرض السلكي، والمثلثات الناعمة، ومستوى التفاصيل) و Rendering colors settings (بلون موحد أو استنادًا إلى تدرج لوني). مزيد من التفاصيل في قسم الخصائص ثلاثية الأبعاد لطبقة الشبكة المثلثية.

  • unchecked Terrain shading: يتيح لك اختيار طريقة رسم التضاريس:

    • التظليل معطّل - يُحدَّد لون التضاريس من نسيج الخريطة فقط

    • التظليل مفعّل - يُحدَّد لون التضاريس باستخدام نموذج تظليل Phong، مع مراعاة نسيج الخريطة، ومتجه العمودي على التضاريس، والإضاءة (أو الإضاءات) في المشهد، وألوان Ambient و Specular و Shininess لمادة التضاريس

7.2.1.3. الإضاءة

من تبويب Lights، اضغط القائمة symbologyAdd لإضافة

  • حتى ثمانية Point lights: تبعث الضوء في جميع الاتجاهات، ككرة من الضوء تملأ منطقة ما. تكون الكائنات الأقرب إلى الضوء أكثر سطوعًا، والكائنات الأبعد أكثر عتمة. للضوء النقطي موضع محدد (X و Y و Z)، و Color، و Intensity، و Attenuation

  • حتى أربعة Directional lights: تحاكي الإضاءة التي تحصل عليها من مصباح عملاق بعيد جدًا عن كائناتك، متمركز دائمًا ولا يخفت أبدًا (مثل الشمس). يبعث أشعة ضوء متوازية في اتجاه واحد لكن الضوء يمتد إلى ما لا نهاية. يمكن تدوير الضوء الاتجاهي بتحديد Azimuth، وله Altitude و Color و Intensity.

../../../_images/3dmapconfiguration_lights.png

شكل 7.25 نافذة الحوار لإعدادات إضاءة الخريطة ثلاثية الأبعاد

7.2.1.4. المؤثرات

../../../_images/3dmapconfiguration_effects.png

شكل 7.26 نافذة الحوار لإعدادات مؤثرات الخريطة ثلاثية الأبعاد

  • فعّل unchecked Show shadows لعرض الظلال في مشهدك، بتحديد:

    • ضوء اتجاهي Directional light

    • Shadow rendering maximum distance: لتجنب رسم ظلال الكائنات البعيدة جدًا، خاصةً عندما تنظر الكاميرا إلى الأعلى على امتداد الأفق

    • Shadow bias: لتجنب تأثيرات التظليل الذاتي التي قد تجعل بعض المناطق أكثر عتمة من غيرها، بسبب الفروق بين أحجام الخرائط. كلما كانت القيمة أقل كان أفضل

    • Shadow map resolution: لجعل الظلال تبدو أكثر حدة. قد يؤدي ذلك إلى انخفاض الأداء إذا كانت قيمة الدقة مرتفعة جدًا.

  • unchecked Show Eye Dome Lighting (EDL): مؤثر معالجة لاحقة يعزز إدراك العمق. يُقارن عمق كل بكسل (بُعده عن الكاميرا) بعمق البكسلات المجاورة ويُبرز وفقًا لفرق العمق ذلك، مما يجعل الحواف بارزة. يؤثر في المشهد كله ويمكن دمجه مع Screen Space Ambient Occlusion. يمكن التحكم في المعاملات التالية:

    • Lighting strength: يزيد التباين، مما يتيح إدراكًا أفضل للعمق

    • Lighting distance: يمثل بُعد البكسلات المستخدمة عن البكسل المركزي، ويؤدي إلى جعل الحواف أكثر سماكة.

  • أضف unchecked Ambient Occlusion في فضاء الشاشة (SSAO): مؤثر معالجة لاحقة يعزز أيضًا إدراك العمق بتطبيق تظليل أغمق على المناطق الأقل تعرضًا للإضاءة المحيطة. يؤثر في المشهد كله ويمكن دمجه مع Eye dome Lighting. يمكن التحكم في المعاملات التالية:

    • Radius: المدى الذي نصل إليه لحساب الانسداد المحيطي

    • Intensity: مدى قوة المؤثر (القيم الأعلى تجعل الأشياء أغمق)

    • Occlusion threshold: عدد النقاط المجاورة التي يجب أن تكون محجوبة لظهور المؤثر (القيم الأقل من 50% تجعل الناتج أغمق، لكنها قد توفر مدى أكبر للانسداد)

../../../_images/3dmap_edl_ssao.png

شكل 7.27 رسم السحب النقطية في الخريطة ثلاثية الأبعاد باستخدام إضاءة القبة البصرية (EDL) و/أو الانسداد المحيطي في فضاء الشاشة (SSAO)

من الأعلى، ومن اليسار إلى اليمين: دون مؤثر -- SSAO فقط -- EDL فقط -- SSAO و EDL

7.2.1.5. الكاميرا وقبة السماء (Skybox)

في هذا التبويب، يمكنك التحكم في معاملات مختلفة مثل الكاميرا، والمحور ثلاثي الأبعاد، ومزامنة التنقل، وقبة السماء.

../../../_images/3dmapconfiguration_camera.png

شكل 7.28 نافذة الحوار لإعدادات كاميرا الخريطة ثلاثية الأبعاد

  • تتجاوز مجموعة المعاملات Camera بعض إعدادات الكاميرا الافتراضية المضبوطة في نافذة الحوار Settings ► Options ► 3D.

  • فعّل unchecked Show 3D Axis لتمكين أداة المحور ثلاثي الأبعاد. تتيح مجموعة المعاملات هذه ضبط نوع المحور وموضعه.

    • مع النوع Coordinate Reference System يُمثَّل محور متعامد.

    • مع النوع Cube يُمثَّل مكعب ثلاثي الأبعاد. يمكن استخدام أوجه المكعب لتغيير منظور الكاميرا: على سبيل المثال، انقر على الوجه north لضبط الكاميرا على الرؤية من جهة الشمال.

نصيحة

انقر بزر الفأرة الأيمن على المحور ثلاثي الأبعاد لضبط موضعه ونوعه ومنظور الكاميرا بسرعة.

../../../_images/3dmapconfiguration_3daxis_menu.png

شكل 7.29 قائمة السياق للمحور ثلاثي الأبعاد

  • تضيف مجموعة المعاملات Navigation Synchronization خيارات لمزامنة العرض ثنائي الأبعاد مع موضع الكاميرا ثلاثية الأبعاد، أو مزامنة موضع الكاميرا ثلاثية الأبعاد مع العرض ثنائي الأبعاد، أو مزامنة في الاتجاهين. ويعرض الخيار الأخير الامتداد المرئي من الكاميرا ثلاثية الأبعاد فوق عرض الخريطة ثنائي الأبعاد.

  • فعّل unchecked Show skybox لتمكين رسم قبة السماء (skybox) في المشهد. يمكن أن يكون نوع قبة السماء:

    • Panoramic texture، بملف واحد يوفر رؤية بزاوية 360°

    • Distinct faces، بملف نسيج لكل وجه من الأوجه الستة لصندوق يحتوي المشهد

    يمكن أن تكون ملفات صور النسيج لقبة السماء ملفات على القرص، أو عناوين URL بعيدة، أو مضمّنة في المشروع (مزيد من التفاصيل).

7.2.1.6. متقدم

../../../_images/3dmapconfiguration_advanced.png

شكل 7.30 نافذة حوار الإعدادات المتقدمة للخريطة ثلاثية الأبعاد

  • Map tile resolution: عرض وارتفاع صور الخريطة ثنائية الأبعاد المستخدمة نسيجًا لبلاطات التضاريس. تعني القيمة 256px أن كل بلاطة ستُرسم في صورة بحجم 256x256 بكسل. تُنتج الأرقام الأعلى بلاطات تضاريس أكثر تفصيلًا على حساب زيادة تعقيد الرسم.

  • Max. screen error: يحدد العتبة التي تُستبدل عندها بلاطات التضاريس ببلاطات أكثر تفصيلًا (والعكس)، أي مدى سرعة استخدام العرض ثلاثي الأبعاد لبلاطات أعلى جودة. تعني الأرقام الأقل تفاصيل أكثر في المشهد على حساب زيادة تعقيد الرسم.

  • Max. ground error: الدقة المكانية لبلاطات التضاريس التي يتوقف عندها تقسيم البلاطات إلى بلاطات أكثر تفصيلًا (إذ لن يضيف تقسيمها أي تفاصيل إضافية على أي حال). تحدّ هذه القيمة من عمق التسلسل الهرمي للبلاطات: القيم الأقل تجعل التسلسل أعمق، مما يزيد تعقيد الرسم.

  • Zoom levels: يعرض عدد مستويات التكبير (يعتمد على دقة بلاطات الخريطة وقيمة الخطأ الأرضي الأقصى).

  • unchecked Show labels: يُظهر تسميات الخريطة أو يخفيها

  • unchecked Show frames per second (FPS)

  • unchecked Show debug panel: يتيح إظهار أو إخفاء لوحة بجوار عرض الخريطة ثلاثي الأبعاد تعرض خيارات للتحكم بشكل أفضل في التنقل في الخريطة ومعلومات التصحيح:

    • unchecked Show map tile info: يُضمّن الحدود وأرقام البلاطات لبلاطات التضاريس (مفيد لاستكشاف مشكلات التضاريس وإصلاحها)

    • unchecked Show bounding boxes: يُظهر الصناديق المحيطة ثلاثية الأبعاد لبلاطات التضاريس (مفيد لاستكشاف مشكلات التضاريس وإصلاحها)

    • unchecked Show camera's view center

    • unchecked Show camera's rotation center

    • unchecked Show light sources: يُظهر كرة عند مواضع مصادر الإضاءة، مما يسهّل إعادة تموضع مصادر الإضاءة ووضعها بالنسبة لمحتويات المشهد

    • unchecked Stop scene updates

    • unchecked Show debug overlay: طبقة مرئية علوية تعرض بعض معلومات التصحيح وقياس الأداء المفيدة، وتتيح على وجه الخصوص رؤية مخطط الإطارات (frame graph) ومخطط المشهد (scene graph) بسرعة

    • unchecked Debug Shadow Map: يرسم المشهد صورةً بالأحمر والأسود من منظور مصدر الإضاءة المستخدم للظلال (لاستكشاف الأخطاء وإصلاحها). يُضبط عنصر الواجهة بحجم Size متناسب مع حجم عرض الخريطة ثلاثي الأبعاد، ويُثبَّت في زاوية Corner.

    • unchecked Debug Depth Map: يرسم خريطة العمق للمشهد صورةً تكون فيها البكسلات الأقرب أغمق (لاستكشاف الأخطاء وإصلاحها). يُضبط عنصر الواجهة بحجم Size متناسب مع حجم عرض الخريطة ثلاثي الأبعاد، ويُثبَّت في زاوية Corner.

    • Show camera info:

      • unchecked Far plane: يتحكم في المسافة من الكاميرا التي يتوقف عندها الرسم

      • unchecked Near plane: يتحكم في مدى القرب من الكاميرا الذي يبدأ عنده الرسم

      • unchecked Camera X/Y/Z pos: يضبط موضع الكاميرا في الفضاء ثلاثي الأبعاد

      • unchecked Looking at X/Y/Z: يضبط النقطة الهدف التي تنظر إليها الكاميرا

ملاحظة

عندما يكون عرض الخريطة ثلاثي الأبعاد مفتوحًا في نافذة مستقلة، يمكنك استخدام اختصار لوحة المفاتيح Ctrl+Shift+d للوصول إلى لوحة التصحيح.

7.2.3. إنشاء رسوم متحركة

تعتمد الرسوم المتحركة على مجموعة من الإطارات المفتاحية، وهي مواضع الكاميرا في أوقات محددة. لإنشاء رسوم متحركة:

  1. فعّل الأداة play Animations، فيظهر عنصر مشغّل الرسوم المتحركة

  2. انقر على الزر symbologyAdd Add keyframe وأدخل قيمة Keyframe time بالثواني. يعرض مربع التحرير والسرد Keyframe الآن الوقت المضبوط.

  3. باستخدام أدوات التنقل، حرّك الكاميرا إلى الموضع الذي تريد ربطه بوقت الإطار المفتاحي الحالي.

  4. كرّر الخطوات السابقة لإضافة ما يلزم من إطارات مفتاحية (بوقتها وموضعها).

  5. انقر على الزر play لمعاينة الرسوم المتحركة. سيولّد QGIS المشاهد باستخدام مواضع الكاميرا ودورانها في الأوقات المحددة، مع الاستيفاء بينها فيما بين هذه الإطارات المفتاحية. تتوفر أنماط مختلفة من Interpolation للرسوم المتحركة (مثل linear و inQuad و outQuad و inCirc... -- لمزيد من التفاصيل راجع https://doc.qt.io/archives/qt-5.15/qeasingcurve.html#EasingFunction-typedef).

    يمكن أيضًا معاينة الرسوم المتحركة بتحريك منزلق الوقت. يؤدي إبقاء المربع Loop مفعّلًا إلى تشغيل الرسوم المتحركة بشكل متكرر، بينما يؤدي النقر على play إلى إيقاف رسوم متحركة قيد التشغيل.

انقر على fileSave Export animation frames لتوليد سلسلة من الصور تمثل المشهد. إلى جانب Template اسم الملف و Output directory، يمكنك ضبط عدد Frames per second وقيمتي Output width و Output height.

7.2.4. الطبقات المتجهية ثلاثية الأبعاد

يمكن عرض طبقة متجهية تحتوي على قيم ارتفاع في عرض الخريطة ثلاثي الأبعاد بتفعيل Enable 3D Renderer في قسم 3D View من خصائص الطبقة المتجهية. تتوفر عدة خيارات للتحكم في رسم الطبقة المتجهية ثلاثية الأبعاد.