2d Generación procesal del universo

16

Quiero crear un universo plano, donde al principio todo el universo está en blanco.

Eso estaría representado por una imagen de fondo de nebulosa de desplazamiento de paralaje.

Lo que quiero hacer es representar los planetas como objetos en forma de disco en el universo. Pueden ser de varios tamaños.

El interior de los discos consistirá en una masa de tierra, luego el exterior será un cuerpo de agua y luego ese aire.

cuál sería la mejor manera de crear esos mosaicos de manera procesal, ya que, por ejemplo, el aire consistiría en varios gases y la tierra de diversos minerales y recursos.

Mi primer pensamiento es crear imágenes de textura y luego eliminar los círculos de esas texturas, pero el problema es que esas texturas tendrían que ajustarse horizontal y verticalmente. ¿Hay una forma completamente procesal de hacer esto?

Joseph Le Brech
fuente
Preguntas como esta se responden mejor con algún tipo de visual para describir lo que buscas. La buena respuesta a continuación puede ser demasiado técnica o no lo suficientemente técnica.
Richard Fabian

Respuestas:

14

Las texturas de procedimiento, particularmente las basadas en ruido, se pueden hacer en mosaico. Vea este hilo en GDNet para alguna discusión, así como esta entrada de diario. También está este enlace , que suena interesante aunque no puedo hablar por su veracidad.

En cuanto a generar el mundo procesalmente, hay un artículo escrito por el tipo que desarrolla Infinity. Su sistema es 3D, pero probablemente podría adaptar las técnicas con la suficiente facilidad.

También hay una wiki completa sobre la generación de contenido procesal .


fuente
1
Pff. Necesito aprender a escribir más rápido. Esto es básicamente lo que tengo en la ventana del editor a continuación ... +1 para usted, señor.
bummzack
saludos lo intentaré.
Joseph Le Brech
2

Me parece que quieres texturas rectangulares con aire en la parte superior y suciedad en la parte inferior. Puede asignar texturas rectangulares a los círculos haciendo que la coordenada de textura U represente un ángulo alrededor del círculo, y la coordenada de textura V represente la distancia desde el centro del círculo. Para planetas más grandes, U puede envolverse alrededor del planeta varias veces.

Para convertir de coordenadas 2D regulares XY a las coordenadas UV anteriores, puede hacer cálculos matemáticos de la siguiente manera:

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

Se debe tener cuidado para evitar calcular esto demasiado cerca del centro de los planetas ...

bmcnett
fuente
Estoy pensando más en la línea de una sección transversal vertical del universo como esta i.imgur.com/gpCTc.jpg tierra, mar, aire, vacío. etc.
Joseph Le Brech
Esa es una forma razonable de dividir el espacio en tipos, pero será un desafío hacer que parezca planetas esféricos.
bmcnett
No hay ningún requisito para que se parezca demasiado a un planeta. solo suficiente tierra, agua, aire al azar en la proporción correcta y todo en una cuadrícula hexagonal junto con otros planetas en esa cuadrícula.
Joseph Le Brech
Ah, entonces querrás generar una gran cantidad de mosaicos de textura hexagonal, con la restricción de que el borde entre tierra / aire, etc. se muestre en un lugar predecible entre los mosaicos adyacentes.
bmcnett
Sí, de manera esférica. entonces el tamaño de cada capa (tierra, agua ...) se elige al azar y luego en esa masa de tierra se colocarán baldosas de tierra al azar para el planeta, y lo mismo para cada capa.
Joseph Le Brech