خوارزمية مربع الماس

خوارزمية مربع الماس (بالإنجليزية: Diamond-square algorithm)‏ هي طريقة تستخدم في إنتاج خرائط ارتفاع heightmaps ذات درجة واقعية كبيرة من أجل تطبيقات الرسوميات الحاسوبية.[1][2][3] تعتبر على أنها التطبيق الثلاثي الأبعاد لخوارزمية تشرد نقطة الوسط midpoint displacement algorithm التي تنتج تضاريس ثنائية الأبعاد.

خريطة ارتفاع
خريطة ارتفاع بعد أن حولت القيم إلى الفضاء الثلاثي الأبعاد

الخوارزميةعدل

  • ضع قيمة ارتفاع لكل زاوية من زوايا مستطيل (صورة).
  • قسم المستطيل إلى أربع أرباع مستطيل، وضع قيمة ارتفاع لهذه النقاط تساوي المتوسط الحسابي لقيم ارتفاعات الزوايا التي ترتبط بها.
  سيكون له قيم الارتفاع التالية

 

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

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

تطبيقاتعدل

تستخدم هذه الخوارزمية في الحصول على تضاريس واقعية، ويوجد العديد من التطبيقات لها في الرسوميات الحاسوبية مثل برنامج برايس.

مراجععدل

  1. ^ Peitgen, Heinz-Otto, Dietmar Saupe (1988)، The Science of fractal images، New York: Springer-Verlag، ISBN 0-387-96608-0.{{استشهاد بكتاب}}: صيانة CS1: التاريخ والسنة (link)
  2. ^ Miller, Gavin S. P. (أغسطس 1986)، "The definition and rendering of terrain maps"، ACM SIGGRAPH Computer Graphics، 20 (4): 39–48، doi:10.1145/15886.15890.
  3. ^ Fournier, Alain؛ Fussell, Don؛ Carpenter, Loren (يونيو 1982)، "Computer rendering of stochastic models"، Communications of the ACM، 25 (6): 371–384، doi:10.1145/358523.358553.