Beispiel #1
0
 private Material RestoreRenderMaterial(Material material,
                                        string name,
                                        agxCollide.RenderMaterial nativeMaterial)
 {
     return(FileInfo.ObjectDb.GetOrCreateAsset(material,
                                               Shader.Find("Standard") ?? Shader.Find("Diffuse"),
                                               name,
                                               m => RestoreLocalDataFrom(m, nativeMaterial)));
 }
Beispiel #2
0
        private static void RestoreLocalDataFrom(Material thisMaterial, agxCollide.RenderMaterial nativeMaterial)
        {
            if (nativeMaterial.hasDiffuseColor())
            {
                var color = nativeMaterial.getDiffuseColor().ToColor();
                color.a = 1.0f - nativeMaterial.getTransparency();

                thisMaterial.SetVector("_Color", color);
            }
            if (nativeMaterial.hasEmissiveColor())
            {
                thisMaterial.SetVector("_EmissionColor", nativeMaterial.getEmissiveColor().ToColor());
            }

            thisMaterial.SetFloat("_Metallic", 0.3f);
            thisMaterial.SetFloat("_Glossiness", 0.8f);

            if (nativeMaterial.getTransparency() > 0.0f)
            {
                thisMaterial.SetBlendMode(BlendMode.Transparent);
            }
        }