2d покоління процесуального всесвіту


16

Я хочу створити плоску Всесвіт, де спочатку весь Всесвіт порожній.

Це було б представлено фоновим зображенням туманності прокрутки паралакса.

Що я хочу зробити, це представити планети як дискові предмети у Всесвіті. Вони можуть бути різного розміру.

Внутрішня частина дисків буде складатися з сухопутної маси, потім зовні буде водойма, а після цього повітря.

що було б найкращим способом створити цю плитку процедурно, як, наприклад, повітря складається з різних газів і землі різних корисних копалин і ресурсів.

Перша моя думка - створити текстурні зображення, а потім викреслити кола з цих текстур, але проблема полягає в тому, що ці текстури повинні були обернутись горизонтально і вертикально. Чи існує цілком процедурний спосіб зробити це?


На такі питання краще відповісти якось наочно, щоб описати, що ви хочете. Хороша відповідь нижче може бути або занадто технічною, або недостатньо технічною.
— Річард Фабіан

Відповіді:


14

Процедурні текстури, особливо на основі шуму, можна виготовити для плитки. Дивіться цю тему в GDNet для деякої дискусії, а також цей запис у журналі. Є також це посилання , яке звучить цікаво, хоча я не можу говорити за його правдивість.

Що стосується процедурного покоління світу, то тут є ця стаття, написана хлопцем, що розвиває Infinity. Його система є 3D, але ви, ймовірно, можете досить легко адаптувати методи.

Існує ціла вікі щодо генерації процедурного вмісту .


1
Пфф. Мені потрібно навчитися вводити швидше. Це в основному те, що я маю у вікні редактора нижче ... +1 вам, сер.
— bummzack

ура, я підкажу.
— Джозеф Ле Брех

2

Мені це здається, що ви хочете прямокутні текстури з повітрям зверху і брудом знизу. Ви можете зіставити прямокутні текстури до кіл, зробивши координату текстури U, що представляє кут навколо кола, а V текстуру координати представляють відстань від центру кола. Для великих планет U може обернутися навколо планети кілька разів.

Щоб перетворити з звичайних 2D координат XY на вищезгадані УФ-координати, ви можете робити математику так:

y -= planet_center.y;
x -= planet_center.x;
u = atan2( y, x );
v = sqrt( y*y + x*x );

Слід бути обережним, щоб не обчислювати це занадто близько до центру планет ...


Я більше розмірковую по лінії вертикального перерізу Всесвіту, як цей i.imgur.com/gpCTc.jpg земля, море, повітря, порожнеча. тощо ..
— Джозеф Ле Бреч

Це розумний спосіб розділити простір на типи, але це буде завдання зробити його схожим на сферичні планети.
— bmcnett

немає жодної вимоги, щоб він виглядав занадто схожим на планету. достатньо лише випадкової землі, води, повітря в потрібній пропорції і все на шестигранній сітці разом з іншими планетами в цій сітці.
— Джозеф Ле Брех

Ага, тоді ви хочете створити багато шестикутної текстури плитки, з тим обмеженням, що край між землею / повітрям тощо відображається в передбачуваному місці між сусідніми плитками?
— bmcnett

так, сферичним чином. тож розмір кожного шару (земля, вода ..) вибирається випадковим чином, і тоді в цій масі буде розміщена випадкова плитка землі для планети, однакова для кожного шару.
— Джозеф Ле Брех
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.