تشويه ، ضجيج سلس ، وكيفية العمل معهم.نحن نولد كوكب
واحدة من أبسط الطرق لتوليد كوكب الأرض هو استخدام الضوضاء. إذا قررنا اختياره ، فلدينا خياران محتملان. دعونا ننظر إلى كل منهما وتحديد الأفضل:
- بيرلين الضوضاء هو الخيار الأسهل. تم تطوير ضوضاء Perlin بواسطة Ken Perlin في عام 1983 ، فهي تحتوي على اثنين من العيوب - الآثار البصرية والسرعة عند إنشاء صور كبيرة منخفضة إلى حد ما مقارنة بالخيارات الأخرى.
- الضوضاء البسيطة (الضوضاء البسيطة) - تم تطويرها من قبل كين بيرلين في عام 2001 كمحاولة للتخلص من عيوب ضوضاء بيرلين. هذا حل جدير وسريع للغاية ، لكن له عيبًا خطيرًا: إن استخدام الضوضاء البسيطة ثلاثية الأبعاد محمي ببراءة اختراع ، مما يجعله مكلفًا للغاية.
- Open Simplex Noise - تم تطوير KDotJPG بهدف بسيط واحد: إنشاء نسخة حديثة ومجانية من ضوضاء simplex ، سريعة نسبيًا وبدون تشويه.
من بين هؤلاء الثلاثة ، أنا شخصياً أفضّل Open Simplex Noise ، التي أستخدمها في مشاريعي الشخصية. تجدر الإشارة إلى أنه في تطبيق OpenSimplexNoise الحالي
، ستكون هناك حاجة إلى عمل إضافي للوصول بسهولة إلى
النطاق ، أوكتافات ، ومولدات . هناك الكثير من المعلومات على الإنترنت حول ما يفعله كل عنصر من هذه العناصر ، وأوصي بشدة أن تدرسه. ومع ذلك ، في مقالي لن أتحدث عن هذا.
إليك ما يشبه Open Simplex Noise مع 16 أوكتافات.ضجيج سلس
الضوضاء لا حصر لها ، مما يعني أنه إذا قمنا ببساطة بإنشاء لوحة قماشية بنسبة عرض إلى ارتفاع 2: 1 للحصول على
إسقاط متباعد على قدم المساواة ، فلن يتم حلها عند
تركيبها على كرة (أعبر عن امتناني لهذا الموقع المذهل) ، ولكن على خط أفقي وعلى الأعمدة اختلافات كبيرة.
الضوضاء التي تم إنشاؤها دون طبقات.لاحظ اللحامات الضخمة التي ظهرت عندما تم تطبيق الضوضاء على الكرة.هناك العديد من الطرق لإصلاح هذا. على سبيل المثال ،
في هذا المنشور الممتاز لألعاب Red Blob
[ الترجمة على Habré] كان يكفي فقط إنشاء جزيرة باستخدام دالة تستقبل المسافة إلى المركز كمتغير وتعيين الارتفاع 0 عند الحواف لتقليل اللحامات إلى أدنى حد.
ومع ذلك ، هذا ليس ما نحتاجه. نريد إنشاء كوكب مع إمكانية وجود القطبين الشمالي والجنوبي ، ولهذا سنحتاج إلى حسابات رياضية أكثر تعقيدًا.
تراكب كروية
تتمثل إحدى الطرق التي يمكنها توليد كواكب كروية في تحويل الإحداثيات الديكارتية لقماشنا إلى إحداثيات كروية ، وتوليد ضوضاء بناءً على هذه الإحداثيات ، ثم تحويل الضوضاء مرة أخرى إلى إحداثيات ديكارتية وتطبيقها على اللوحة القماشية.
ومع ذلك ، فإن هذا التطبيق له حدوده ، حيث يتم عرض
أسبابها في منشور رائع بواسطة Ron Valstar . والأهم من ذلك ، أن أشكال القارات في هذه الحالة تبدو غريبة ومشوهة للغاية ، وبالتالي لن نستخدم هذا الخيار.
تراكب الضوضاء الكروية. الأشكال الغريبة والتشوهات تجعل القارات جميلة قبيحة.ولكن على الأقل لم تعد هناك طبقات.تراكب مكعب
كنتيجة لذلك ، استخدمت الطريقة الثانية ، مأخوذة من منشور لـ Ron Valstar وسلسلة من المقالات التي كتبها acko
Making Worlds . يصفون توليد الكرة الأرضية من خلال توليد مكعب و "التضخم" ، كما لو كان بالون ، حتى كان مثالاً على شكل كرة.
الصورة مأخوذة من acko.net. يشرح مفهوم الخريطة المكعبة بطريقة مرئية بسيطة.الآن نحن بحاجة فقط إلى إنشاء ستة وجوه ، وهو أمر بسيط للغاية ، وهناك العديد من الطرق للقيام بذلك.
في النهاية ، قررت إنشاء مجموعة ونشرها بالبيانات. لقد قمت بتحويل إحداثيات 2D للوحة القماش إلى إحداثيات ثلاثية الأبعاد للمكعب ، ثم أحدثت ضوضاء لكل من هذه الإحداثيات ثلاثية الأبعاد بحيث قمت بحفظها في قيمة الإحداثيات ثنائية الأبعاد المقابلة.
وبهذه الطريقة ، يمكننا إنشاء خريطة مكعبة يمكن تحويلها بسهولة إلى عرض متساوي المسافة
باستخدام الرمز الرائع الذي كتبه Bartosz .
خوارزمية ولدت خريطة مكعب.تحول متساوٍ للخريطة المكعبة.خريطة العالم مكعب المقدمة على maptoglobe.com .كما ترون ، الخريطة المتساوية لها أشكال أكثر جمالا ، وعندما تراكب على كرة ، فإنها تخلق نتائج مشابهة للتراكب الكروي ، دون كل عيوبها. بالمناسبة ، يمكن تحويل الإسقاط المتساوي بسهولة بواسطة برامج مختلفة ، على سبيل المثال ،
NASA G.Projector ، إلى أي نوع من البطاقات تقريبًا.
في الختام
يمكن أن يبدو إنشاء كوكب بأكمله مهمة شاقة ، وعلى الرغم من أن الضوضاء عند استخدامها بشكل صحيح هي أداة قوية جدًا ، إلا أنها تواجه مشكلاتها الخاصة التي يواجهها الناس لعدة قرون ، مثل تراكب كرة أرضية على لوحة ثنائية الأبعاد مع الحد الأدنى من التشويه.
الحل الذي اقترحته يخلق كواكب تم إنشاؤها تقريبًا ولا تراعي الصفائح التكتونية والأنهار وسلاسل الجزر وحتى الجبال ، وبالتالي يمكن استخدامها فقط كدليل أو كأساس لعمليات محاكاة أكثر تعقيدًا.
في الواقع ، فإنه ينشئ فقط مصفوفة من القيم في نطاق معين من القيم. للصور ذات التدرج الرمادي ، هذا هو 0-255. ثم يتم تحويل القيم إلى بكسل ينشئ صورة مشابهة للصورة الأولى بتدرج الرمادي ، أو إلى صورة في النطاق من -11000 إلى 8000 لمحاكاة فرق الارتفاع في العالم الحقيقي ، وبعد ذلك يتم تلوين البيكسلات وفقًا لفواصل الطول
(على سبيل المثال ، القيم من 0 5 ملون بلون الرمال لمحاكاة الساحل) .
في بناء الكون ، استخدم الله الرياضيات العليا.
- بول ديراك