mirror of
https://github.com/maxartz15/VertexAnimation.git
synced 2024-12-05 01:30: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())
|
if (EditorGUI.EndChangeCheck())
|
||||||
{
|
{
|
||||||
Debug.Log(value);
|
|
||||||
SetKeyword("USE_INTERPOLATION_ON", value);
|
SetKeyword("USE_INTERPOLATION_ON", value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
bool value = mat.IsKeywordEnabled("USE_NORMALA_ON");
|
bool value = mat.IsKeywordEnabled("USE_NORMALA_ON");
|
||||||
MaterialProperty useNormalA = FindProperty("USE_NORMALA", properties);
|
MaterialProperty useNormalA = FindProperty("USE_NORMALA", properties);
|
||||||
@ -148,7 +146,6 @@ namespace TAO.VertexAnimation.Editor
|
|||||||
|
|
||||||
if (EditorGUI.EndChangeCheck())
|
if (EditorGUI.EndChangeCheck())
|
||||||
{
|
{
|
||||||
Debug.Log(value);
|
|
||||||
SetKeyword("VA_FLIP_UVS_ON", value);
|
SetKeyword("VA_FLIP_UVS_ON", value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -113,6 +113,7 @@ namespace TAO.VertexAnimation.Editor
|
|||||||
|
|
||||||
foreach (var m in meshes)
|
foreach (var m in meshes)
|
||||||
{
|
{
|
||||||
|
m.Finalize();
|
||||||
AssetDatabase.AddObjectToAsset(m, this);
|
AssetDatabase.AddObjectToAsset(m, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,40 +142,20 @@ namespace TAO.VertexAnimation.Editor
|
|||||||
path = path.Remove(start, path.Length - start);
|
path = path.Remove(start, path.Length - start);
|
||||||
path += "/" + name + ".prefab";
|
path += "/" + name + ".prefab";
|
||||||
|
|
||||||
|
// Get info.
|
||||||
|
NamingConventionUtils.PositionMapInfo info = bakedData.GetPositionMap.name.GetTextureInfo();
|
||||||
|
|
||||||
// Generate Material
|
// Generate Material
|
||||||
if (!AssetDatabaseUtils.HasChildAsset(this, 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);
|
AssetDatabase.AddObjectToAsset(material, this);
|
||||||
}
|
}
|
||||||
else
|
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
|
// Generate Prefab
|
||||||
prefab = AnimationPrefab.Create(path, name, meshes, material, lodSettings.GetTransitionSettings());
|
prefab = AnimationPrefab.Create(path, name, meshes, material, lodSettings.GetTransitionSettings());
|
||||||
}
|
}
|
||||||
|
@ -14,5 +14,45 @@ namespace TAO.VertexAnimation
|
|||||||
|
|
||||||
return material;
|
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
|
public static class MeshUtils
|
||||||
{
|
{
|
||||||
|
// Copy a mesh and it's properties.
|
||||||
public static Mesh Copy(this Mesh mesh)
|
public static Mesh Copy(this Mesh mesh)
|
||||||
{
|
{
|
||||||
Mesh copy = new Mesh
|
Mesh copy = new Mesh
|
||||||
@ -29,5 +30,12 @@ namespace TAO.VertexAnimation
|
|||||||
|
|
||||||
return copy;
|
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