صنع القمر الإجرائي

صورة

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

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


الكرة الجيوديسية

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


الضوضاء مسح المجال

بدءا من هذا الأساس ، يستخدم النظام سلسلة من الأصداف متحدة المركز. تحدد كل خلية الخصائص الحجمية للقذيفة متحدة المركز التالية. القشرة الخارجية تحدد خصائص سطح القمر.


قذيفة متحدة المركز

قد يتم تشويه كل الكسوة بالضوضاء ثلاثية التردد المنخفضة الفريدة لهذا الكسوة. إذا اخترت خيار التوليد هذا ، فمن المحتمل أن يكون الغلاف الداخلي أكبر من الغلاف الخارجي.


شل تشويه

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

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

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

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


مثال Biome

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


الحفرة الكبيرة المسجلة في معلومات المناطق الأحيائية

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


حالات الصخور

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

يستخدم النظام نوعين من بلاط البيوم: انتقالي ومعزول.

تحدث المعلومات الانتقالية عن المناطق الأحيائية في المناطق التي يمر فيها biome إلى biome المجاور. تحدث معلومات المناطق الأحيائية المعزولة في المناطق التي يضمن النظام فيها عدم وجود المناطق الأحيائية المجاورة.

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

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


القمر مع ثلاثة مناطق حيوية

المناطق ذات المناطق الأحيائية المعزولة لها لون موحد ؛ في المناطق ذات المناطق الأحيائية الانتقالية ، تختلط الألوان.

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


الضوضاء الإجرائية المطبقة على التحولات بين المناطق الأحيائية

في الصور أعلاه ، يتم المبالغة في حجم كل جزء من أجزاء الكتلة الحيوية بالنسبة لحجم القمر ، من أجل إظهار تقنية إنشاء المناطق الأحيائية بشكل أوضح. وسيغطي موقع biome منفصل مساحة حوالي 10 في 10 كم. تبلغ مساحة سطح القمر الذي يبلغ قطره 1500 كيلومتر مساحة 30،000،000 كم 2 . لتغطية هذا السطح يتطلب ما يقرب من 300000 مثل هذه المناطق.


قرار شبكة biome للقمر مع دائرة نصف قطرها 1500 كم

يمكن أن يؤدي حل شبكة biome إلى عدد كبير جدًا من مواقع biome. لن يقوم النظام بتتبع كل واحد منهم على حدة ، لأنه يمكن حساب موقع كل موقع بشكل تحليلي. يمكن تعيين biome لمعظم المواقع من خريطة biome رفيعة المستوى.

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

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


خريطة ثنائية الأبعاد ثنائية الأبعاد

تُظهر الصورة أعلاه خريطة تحتوي على أربعة أنواع مختلفة من المناطق الأحيائية (الأزرق والأحمر والأصفر والأبيض). يتم تثبيت الصورة على الكرة باستخدام المعلمة ثنائية الأبعاد. يظهر أحد المعلمات المحتملة أدناه:


معلمات 2D لخريطة معرف biome

بالإضافة إلى خريطة معرّف biome ، يسمح النظام باستخدام خرائط أخرى ، على سبيل المثال ، تحتوي على ارتفاعات وألوان سطحية.


لمسافات طويلة الظل القمر وتقديم

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

توضح الصورة أدناه عملية توليد ارتفاع سطح الغمد وغيرها من الخصائص:


ثلاثة مقاييس تستخدم لبناء القمر

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

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

يعتبر النظام أن الهواء مادة مقبولة ، لذلك يمكن استخدامه لإنشاء تجاويف في أي غلاف.


مقطع عرضي من ارتياح القمر ، والذي تظهر فيه قذائف مختلفة

يمكن أن يكون الغلاف المنفصل أيضًا كائنًا حجميًا ، يتم تعيين عمقه بواسطة مجموعة من المواد. يتم تخزين معلومات المكدس في منطقة حيوية.


كومة من المواد تتكون من ستة مواد

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

قد تكون وظيفة رصة المواد كافية للتخطيط ، لأن بعض المواد في رصة يمكن أن تكون نادرة للغاية. يمكن لمصمم biome تخصيص مدى انتشار ونمط أي مادة في المجموعة.

يتم إجراء التوليد الإجرائي بواسطة تظليل GPU وخوارزميات وحدة المعالجة المركزية voxel.

يحسب التظليل لون الجزء لكل مقياس من المقاييس الثلاثة ويخلط هذه العينات حسب المسافة بين الكاميرا والجزء.

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

يجب عليك دفع ثمن ذلك ، طالما كان القمر مرئيًا في الكاميرا ، فيجب تخزين خرائط المناطق الأحيائية وعالية الدقة في وحدة معالجة الرسومات. يمكنك استخدام التحميل الانتقائي فقط لأنسجة mip الضرورية لعرض المقياس الحالي للقمر. يتم تقليل المبلغ الإجمالي لذاكرة GPU المطلوبة إلى الحد الأدنى بسبب تدفق التحميل والتفريغ من GPU عند تغيير وضع المراقب.

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

Source: https://habr.com/ru/post/ar468305/


All Articles