70. CLASE MESH (y II)
FUNCIONES:
Mesh:
static function Mesh () : Mesh
Crea una malla vacía.
Clear:
function Clear () : void
Limpia todos los datos de los vértices y todos los índices de los triángulos. Debes llamar esta función antes de reconstruir el array de triángulos.
RecalculateBounds:
function RecalculateBounds () : void
Recalcula el volumen de bordes de la malla desde los vértices. Después de modificar los vértices debes llamar a esta función para asegurarte de que el volumen de bordes es correcto. Asignando triángulos automáticamente se recalcula el volumen de bordes.
RecalculateNormals:
function RecalculateNormals () : void
Recalcula los normales de la malla desde los triángulos y vértices. Después de modificar los vértices es a menudo útil actualizar los normales para reflejar el cambio. Los normales son calculados desde todos los vértices compartidos. Las mallas importadas a veces no comparten todos los vértices. Por ejemplo un vértice en una costura UV se partirá en dos vértices. En consecuencia la función RecalculateNormals creará normales que no son lisos en las costuras Uv. Notemos también que RecalculateNormals no genera tangentes automáticamente, asi que los bumpmap shaders no trabajarán con la malla después de llamar a esta función. Nosotros podemos sin embargo proveer nuestras propias tangentes.
Optimize:
function Optimize () : void
Optimiza la malla para mostrarla. Esta operación podría tomar un rato pero hace que la geometría se muestre más rápido. Debes usarla si generas una malla desde cero procedimentalmente y quieres un mayo rendimiento en tiempo de ejecución en lugar de un mayor tiempo de carga. Para modelos importados no debes nunca llamarla porque el import pipeline ya lo hace por ti.
GetTriangles:
function GetTriangles (submesh : int) : int[]
Devuelve la lista de triángulos de la submalla. Una submalla es simplemente una lista de triángulos separada. Cuando el mesh renderer usa múltiples materiales, debes asegurarte de que hay tantas submallas como materiales.
SetTriangles:
function SetTriangles (triangles : int[], submesh : int) : void
Establece la lista de triángulos para la submalla.
Es recomentable asignar el array de triángulos después de asignar el array de vértices para evitar el error de fuera de bordes.
CombineMeshes:
function CombineMeshes (combine : CombineInstance[], mergeSubMeshes : boolean = true, useMatrices : boolean = true) : void
Combina varias mallas dentro de la malla. Combinar mallas es útil para optimización de rendimiento. Si mergeSubMeshes es true, todas las mallas serán combinadas en una única submalla. En caso contrario cada malla irá dentro de una submalla diferente. Si todas las mallas comparten el mismo material, coloca esto a true. Si useMatrices es false, el transform matrices en la estructura CombineInstance será ignorado.
69. CLASE MESH (I)

Esta clase permite crear o modificar mallas desde scripts.
Las mallas contienen vértices y múltiples arrays de triángulos. Los arrays de triángulos son meramente índices dentro del array de vértices, tres índices para cada triángulo.
Para cada vértice puede haber un normal, dos coordenadas de texturas, color y tangentes. Toda la información de los vértices es almacenada en arrays separados del mismo tamaño, así que si tu malla tiene 10 vértices, debe tener tambíen arrays de 10 de tamaño para normales y otros atributos.
VARIABLES:
vertices:
var vertices : Vector3[]
Devuelve una copia de la posición del vértice o asigna un nuevo array de posiciones de vértices.
El número de vértices en la malla es cambiado asignando un array de vértices con un diferente número de vértices. Debemos tener en cuenta que si redimensionamos el array de vértices entonces todos los otros atributos (normales, colores, tangentes, Uvs) serán automáticamente redimensionados también. RecalculateBounds automáticamente será invocado si no se han asignado vértices a la malla cuando se establecieron los vértices.
normals:
var normals : Vector3[]
Los normales de la malla. Si la malla no contiene normales un array vacío es retornado.
tangents:
var tangents : Vector4[]
Las tangentes de la malla.
Las tangentes son mayormente usadas en bump-mapped shaders. Una tangente es un vector de una unidad de longitud que sigue la malla a lo largo de la dirección de textura horizontal. Las tangentes en Unity son representadas como Vector4 con componentes x,y,z definiendo el vector, y w usada para dar la vuelta a la binormal si es necesario.
Unity calcula los otros vectores de supervicie (binormal) tomando un producto cruzado entre normal y tangente y multiplicando el resultado por la tangente w. Así w debe ser siempre 1 o -1.
Debes calcular tangentes por ti mismo si planeas usar bump-mapped shaders en la malla. Asigna tangentes después de asignar normals o usando RecalculateNormals.
uv:
var uv : Vector2[]
Las coordenadas de la textura base de la malla.
rv2:
var uv2 : Vector2[]
El segundo conjunto de coordenadadas de textura de la malla, si lo hubiere.
bounds:
var bounds : Bounds
El volumen de bordes de la malla. Esto es la caja de bordes alineadas en el eje de la malla en el espacio local (esto es, no afectada por el transform). Existe por otro lado la propiedad Renderer.bounds que retorna los bordes en espacio global.
colors:
var colors : Color[]
Devuelve los colores del vértice de la malla. Si no hay colores devuelve un array vacío.
triangles:
var triangles : int[]
Un array conteniendo todos los triángulos de la malla. El array es una lista de triángulos que contiene índices dentro del array de vértices. El tamaño del array de triángulos debe siempre ser múltiplo de 3. Los vértices pueden ser compartidos meramente indexando dentro del mismo vértice. Si la malla contiene múltiples sub mallas (materiales) la lista de triángulos contendrá todos los triángulos de todas las submallas. Cuando asignas un array de triángulos, subMeshCount es colocado a 1. Si quieres tener múltiples submallas, usa subMeshCount y SetTriangles.
Es recomendable asignar el array de triángulos después de asignar el array de vértices para evitar errores de fuera de límite (out of bounds)
vertexCount:
var vertexCount : int
Variable de sólo lectura que devuelve el número de vértices en la malla.
subMeshCount:
var subMeshCount : int
El número de submallas. Cada material tiene una lista de triángulos separada.
boneWeights:
var boneWeights : BoneWeight[]
La pintura de pesos de cada vértice. El tamaño del array es o el mismo que vertexCount o vacío.
Cada vértice puede ser afectado por un máximo de 4 diferentes huesos. Las cuatro pinturas de peso deben sumar hasta 1.
Con la tecnología de Blogger.
BUSCADOR
PÁSATE POR EL FORO
API DE UNITY
TEMAS
- 00_INTRODUCCION (3)
- 01_CLASE OBJECT (3)
- 02_ESTRUCTURA VECTOR3 (4)
- 03_CLASE TRANSFORM (7)
- 04_CLASE RIGIDBODY (8)
- 05_CLASE COLLIDER (2)
- 06_CLASE MESHCOLLIDER (1)
- 07_CLASE CHARACTERCONTROLLER (3)
- 08_CLASE RENDERER (2)
- 09_CLASE MESHFILTER (1)
- 10_CLASE JOINT (2)
- 11_CLASE HINGEJOINT (2)
- 12_CLASE SPRINGJOINT (1)
- 13_CLASE CHARACTERJOINT (1)
- 14_CLASE BEHAVIOUR (1)
- 15_CLASE MONOBEHAVIOUR (9)
- 16_CLASE CAMERA (6)
- 17_CLASE LIGHT (3)
- 18_CLASE MATERIAL (3)
- 19_CLASE CUBEMAP (1)
- 20_CLASE RENDERTEXTURE (3)
- 21_CLASE PARTICLEEMITTER (3)
- 22_CLASE MESH (2)
- 23_CLASE GAMEOBJECT (6)
- 24_CLASE SHADER (1)
- 25_CLASE PHYSICMATERIAL (1)
- 26_CLASE COMPONENT (1)
- 27_CLASE GUIELEMENT (1)
- 28_CLASE GUITEXT (2)
- 29_CLASE GUITEXTURE (1)
- 30_CLASE GUI (8)
- 31_CLASE GUILAYOUT (4)
- 32_CLASE TEXTURE (1)
- 33_CLASE TEXTURE2D (2)
- 34_CLASE INPUT (4)
- 35_ESTRUCTURA BOUNDS (1)
- 36_CLASE COLLISION (1)
- 37_CLASE CONTROLLERCOLLIDERHIT (1)
- 38_CLASE DEBUG (1)
- 39_CLASE EVENT (3)
- 40_CLASE GIZMOS (1)
- 41_CLASE LIGHTMAPSETTINGS (1)
- 42_ESTRUCTURA MATHF (3)
- 43_CLASE PHYSICS (2)
- 44_ESTRUCTURA QUATERNION (1)
- 45_CLASE RANDOM (1)
- 46_ESTRUCTURA RAY (1)
- 47_ESTRUCTURA RAYCASTHIT (1)
- 48_ESTRUCTURA RECT (1)
- 49_CLASE RENDERSETTINGS (1)
- 50_CLASE SCREEN (1)
- 51_CLASE TIME (1)
- 52. CLASE YIELDINSTRUCTION (1)
- MONOGRAFICOS (2)
