2d Generazione di universi procedurali


16

Voglio creare un universo piatto, dove inizialmente l'intero universo è vuoto.

Ciò sarebbe rappresentato da un'immagine di sfondo della nebulosa a scorrimento di parallasse.

Quello che voglio fare è rappresentare i pianeti come oggetti a forma di disco nell'universo. Possono essere di varie dimensioni.

L'interno dei dischi sarà costituito da una massa terrestre, quindi all'esterno sarà uno specchio d'acqua e successivamente quell'aria.

quale sarebbe il modo migliore per creare quelle piastrelle proceduralmente come ad esempio l'aria sarebbe costituita da vari gas e la terra di vari minerali e risorse.

Il mio primo pensiero è quello di creare immagini di trama e quindi eliminare i cerchi da quelle trame, ma il problema è che quelle trame dovrebbero avvolgere orizzontalmente e verticalmente. Esiste un modo completamente procedurale per farlo?


Domande come questa hanno una risposta migliore con una sorta di immagine per descrivere ciò che stai cercando. La buona risposta di seguito potrebbe essere troppo tecnica o non abbastanza tecnica.
Richard Fabian,

Risposte:


14

Le trame procedurali, in particolare quelle basate sul rumore, possono essere fatte su piastrelle. Vedi questa discussione su GDNet per qualche discussione, così come questa voce di diario. C'è anche questo link , che sembra interessante anche se non posso parlare per la sua veridicità.

Per quanto riguarda la generazione procedurale del mondo, c'è questo articolo scritto dal ragazzo che sta sviluppando Infinity. Il suo sistema è 3D ma probabilmente potresti adattare le tecniche abbastanza facilmente.

C'è anche un'intera wiki sulla generazione di contenuti procedurali .


1
TFP. Devo imparare a digitare più velocemente. Questo è fondamentalmente quello che ho nella finestra dell'editor in basso ... +1 a te Signore.
Bummzack,

Saluti, ci proverò.
Joseph Le Brech,

2

Mi sembra che tu voglia trame rettangolari con aria nella parte superiore e sporcizia nella parte inferiore. È possibile mappare trame rettangolari ai cerchi facendo in modo che le coordinate della trama U rappresentino l'angolo attorno al cerchio e le coordinate della trama V rappresentino la distanza dal centro del cerchio. Per pianeti più grandi, U può avvolgere il pianeta più volte.

Per convertire da normali coordinate 2D XY alle coordinate UV sopra, puoi fare la matematica in questo modo:

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

Bisogna fare attenzione per evitare di calcolarlo troppo vicino al centro dei pianeti ...


Sto pensando più lungo la linea di una sezione trasversale verticale dell'universo come questa i.imgur.com/gpCTc.jpg terra, mare, aria, vuoto. ecc.
Joseph Le Brech,

È un modo ragionevole di suddividere lo spazio in tipi, ma sarà una sfida farlo sembrare pianeti sferici.
bmcnett,

non c'è alcun requisito per farlo sembrare troppo simile a un pianeta. appena abbastanza terra, acqua, aria casuali nella giusta proporzione e tutto su una griglia esadecimale insieme ad altri pianeti su quella griglia.
Joseph Le Brech,

Ah, allora vorrai generare molte tessere a trama esagonale, con il vincolo che il bordo tra terra / aria ecc. Si presenti in un punto prevedibile tra tessere adiacenti?
bmcnett,

si, in modo sferico. così la dimensione di ogni strato (terra, acqua ...) viene scelta casualmente e quindi in quella terra le tessere terra casuali verranno posizionate per il pianeta, e lo stesso per ogni strato.
Joseph Le Brech,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.