Buenas, os comento. Estoy intentando extruir de un poligono 2D para hacer una malla. La extrusión funciona perfecta pero cuando le pongo un material, las UVs no se adaptan bien. A ver si alguien me puede echar una mano, me gustaria que quedase algo así : https://www.youtube.com/watch?v=kjnyijhilCo (//%5Byoutube%5Dhttps://www.youtube.com/watch?v=kjnyijhilCo%5B/youtube%5D)Y ahora mismo las UVs quedan tal que así:
public static Vector2[] GenerateUV(List<Vector3> verts)
{
Vector2[] uvs = new Vector2[verts.ToArray().Length];
for (int index = 0; index < verts.ToArray().Length; index++)
{
var v = verts[index];
uvs[index] = new Vector2(v.x, v.z).Truncate(1);
}
return uvs;
}
public static Vector2 Truncate(this Vector2 v, float lenght)
{
return v.magnitude > lenght ? v.normalized : v;
}Muchas gracias de antemano.Saludos.
creo que tienes que poner el vector y no el z.
uvs[index] = new Vector2(v.x, v.z).Truncate(1);
uvs[index] = new Vector2(v.x, v.y).Truncate(1);
Gracias por tu respuesta brok! También lo probé y lo que cambiaba es que me hacía bien las caras laterales pero las bases del prisma ahora se hacían mal, me estoy volviendo loco jeje
en Cubico (//<___base_url___>/topic/34687-asset-cubico-v%C3%B3xeles-modulares/) creo los uv dinamicamente y no es tan difícil nada más tienes que entender los conceptos básicos... pareciera que estas tratando de generar los uv a punta de formula en vez de pensar que es lo que realmente necesitas... como que fuera cuestion de pasar las normales y magnitudes y ya con eso te da la respuesta. comienza organizando las uv de un rectángulo 2d, duplicalas para la cara paralela superior, y piensa como vas a organizar las uv para las caras laterales... cuando lo logres hacer con un cubo entenderás como hacerlo con otras figuras como las que se muestran en el video, donde todos los angulos son de 90º... ah y toma en cuenta que cada cara es un grupo de vectores independiente...
El problema es que los vértices de esos modelos son aleatorios. Bueno en realidad los vértices del polígono que luego es extruido hacia arriba. Por eso no puedo tener un cálculo para un tipo, necesito algo dinámico. Pero no consigo dar con la clave . También es verdad que no llego a entender bien las UVs...
de cualquier manera las formulas no se lanzan a la loca, tienes que entender lo que estas haciendo. por ejemplo cada uv debe corresponder a cada vertice, si pierdes uno tendras un resultado extraño. tienes que separar los vertices para cada cara o tendras texturas jaloneadas como las de la imagenlo que pretendes hacer es proyectar la textura y es MUY fácil resolver eso, es el módulo de la posición del vértice en X-Z, pero creo que tienes más problemas en otros lugares, por eso mejor te dejo que los resuelvas para que entiendas bien. con una matriz ademas puedes agregar opciones para rotar y escalar la proyección... te queda de tarea!