تحديد السطح المخفي
في مجال رسومات الحاسوب ثلاثية الأبعاد ، تُعرف عملية تحديد الأسطح المخفية (وتُسمى أيضًا تحديد الأسطح الظاهرة ، أو إزالة الأسطح المخفية ، أو استبعاد الأجزاء المخفية ، أو تحديد الأسطح المرئية ) بأنها عملية تحديد الأسطح وأجزاء الأسطح التي يمكن رؤيتها من زاوية رؤية معينة. تُعد خوارزمية تحديد الأسطح المخفية حلاً لمشكلة الرؤية ، التي كانت من أوائل المشكلات الرئيسية في مجال رسومات الحاسوب ثلاثية الأبعاد. تُسمى عملية تحديد الأسطح المخفية أحيانًا بالإخفاء ، وتُسمى هذه الخوارزمية أحيانًا بخوارزمية الإخفاء . وعند الإشارة إلى رسم الخطوط، تُعرف بإزالة الخطوط المخفية . يُعد تحديد الأسطح المخفية ضروريًا لعرض المشهد بشكل صحيح، بحيث لا يمكن رؤية العناصر المخفية خلف النموذج نفسه، مما يسمح فقط برؤية الجزء المرئي من الرسم.
خلفية
تحديد الأسطح المخفية هو عملية تُحدد الأسطح غير المرئية للمستخدم (على سبيل المثال، لأنها تقع خلف أجسام معتمة كالجدران). ورغم التطورات في قدرات الأجهزة، تتطلب خوارزميات العرض موارد حاسوبية كبيرة. ومن خلال استبعاد بعض الأسطح من العرض لعدم رؤيتها، تستطيع محركات العرض تحسين الكفاءة، مما يسمح بعرض مساحات عالمية واسعة.
توجد تقنيات عديدة لتحديد الأسطح المخفية، لكنها تعتمد عمومًا على فرز الأسطح بناءً على بُعدها عن المشاهد. قد يكون فرز كميات كبيرة من العناصر الرسومية مكلفًا حسابيًا، وعادةً ما يتم ذلك باستخدام أسلوب فرق تسد . تختلف تقنيات تحديد الأسطح المخفية، جزئيًا، في طريقة تقسيم المساحة قبل الفرز.
الخوارزميات
تتضمن عملية العرض عادةً الخطوات التالية: الإسقاط ، والقص ، والتحويل إلى صورة نقطية .
تتضمن بعض الخوارزميات المستخدمة في عملية العرض ما يلي:
- التخزين المؤقت Z
- أثناء عملية التحويل إلى صورة نقطية، يتم التحقق من عمق (قيمة Z) كل بكسل (أو عينة في حالة منع التعرج، ولكن يُستخدم مصطلح " بكسل " هنا دون الإخلال بعمومية العملية ) مقارنةً بقيمة عمق موجودة. إذا كان البكسل الحالي متأخرًا عن البكسل الموجود في مخزن العمق (Z-buffer)، يتم رفضه، وإلا يتم تظليله وتُستبدل قيمة عمقه بقيمة العمق الموجودة في مخزن العمق. يدعم تخزين العمق المشاهد الديناميكية بسهولة، ويتم تنفيذه حاليًا بكفاءة في أجهزة الرسومات. هذا الأسلوب هو المعيار الحالي. يتطلب تخزين العمق ما يصل إلى 4 بايتات لكل بكسل، وقد يكون له تكلفة حسابية كبيرة نظرًا لأن خوارزمية التحويل إلى صورة نقطية تحتاج إلى التحقق من كل عينة مُحولة مقابل مخزن العمق. قد تعاني خوارزمية مخزن العمق من تشوهات ناتجة عن أخطاء الدقة (المعروفة أيضًا باسم "تداخل العمق ").
- مخازن التغطية (المخزن المؤقت C ) والمخزن المؤقت السطحي ( المخزن المؤقت S )
- تُعدّ هذه الأساليب أسرع من تقنية التخزين المؤقت Z، وتُستخدم عادةً في ألعاب مثل Quake I ، حيث تخزن معلومات حول الأجزاء المعروضة مسبقًا لكل سطر من الشاشة (على عكس تخزين كل بكسل كما هو الحال في تقنية Z). ثم تُقصّ المضلعات الجديدة على طول الأجزاء المعروضة مسبقًا التي قد تُخفيها. يمكن لتقنية S-buffer عرض المضلعات غير المرتبة، بينما تتطلب تقنية C-buffer عرض المضلعات من الأقرب إلى الأبعد. ولأن تقنية C-buffer لا تتطلب رسم البكسل أكثر من مرة، فإن العملية أسرع قليلًا. وقد شاع استخدام هذا الأسلوب مع أشجار تقسيم الفضاء الثنائي (BSP).
- قائمة الحواف النشطة المصنفة
- تُستخدم هذه التقنية في لعبة Quake I ، حيث تخزن قائمة بحواف المضلعات المعروضة مسبقًا (انظر عرض خطوط المسح ). تُعرض المضلعات من الأقرب إلى الأبعد. تُقص المضلعات الجديدة على حواف المضلعات المعروضة، مما يُنشئ مضلعات جديدة للعرض، ثم تُخزن الحواف الإضافية. يُعد هذا الأسلوب أصعب في التنفيذ من مخازن S/C/Z، ولكنه يتحسن بشكل ملحوظ مع زيادة دقة الصورة.
- خوارزمية الرسام
- تقوم هذه الخوارزمية بترتيب المضلعات حسب مركز ثقلها ، ثم ترسمها من الخلف إلى الأمام. ينتج عن هذا الأسلوب تشوهات قليلة عند تطبيقه على مشاهد تحتوي على مضلعات متقاربة الحجم تُشكّل شبكات ناعمة مع تفعيل خاصية إخفاء الأوجه الخلفية . من عيوب هذه الخوارزمية التكلفة الحسابية لخطوة الترتيب، وإمكانية ظهور تشوهات بصرية. قد تفشل هذه الخوارزمية في المشاهد العامة، لأنها لا تستطيع التعامل مع المضلعات في العديد من التكوينات الشائعة، مثل الأسطح المتقاطعة.
- تقسيم الفضاء الثنائي (BSP)
- تقسم هذه التقنية المشهد على طول مستويات تتوافق مع حدود المضلعات. يُبنى التقسيم الفرعي بطريقة توفر ترتيبًا واضحًا للعمق من أي نقطة في المشهد عند اجتياز شجرة BSP. العيب الرئيسي لهذه التقنية هو التكلفة الحسابية العالية لبناء شجرة BSP. ونتيجة لذلك، فإن هذا النهج أقل ملاءمة للمشاهد التي تتكون من هندسة ديناميكية. تتمثل ميزة BSP في أن البيانات مُرتبة مسبقًا وخالية من الأخطاء، ويمكن استخدامها كمدخلات للخوارزميات المذكورة سابقًا. تجدر الإشارة إلى أن BSP ليس حلاً لإزالة الأسطح المخفية، بل هو مجرد أداة مساعدة.
- تتبع الأشعة
- تحاول تقنية تتبع الأشعة محاكاة مسار أشعة الضوء إلى نقطة رؤية معينة، وذلك بتتبع الأشعة من تلك النقطة إلى داخل المشهد. ورغم أنها ليست خوارزمية لإزالة الأسطح المخفية بحد ذاتها، إلا أنها تحل ضمنيًا مشكلة إزالة الأسطح المخفية من خلال إيجاد أقرب سطح على طول كل شعاع رؤية. عمليًا، يُعادل هذا النهج فرز جميع العناصر الهندسية على أساس كل بكسل.
- خوارزمية وارنوك
- تقسم هذه الخوارزمية الشاشة إلى مناطق أصغر، ثم ترتب المثلثات داخلها. في حال وجود غموض (أي تداخل المضلعات في عمق هذه المناطق)، يتم إجراء تقسيم إضافي. وقد يصل التقسيم في النهاية إلى مستوى البكسل.
عملية الفرز وتحديد السطح المرئي
يُعدّ الاستبعاد مجالًا ذا صلة بتحديد الأسطح المرئية ، ويتم عادةً قبل تحديد الأسطح المرئية في مسار العرض. يمكن رفض العناصر الأولية أو مجموعات منها بالكامل، مما يقلل عادةً من الحمل الحسابي في نظام العرض. تشمل أنواع خوارزميات الاستبعاد ما يلي:
استبعاد مخروط الرؤية
المخروط المرئي هو تمثيل هندسي للحجم المرئي للكاميرا الافتراضية . وبطبيعة الحال، لن تظهر الأجسام الواقعة خارج هذا الحجم في الصورة النهائية، لذا يتم استبعادها. غالبًا ما تقع الأجسام على حدود المخروط المرئي. تُقطع هذه الأجسام إلى أجزاء على طول هذه الحدود في عملية تُسمى القص ، وتُستبعد الأجزاء الواقعة خارج المخروط لعدم وجود مساحة كافية لرسمها.
إزالة الوجه الخلفي
في الأجسام ثلاثية الأبعاد، يكون جزء من سطح الجسم مواجهًا للكاميرا، بينما يكون الجزء الآخر مواجهًا للخلف، أي في الجهة الخلفية للجسم، محجوبًا بالجهة الأمامية. إذا كان الجسم معتمًا تمامًا، فلا حاجة لرسم هذه الأسطح. تُحدد هذه الأسطح بترتيب رؤوس المثلث: فإذا كانت رؤوس المثلث المرسوم مرتبة باتجاه عقارب الساعة على مستوى الإسقاط عند مواجهة الكاميرا، فإنها تتحول إلى ترتيب عكس عقارب الساعة عندما يبتعد السطح عن الكاميرا.
Incidentally, this approach also makes the objects completely transparent when the viewpoint camera is located inside them, because then all the surfaces of the object are facing away from the camera and are culled by the renderer. To prevent this artifact, the object must be set as double-sided (i.e. no back-face culling is done) or have separate inside surfaces.
Contribution culling
Often, objects are so far away that they do not contribute significantly to the final image. These objects are thrown away if their screen projection is too small. See Clipping.
Occlusion culling
Objects that are entirely behind other opaque objects may be culled. This is a very popular mechanism to speed up the rendering of large scenes that have a moderate to high depth complexity. There are several types of occlusion culling approaches:
- Potentially visible set (PVS) rendering divides a scene into regions and pre-computes visibility for them. These visibility sets are then indexed at run-time to obtain high-quality visibility sets (accounting for complex occluder interactions) quickly.
- Portal rendering divides a scene into cells/sectors (rooms) and portals (doors), and computes which sectors are visible by clipping them against portals.
- Hierarchical occlusion maps (HOM) represent the cumulative projection of occluders at multiple resolutions and perform overlap tests hierarchically through that pyramid; the method was designed for current graphics hardware, stores opacity separately from depth, and can support approximate visibility culling.[1][2]
Divide and conquer
A popular theme in the visible surface determination literature is divide and conquer. The Warnock algorithm pioneered dividing the screen. Beam tracing is a ray-tracing approach that divides the visible volumes into beams. Various screen-space subdivision approaches reduce the number of primitives considered per region, e.g. tiling, or screen-space BSP clipping. Tiling may be used as a preprocess to other techniques. Z-buffer hardware may typically include a coarse "hi-Z", against which primitives can be rejected early without rasterization. Such an approach is a form of occlusion culling.
تُستخدم هياكل الحجم المحيط (BVHs) غالبًا لتقسيم مساحة المشهد (ومن أمثلتها شجرة BSP ، وشجرة octree ، وشجرة kd ). يتيح هذا الأسلوب تحديد الرؤية بشكل هرمي: فإذا اعتُبرت عقدة في الشجرة غير مرئية ، فإن جميع عقدها الفرعية تكون غير مرئية أيضًا، ولا حاجة إلى أي معالجة إضافية (إذ يمكن للمُعالج رفضها جميعًا). أما إذا اعتُبرت عقدة مرئية ، فيجب تقييم كل عقدة فرعية منها. يُعد هذا الاجتياز بمثابة اجتياز شجرة، حيث يُحدد عدم الرؤية/الحجب أو الوصول إلى عقدة طرفية ما إذا كان يجب التوقف أو التكرار، على التوالي.
انظر أيضاً
مصادر
- ↑ "دراسة استقصائية حول إمكانية الرؤية لتطبيقات التجول الافتراضي" (ملف PDF) . people.csail.mit.edu .
- ↑ "إزالة الحجب باستخدام خرائط الحجب الهرمية" . www.cs.unc.edu .
- تحديد الأسطح الخفية
- توصيف لعشر خوارزميات للسطح المخفي ( نسخة من Wayback Machine )
- عرض ثلاثي الأبعاد
- خوارزميات رسومات الحاسوب
