نشر على ٠٥-٠٩-٢٠١٩

اللعب مع بيرلين الضوضاء: توليد أرخبيل واقعي

لم أر الكثير من الأمثلة الرائعة لعمل خرائط مع ضوضاء بيرلين في الثعبان. حسنا هيا بنا!

ضجيج بيرلين هو صيغة رياضية تستخدم لإنشاء هياكل "واقعية". إنه ضوضاء ولكن على عكس الضوضاء العادية ، فإنه يحتوي على بنية متماسكة. هنا ضوضاء منتظمة مقابل ضوضاء Perlin:

ثابت ثابت والضوضاء بيرلين

في وحدة بيثون 'الضوضاء' هناك بعض المعلمات التي تؤثر على ما تراه عند توليد الضوضاء بيرلين الخاص بك:

  1. مقياس: الرقم الذي يحدد في أي مسافة لعرض noisemap.
  2. octaves: عدد مستويات التفاصيل التي تريد أن تحصل عليها ضوضاء perlin.
  3. lacunarity: الرقم الذي يحدد مقدار التفاصيل التي تتم إضافتها أو إزالتها في كل أوكتاف (يضبط التردد).
  4. الثبات: الرقم الذي يحدد مقدار مساهمة كل أوكتاف في الشكل الكلي (يضبط السعة).

لا داعي للقلق بشأن المقياس أكثر من اللازم ، يمكنك استخدامه للتصغير (على نطاق أوسع) أو في (نطاق أصغر).

تجمع ضوضاء Perlin بين وظائف متعددة تسمى "أوكتافات" لإنتاج أسطح ذات مظهر طبيعي. يضيف كل أوكتاف طبقة من التفاصيل إلى السطح. على سبيل المثال: يمكن أن يكون أوكتاف 1 عبارة عن جبال ، أوكتاف 2 يمكن أن يكون صخورًا ، أوكتاف 3 يمكن أن يكون الصخور.

يعني عدم الراحة لأكثر من 1 أن كل أوكتاف سيزيد من مستوى التفاصيل الدقيقة المحببة (زيادة اللطافة). عدم الراحة من 1 يعني أن كل اوكتاف سيكون لديه مستوى سام من التفاصيل. التعب من أقل من واحد يعني أن كل اوكتاف سيصبح أكثر سلاسة. عادة ما يكون الأخيران غير مرغوب فيهما لذا فإن اللاهبة 2 تعمل بشكل جيد.

يحدد الثبات مقدار مساهمة كل أوكتاف في البنية الكلية لخريطة الضوضاء. إذا كانت ثباتك هو 1 ، فإن جميع الأوكتاف تساهم بالتساوي إذا كنت تستمر أكثر من 1 أوكتافات ساهمية تساهم أكثر وتحصل على شيء أقرب إلى الضوضاء العادية (المفسد ، فإن صورة الضوضاء العادية أعلاه هي في الواقع ضجة بيرلين مع وجود 5.0). سيكون الإعداد الافتراضي أكثر هو وجود أقل من 1.0 مما يقلل من تأثير أوكتافات لاحقة.

يكفي الدردشة رغم! دعنا نجري بعض التجارب. لنبدأ أولاً بالضوضاء الافتراضية للبيرلين والصورة المصاحبة لها:

الطريقة التي تبدو بها ضوضاء perlin هذه في برنامجنا هي مجموعة ثنائية الأبعاد من القيم بين -1 و 1. القيم الأغمق على الخريطة هي قيم أقل ، والقيم القريبة من 1 أخف. ما أريد تجربته بعد ذلك هو تعيين لونين لنطاقات مختلفة من القيم في هذه الخريطة لإنتاج بعض التضاريس:

هذه الخريطة التضاريس جميلة جدا. لها سواحل خشنة وشواطئ وكثير من الماء. بينما لم ألاحظ أبدًا التضاريس الطبيعية التي تبدو هكذا إذا نظرنا إلى أي جزء من الخريطة ، يبدو الأمر "واقعيًا". دعنا نخطو خطوة إلى الأمام ونضيف الجبال والثلوج:

هذا رائع لكن من الواضح أن نمط التضاريس هذا غير طبيعي. لجعلها أكثر طبيعية ، سوف نستخدم مرشح دائري للتخلص من كل ضوضاء بيرلين الطرفية:

سوف نسميها عالم بيرلين!

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

التدرج الدائري:

لقد ناضلت كثيرا مع هذا الجزء. أنا متأكد من أن هناك طريقة أكثر فعالية للحصول على التدرج مثل هذا ولكن ما سبق هو ما توصلت إليه. قمت بحساب مقياس المسافة من مركز الخريطة ثم قمت بتطبيع هذه المسافات وتقليصها وإعادة تصنيفها لإنتاج هذا التدرج الكروي. مرة أخرى أخف يعني أن القيمة أقرب إلى 1 ، والألوان الداكنة أقرب إلى 0. بعد ذلك ، أطبق هذا التدرج الدائري على ضوضاء perlin التي أنشأناها من قبل.

التدرج الدائري + الضوضاء:

كان هذا الجزء أقل صعوبة ولكن لا يزال الألم. قمت بضرب ضوضاء perlin بواسطة التدرج الدائرى ثم أزيد التباين بضرب الموجب (قيم أفتح) في 20. ثم أعد تكوينها لجعلها 0-1 مرة أخرى.

التدرج الملون الدائرية + الضوضاء:

هذا رائع حقًا ويبدو أرخبيلًا طبيعيًا. أنا أشجعك على تجربة أساليب تظليل مختلفة وربما إزالة بعض الأقسام بشكل عشوائي. سأقوم بتغيير قيمة العتبة وتعيينها على أنها عتبة = 0.2. سيؤدي ذلك إلى إنتاج أرخبيل أصغر ولكنه أكثر واقعية:

ها نحن ذا! لدينا أرخبيل جزيرة تبحث الطبيعية! والآن بعد أن أصبح لدينا جزرنا ، قد تلاحظ أنه بغض النظر عن عدد مرات إعادة تشغيل هذا السيناريو ، فإن ضوضاء بيرلين ستنتج نفس الجزر. للحصول على جزر جديدة ، يمكنك تعيين المعلمة الأساسية لوظيفة pnoise2 على عدد صحيح عشوائي ، فلنجرب base = 5 ، base = 100:

الأرخبيل المتولدة من القاعدة 5 والقاعدة 100.

استنتاج

لذلك بدأنا ببعض الضوضاء البسيطة وانتهى بنا الأمر إلى توليد عدد غير محدود بشكل حقيقي من الأرخبيل الفريد والطبيعي! اتمنى أنك استمتعت بهذا المنشور!

دفتر الملاحظات الكامل مع كل رمز هنا.

إذا كنت قد استمتعت بهذا المنشور ، يمكنك الاشتراك في رسالتي الإخبارية هنا والبقاء على اطلاع على مشاريع رائعة ومثيرة للاهتمام.

أنظر أيضا

كيف تحافظ على روحك في عصر بناء المنصةملاك الشرلماذا تحتاج إلى تقدير الفن أكثر قليلاًفن حتى المحيط الفصل 2عرض الثورة الثقافية ، الجزء 1: قراءة "الملصقات الكبيرة الشخصية"تعلم الرسم والبرمجة في نفس الوقت في MozFest 2017