تشويش بيرلين  تشوش بيرلين او ضوضاء بيرلين هي نوع من ضوضاء التدرج التي طورها كين بيرلين في عام 1983. له العديد من الاستخدامات ، بما في ذلك على سبيل المثال ولا تقتصر على: إنشاء التضاريس من الناحية الإجرائية ، وتطبيق التغييرات شبه العشوائية على متغير ، والمساعدة في إنشاء نسيج الصورة . يتم تنفيذه بشكل شائع في بعدين أو ثلاثة أو أربعة أبعاد ، ولكن يمكن تحديده لأي عدد من الأبعاد.  طور كين بيرلين ضوضاء او تشويش بيرلين في عام 1983 نتيجة لإحباطه من المظهر "الشبيه بالآلة" للصور التي تم إنشاؤها بواسطة الكمبيوتر (CGI) في ذلك الوقت. وصف النتائج التي توصل إليها رسميًا في ورقة SIGGRAPH في عام 1985 بعنوان "An Image Synthesizer" . قام بتطويره بعد العمل على فيلم الرسوم المتحركة للخيال العلمي Tron "(" 1982) لشركة الرسوم المتحركة Mathematical Applications Group (MAGI). في عام 1997 ، تم منح بيرلين جائزة الأوسكار للإنجاز الفني لإنشاء الخوارزمية ، ونص الاقتباس على النحو التالي:  لم يتقدم بيرلين بطلب للحصول على أي براءات اختراع بشأن الخوارزمية ، ولكن في عام 2001 حصل على براءة اختراع لاستخدام تطبيقات 3D + للضوضاء البسيط لتركيب النسيج . الضوضاء البسيطة لها نفس الغرض ، لكنها تستخدم شبكة أبسط لملء الفراغ. يخفف الضجيج البسيط من بعض مشاكل "الضوضاء الكلاسيكية" لبيرلين ، من بينها التعقيد الحسابي والتشكيلات الاتجاهية ذات الأهمية المرئية.  ضجيج بيرلين هو نسيج إجرائي بدائي ، وهو نوع من ضجيج التدرج الذي يستخدمه فنانو المؤثرات المرئية لزيادة مظهر الواقعية في رسومات الكمبيوتر . تتمتع الوظيفة بمظهر شبه عشوائي ، إلا أن جميع تفاصيلها المرئية لها نفس الحجم. تتيح هذه الخاصية إمكانية التحكم فيها بسهولة ؛ يمكن إدراج نسخ متعددة من ضجيج بيرلين في التعبيرات الرياضية لإنشاء مجموعة كبيرة ومتنوعة من القوام الإجرائي. غالبًا ما تُستخدم الأنسجة الاصطناعية التي تستخدم ضوضاء بيرلين في CGI لإنشاء عناصر مرئية بواسطة الكمبيوترمثل أسطح الأشياء أو النار أو الدخان أو السحبتبدو أكثر طبيعية ، من خلال تقليد المظهر العشوائي الخاضع للرقابة للقوام في الطبيعة.  يتم استخدامه أيضًا بشكل متكرر لإنشاء مواد عندما تكون الذاكرة محدودة للغاية ، كما هو الحال في العروض التوضيحية . أصبح خلفاؤها ، مثل الضجيج الكسري والضوضاء البسيط (اكس) ، في كل مكان تقريبًا في وحدات معالجة الرسومات لكل من الرسومات في الوقت الفعلي والأنسجة الإجرائية غير الواقعية في جميع أنواع رسومات الكمبيوتر.  يتم استخدامه بشكل متكرر في ألعاب الفيديو لإنشاء تضاريس تم إنشاؤها إجرائيًا التي تبدو طبيعية.  يتم تنفيذ ضوضاء بيرلين بشكل شائع كوظيفة ثنائية أو ثلاثية أو رباعية الأبعاد ، ولكن يمكن تعريفها لأي عدد من الأبعاد. يتضمن التنفيذ عادةً ثلاث خطوات: تحديد شبكة من نواقل التدرج العشوائي ، وحساب حاصل الضرب النقطي بين متجهات التدرج وتعويضاتها ، والاستيفاء بين هذه القيم.  حدد شبكة ذات أبعاد "n" حيث يرتبط بها كل تقاطع شبكة متجه متجه متدرج بطول الوحدة العشوائي ذي البعد "n" ، باستثناء الحالة ذات البعد الواحد حيث تكون التدرجات مقاييس عشوائية بين -1 و 1.  لحساب قيمة أي نقطة مرشحة ، ابحث أولاً عن خلية الشبكة الفريدة التي تكمن فيها النقطة. ثم حدد ملف formula_1 زوايا تلك الخلية ونواقل التدرج المرتبطة بها. بعد ذلك ، لكل زاوية ، احسب متجه الإزاحة. متجه الإزاحة هو متجه الإزاحة من تلك الزاوية إلى النقطة المرشحة.  لكل زاوية ، نأخذ حاصل الضرب النقطي بين متجه التدرج ومتجه الإزاحة إلى نقطة المرشح. سيكون حاصل الضرب النقطي هذا صفراً إذا كانت النقطة المرشحة في زاوية الشبكة بالضبط.  لاحظ أن تأثير متجه التدرج ينمو مع زيادة المسافة ، والذي يمكن تجنبه عن طريق تسوية متجه الإزاحة بطول formula_2 أولاً. سيؤدي هذا إلى إدخال تغييرات حادة ملحوظة ، باستثناء المسافة التي يتم أخذها في الاعتبار في خطوة الاستيفاء التالية. ومع ذلك ، فإن تطبيع متجه الإزاحة ليس ممارسة شائعة.  بالنسبة إلى نقطة في شبكة ثنائية الأبعاد ، سيتطلب ذلك حساب 4 متجهات إزاحة ومنتجات نقطية ، بينما في الأبعاد الثلاثة سيتطلب 8 متجهات إزاحة و 8 منتجات نقطية. بشكل عام ، الخوارزمية لديها formula_3 التعقيد ، أين formula_4 هو عدد الأبعاد.  الخطوة الأخيرة هي الاستيفاء بين formula_1 منتجات النقطية. يتم إجراء الاستيفاء باستخدام دالة لها مشتق أول صفر (وربما أيضًا المشتق الثاني) عند formula_1 عقد الشبكة. لذلك ، عند النقاط القريبة من عقد الشبكة ، سيقارب الإخراج المنتج النقطي لمتجه التدرج للعقدة ومتجه الإزاحة للعقدة. هذا يعني أن وظيفة الضوضاء سوف تمر من خلال الصفر في كل عقدة ، مما يعطي ضوضاء بيرلين مظهرها المميز.  لو formula_7 ، مثال على دالة تقحم بين القيمة formula_8 عند عقدة الشبكة 0 والقيمة formula_9 عند العقدة الشبكية 1 هي  حيث تم استخدام وظيفة الخطوة السلسة .  عادةً ما تنتج وظائف الضوضاء المستخدمة في رسومات الكمبيوتر قيمًا في النطاق [-1.0،1.0] ويمكن قياسها وفقًا لذلك.  ما يلي هو تنفيذ ثنائي الأبعاد لضوضاء بيرلين الكلاسيكية ، مكتوبًا في لغة C.  كان لتطبيق المرجع الأصلي من قبل بيرلين اختلافات كبيرة  :    /* Function to linearly interpolate between a0 and a1 float interpolate(float a0, float a1, float w) {  typedef struct { } vector2;  /* Create pseudorandom direction vector vector2 randomGradient(int ix, int iy) {  // Computes the dot product of the distance and gradient vectors. float dotGridGradient(int ix, int iy, float x, float y) {  // Compute Perlin noise at coordinates x, y float perlin(float x, float y) {  تستخدم العديد من تطبيقات ضجيج بيرلين نفس مجموعة التبديل التي استخدمها كين بيرلين في تطبيقه الأصلي. هذا التنفيذ هو على النحو التالي: int permutation[] = { 151, 160, 137, 91, 90, 15, 131, 13, 201, 95, 96, 53, 194, 233, 7, 225, 140, 36,  هذا التقليب المحدد ليس مطلوبًا تمامًا ، على الرغم من أنه يتطلب مصفوفة عشوائية من القيم [0-255] (ضمناً). في حالة إنشاء جدول تبديل جديد ، يجب توخي الحذر لضمان التوزيع المنتظم للقيم.  لكل تقييم لوظيفة الضوضاء ، يجب تقييم المنتج النقطي للموضع ومتجهات التدرج عند كل عقدة في خلية الشبكة المحتوية. وبالتالي ، فإن ضوضاء بيرلين تتناسب مع التعقيد formula_3 ل formula_4 أبعاد. تشمل بدائل ضوضاء بيرلين التي تنتج نتائج مماثلة مع مقياس تعقيد محسّن ضوضاء بسيطة وضوضاء OpenSimplex .