Actualmente estoy usando 3D Perlin Noise para generar un terreno aleatorio en combinación con Marching Cubes.
Mi problema parece estar en escalar la función de ruido para obtener alturas razonables en mi terreno. Si solo se usa una octava, todos los puntos en relación con el ruido obviamente se interpolan, lo que da como resultado datos bastante uniformes. Sin embargo, para obtener voladizos / cuevas / terreno irregular, tengo que usar varias octavas con amplitudes variables y / o escalar los valores resultantes a la altura 'máxima' que quiero del mapa.
Puede que me falte algo, pero al usar cubos de marcha con ruido de perlin 3D, regularmente obtengo trozos de terreno flotantes.
¿Alguna idea sobre cómo podría corregir esto o si hay otras funciones de ruido que podría usar para obtener resultados como los que estoy describiendo? Estoy deseando colinas / valles / montañas / lagos / etc. No hay necesidad de bits flotantes segregados del resto del mapa. Creo que este es un problema similar al que tiene Minecraft cuando tiene un terreno que flota de vez en cuando en el cielo de vez en cuando.
Gracias por cualquier ayuda, Mythics
Puede que sea demasiado tarde para responder, pero estaba empezando ahora con esta generación de terreno vóxel, con Perlin Noise y encontré una manera de crear el terreno sin esas piezas flotantes. Creo que esto puede ayudarte. Entonces, para crear el terreno, primero genero un mapa de altura que leo los píxeles de ese mapa de altura. Ahora viene la parte interesante, leí el valor de "brillo" (en realidad es la escala de grises) de cada píxel en ese mapa de altura y eso me da la altura para esa parte particular del mapa, luego para crear el terreno, supongo que este mapa de altura es mi terreno se ve desde arriba, por lo que si el valor de escala de grises de un píxel (después de emparejarse con mi terreno "maxHeight") en ese mapa de altura es, digamos 30, eso significa que en ese punto específico de mi terreno solo generaré 30 vóxeles en el eje y y esto me da un terreno sin partes flotantes. Si desea cuevas, etc., puede aplicar otro ruido en el original (debajo de la superficie) para crear esas cuevas. Espero que esto funcione para usted.
fuente