خوارزمية مربع الماس (Diamond-square algorithm) هي طريقة تستخدم في إنتاج خرائط ارتفاع heightmaps ذات درجة واقعية كبيرة من أجل تطبيقات الرسوميات الحاسوبية.[1][2][3] تعتبر على أنها التطبيق الثلاثي الأبعاد لخوارزمية تشرد نقطة الوسط midpoint displacement algorithm التي تنتج تضاريس ثنائية الأبعاد.
الخوارزمية
- ضع قيمة ارتفاع لكل زاوية من زوايا مستطيل (صورة).
- قسم المستطيل إلى أربع أرباع مستطيل، وضع قيمة ارتفاع لهذه النقاط تساوي المتوسط الحسابي لقيم ارتفاعات الزوايا التي ترتبط بها.
- سيكون له قيم الارتفاع التالية
لكن عند حساب الارتفاع في المنتصف يجب إضافة قيمة صغيرة للخطأ، تعتمد على حجم المستطيل (عادة يكون الخطأ متناسباً مع حجم المستطيل وبعض الثوابت، حيث تتحكم الثوابت بدرجة خشونة الكسيرية، حيث أن ثابت أكبر ينتج أودية وجبال أشد).
- يعاد بشكل تكراري تقسيم كل مستطيل ناتج إلى مستطيلات أصغر بحسب القاعدة في الأعلى. في النهاية ستكون صغيرة جداً حيث تعطي الفرق الواضح. تتوقف الخوارزمية عند الحاجة ومن ثم تحول قيم الارتفاع في الصورة إلى قيم ارتفاع في الفضاء الثلاثي الأبعاد.
تطبيقات
تستخدم هذه الخوارزمية في الحصول على تضاريس واقعية، ويوجد العديد من التطبيقات لها في الرسوميات الحاسوبية مثل برنامج برايس.
مراجع
- Peitgen, Heinz-Otto, Dietmar Saupe (1988). The Science of fractal images. New York: Springer-Verlag. .
- Miller, Gavin S. P. (August 1986). "The definition and rendering of terrain maps". ACM SIGGRAPH Computer Graphics. 20 (4): 39–48. doi:10.1145/15886.15890.
- Fournier, Alain; Fussell, Don; Carpenter, Loren (June 1982). "Computer rendering of stochastic models". Communications of the ACM. 25 (6): 371–384. doi:10.1145/358523.358553.