mirror of
https://github.com/maxartz15/VertexAnimation.git
synced 2024-12-04 17:20:44 +01:00
Update VA_ModelBaker.cs
Removed LitGUI debug logs. Updated VA_ModelBaker material creation and setting update. Added mesh finalize function to optimize and upload the mesh data.
This commit is contained in:
parent
a8ffefa9d6
commit
3c14c98cf9
@ -116,12 +116,10 @@ namespace TAO.VertexAnimation.Editor
|
||||
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
Debug.Log(value);
|
||||
SetKeyword("USE_INTERPOLATION_ON", value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
bool value = mat.IsKeywordEnabled("USE_NORMALA_ON");
|
||||
MaterialProperty useNormalA = FindProperty("USE_NORMALA", properties);
|
||||
@ -148,7 +146,6 @@ namespace TAO.VertexAnimation.Editor
|
||||
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
Debug.Log(value);
|
||||
SetKeyword("VA_FLIP_UVS_ON", value);
|
||||
}
|
||||
}
|
||||
|
@ -113,6 +113,7 @@ namespace TAO.VertexAnimation.Editor
|
||||
|
||||
foreach (var m in meshes)
|
||||
{
|
||||
m.Finalize();
|
||||
AssetDatabase.AddObjectToAsset(m, this);
|
||||
}
|
||||
|
||||
@ -141,40 +142,20 @@ namespace TAO.VertexAnimation.Editor
|
||||
path = path.Remove(start, path.Length - start);
|
||||
path += "/" + name + ".prefab";
|
||||
|
||||
// Get info.
|
||||
NamingConventionUtils.PositionMapInfo info = bakedData.GetPositionMap.name.GetTextureInfo();
|
||||
|
||||
// Generate Material
|
||||
if (!AssetDatabaseUtils.HasChildAsset(this, material))
|
||||
{
|
||||
material = AnimationMaterial.Create(name, materialShader);
|
||||
material = AnimationMaterial.Create(name, materialShader, positionMap, useNormalA, useInterpolation, info.maxFrames);
|
||||
AssetDatabase.AddObjectToAsset(material, this);
|
||||
}
|
||||
else
|
||||
{
|
||||
material.shader = materialShader;
|
||||
material.Update(name, materialShader, positionMap, useNormalA, useInterpolation, info.maxFrames);
|
||||
}
|
||||
|
||||
material.SetTexture("_PositionMap", positionMap);
|
||||
material.SetInt("_MaxFrames", bakedData.maxFrames);
|
||||
|
||||
if (useNormalA)
|
||||
{
|
||||
material.EnableKeyword("USE_NORMALA_ON");
|
||||
}
|
||||
else
|
||||
{
|
||||
material.DisableKeyword("USE_NORMALA_ON");
|
||||
}
|
||||
|
||||
if(useInterpolation)
|
||||
{
|
||||
material.EnableKeyword("USE_INTERPOLATION_ON");
|
||||
}
|
||||
else
|
||||
{
|
||||
material.DisableKeyword("USE_INTERPOLATION_ON");
|
||||
}
|
||||
|
||||
material.enableInstancing = true;
|
||||
|
||||
// Generate Prefab
|
||||
prefab = AnimationPrefab.Create(path, name, meshes, material, lodSettings.GetTransitionSettings());
|
||||
}
|
||||
|
@ -14,5 +14,45 @@ namespace TAO.VertexAnimation
|
||||
|
||||
return material;
|
||||
}
|
||||
|
||||
public static Material Create(string name, Shader shader, Texture2DArray positionMap, bool useNormalA, bool useInterpolation, int maxFrames)
|
||||
{
|
||||
Material material = Create(name, shader);
|
||||
|
||||
material.Update(name, shader, positionMap, useNormalA, useInterpolation, maxFrames);
|
||||
|
||||
return material;
|
||||
}
|
||||
|
||||
public static void Update(this Material material, string name, Shader shader, Texture2DArray positionMap, bool useNormalA, bool useInterpolation, int maxFrames)
|
||||
{
|
||||
material.name = name;
|
||||
|
||||
if (material.shader != shader)
|
||||
{
|
||||
material.shader = shader;
|
||||
}
|
||||
|
||||
material.SetTexture("_PositionMap", positionMap);
|
||||
material.SetInt("_MaxFrames", maxFrames);
|
||||
|
||||
if (useNormalA)
|
||||
{
|
||||
material.EnableKeyword("USE_NORMALA_ON");
|
||||
}
|
||||
else
|
||||
{
|
||||
material.DisableKeyword("USE_NORMALA_ON");
|
||||
}
|
||||
|
||||
if (useInterpolation)
|
||||
{
|
||||
material.EnableKeyword("USE_INTERPOLATION_ON");
|
||||
}
|
||||
else
|
||||
{
|
||||
material.DisableKeyword("USE_INTERPOLATION_ON");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -4,6 +4,7 @@ namespace TAO.VertexAnimation
|
||||
{
|
||||
public static class MeshUtils
|
||||
{
|
||||
// Copy a mesh and it's properties.
|
||||
public static Mesh Copy(this Mesh mesh)
|
||||
{
|
||||
Mesh copy = new Mesh
|
||||
@ -29,5 +30,12 @@ namespace TAO.VertexAnimation
|
||||
|
||||
return copy;
|
||||
}
|
||||
|
||||
// Optimize the mesh and upload the mesh data, makes the mesh no longer readable.
|
||||
public static void Finalize(this Mesh mesh)
|
||||
{
|
||||
mesh.Optimize();
|
||||
mesh.UploadMeshData(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user