Come rappresentare le scogliere nel terreno?


12

Sto cercando di capire il modo migliore per rappresentare a livello di programmazione il terreno nel mio gioco. Ho preso in considerazione l'utilizzo di una heightmap (o griglia di vertici equidistanti) per rappresentare la superficie del terreno e una splatmap per consentire una texture uniforme. Funzionerebbe per terreni totalmente lisci, ma il problema è come rappresentare le scogliere e le pareti affilate.

Le scogliere stesse dovrebbero essere rese in modo diverso rispetto al resto del terreno. Ad esempio, avrebbero bisogno di avere una trama diversa (non allungata) visibile sulla parte anteriore della scogliera, ma se avessi usato la splatmap per questo, sarebbe impossibile avere una parete rocciosa abbastanza pura dove la trama della scogliera è totalmente separato dal suolo.

Un'immagine dice più di mille parole quindi ...

inserisci qui la descrizione dell'immagine

Quali sono alcuni modi generali per conservare e / o rendere le scogliere e altre forti differenze di altezza del terreno?


4
Noterai che pochissimi giochi hanno scogliere veramente verticali, tutte inclinate da almeno un'unità della griglia dall'alto verso il basso. Il rendering può essere eseguito con shader di mappe splat che tengono conto di quella pendenza e traggono da una trama a parete laterale. I blocchi come nella tua immagine vengono rilasciati come geometria nella parte superiore della mappa di altezza per dare sapore locale.
Patrick Hughes,

Risposte:


7

Quell'immagine sembra che stiano usando un sostegno extra per creare la scogliera. Se vuoi usare una mappa ad altezza normale per rappresentare il tuo terreno, questa è praticamente l'unica soluzione. La buona notizia è che è comunemente usata e funziona bene. La soluzione più semplice (dal punto di vista della programmazione) è semplicemente posizionare oggetti di scena aggiuntivi, se necessario, nell'editor di livello. Se vuoi divertirti, puoi avere uno strumento che seleziona automaticamente da una serie di oggetti di scena e modella il terreno da abbinare.

Potresti fornire una funzione per estrudere le facce sulla mappa di altezza, che ti darà perfette facce verticali con solo un po 'di complicazioni extra, ma non è probabile che appaiano molto bene e probabilmente richiederà il posizionamento di qualche decorazione extra per coprire il bordo duro.

L'ultima opzione sarebbe quella di rinunciare a una mappa di altezza tutta insieme e rendere il tuo terreno un pezzo di geometria completa, ma poi perdi la bella semplicità di una mappa di altezza.

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.