Domanda

Ho visto palle, pianeti e altri oggetti sferici ben strutturati in un paio di giochi, l'ultima volta in UFO: aftermath. Se solo schizzi una trama in latitudine / longitudine come coordinate u e w otterrai una brutta distorsione della trama ai poli.

Posso pensare a me stesso in un modo per implementare una mappa sferica con una distorsione minima. Mappando in triangoli anziché in quadrati. Ma non conosco alcun algoritmo. Come produrre vertici e coordinate di trama per tali sfere?

Inoltre, non vedo un modo per generare una mappa sferica completa da una semplice mappa quadrata piatta. Esiste un modo intuitivo per disegnare tali mappe senza problemi reali?

Tuttavia, ci sono altri algoritmi per rendere una sfera senza o con una minima distorsione?

Sia gli algoritmi di raytracing che quelli di rasterizzazione sono interessanti.

È stato utile?

Soluzione

Il teorema della palla pelosa afferma che è impossibile definire coordinate di trama continue su una sfera senza alcun polo che distorca la trama.

Altri suggerimenti

Sfere Lat / lon " distorcere per definizione. Se sei interessato alla programmazione, inizia con un [tetraedro] ( http://en.wikipedia.org/ wiki / Tetrahedron Tetrahedron) e suddivisione suddividendo ogni triangolo in 4 triangoli e riposizionando i punti medi nel raggio dato dal centro.

Se ti piacciono i modelli, GeoSphere (come menzionato in precedenza) o simili risolverà il tuo problema.

Il punto è che i triangoli avranno una quantità costante di distorsione che è indipendente dalla latitudine.

Inoltre, tieni presente che una suddivisione della superficie (chiusa) ti consentirà di avere (C) LOD piuttosto facilmente.

Texturing è un'altra storia, ma una volta che hai una buona sfera hai meno problemi.

Spero che questo stimoli la tua immaginazione :)

Puoi usare una mappa rettangolare con sfocatura longitudinale che aumenta vicino ai poli (da nessuno all'equatore per dire 60 gradi nord). In combinazione con mip-maps questo dovrebbe sradicare alcuni degli effetti che stai citando.

Drew Olbrich ha escogitato un modo ingegnoso di tessellando una sfera per produrre un nonahedron . Se aumenti il ??numero di vertici, otterrai una tassellatura sferica abbastanza decente.

Oppure puoi usare una cubemap. Questo è generalmente il modo preferito per eseguire la mappatura dell'ambiente, che è fondamentalmente ciò che stai descrivendo.

Non dividere la sfera per longitudine e latitudine. Usa invece quella che viene chiamata GeoSphere in 3Ds Max. (In realtà, un poliedro, la sfera geodetica .)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top