2008-10-17 8 views
6

He visto bolas bien formadas, planetas y otros objetos esféricos en un par de juegos, la última vez en un OVNI: después. Si solo salpica una textura en latitud/longitude como coordenadas u y w, obtendrá mucha distorsión de textura fea a los polos.Esferas texturizadas sin una gran distorsión

Creo que soy una forma de implementar un mapa esférico con la mínima distorsión. Al mapear en triángulos en lugar de cuadrados. Pero no conozco ningún algoritmo. ¿Cómo producir vértices y coordenadas de textura para tales esferas?

Además, no veo una manera de generar un mapa esférico completo a partir de un simple mapa cuadrado plano. ¿Hay alguna manera intuitiva de dibujar tales mapas sin problemas reales?

Sin embargo, ¿hay otros algoritmos para representar una esfera sin o con una distorsión mínima?

Ambos algoritmos de raytracing y rasterising son interesantes.

+0

ver [tesselation triángulo de la esfera por la subdivisión en C++] (http://stackoverflow.com/a/29139125/2521214) – Spektre

Respuesta

5

El hairy ball theorem establece que es imposible definir coordenadas de textura continuas en una esfera sin ningún polo que distorsione la textura.

2

Puede usar un mapa rectangular con difuminado longitudinal que aumenta cerca de los polos (desde ninguno en el ecuador hasta 60 grados al norte). En conjunción con mip-maps, esto debería erradicar algunos de los efectos que mencionas.

2

O puede usar un mapa de cubos. Esa es generalmente la forma preferida de hacer un mapeo ambiental, que es básicamente lo que estás describiendo.

1

No divida la esfera por longitud y latitud. En su lugar, use lo que se llama GeoSphere en 3Ds Max. (En realidad, un poliedro, the geodesic sphere.)

3

Lat/lon "esferas" distorsionan por definición. Si le gusta la programación, comience con un [tetraedro] (http://en.wikipedia.org/wiki/Tetrahedron Tetraedro) y subdivide tanto como sea necesario, subdividiendo cada triángulo en 4 triángulos y reposicionando los puntos medios en el radio dado desde el centro.

Si le gusta el modelado, el GeoSphere (como se mencionó anteriormente) o similar resolverá su problema.

El punto es que los triángulos tendrán una cantidad constante de distorsión que es independiente de la latitud.

También tenga en cuenta que una subdivisión de superficie (cerrada) le permitirá tener un (C)LOD con bastante facilidad.

Texturing es otra historia, pero una vez que tienes una buena esfera, tienes menos problemas.

Esperanza esta despierte su imaginación :)

Cuestiones relacionadas