Pregunta

He logrado implementar el algoritmo de Cubes Marching en C#. Hasta ahora he probado el algoritmo para representar una esfera. Esa es fácil porque la función de densidad no es muy compleja para codificar.

Pero ahora quiero que el algoritmo vaya más allá y represente algunos terrenos interesantes para los juegos. Por lo tanto, necesitaría funciones de densidad adecuadas para esta tarea. Lo primero que me llega a la cabeza es un ruido volumétrico de Perlin. Está bien, pero estoy buscando un terreno sin formas convexas, quiero decir, sin cuevas y geometrías similares por el momento.

Ok, sé que para eso un mapa de altura simple puede hacer el trabajo, pero quiero un terreno generado por vóxel. ¿Qué tipo de función de densidad o pseudocódigo necesitaría para implementarlos?

¿Fue útil?

Solución

Puede convertir fácilmente un mapa de altura en terreno voxel. Cada píxel en su mapa de altura corresponde a una columna de vóxeles en su mundo de voxel. Para un píxel dado en el mapa de altura, lea la altura. Luego, itera sobre cada vóxel en la columna correspondiente y configúrelo en 'sólido' si es menor que su altura de referencia o 'vacía' si es más que su altura de referencia.

Aquí hay algunos Código de muestra utilizando el Polyvox biblioteca.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top