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:
max 2021-02-17 00:49:03 +01:00
parent a8ffefa9d6
commit 3c14c98cf9
4 changed files with 54 additions and 28 deletions

View File

@ -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);
}
}

View File

@ -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());
}

View File

@ -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");
}
}
}
}

View File

@ -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);
}
}
}