public override Material CloneMaterial(Material src, int nth) { Material m = new Material(src); m.SetInt("g_batch_begin", nth * m_instances_par_batch); m.SetBuffer("particles", m_world.GetParticleBuffer()); m.SetBuffer("params", m_buf_trail_params); m.SetBuffer("vertices", m_buf_trail_vertices); // fix rendering order for transparent objects if (m.renderQueue >= 3000) { m.renderQueue = m.renderQueue + (nth + 1); } return(m); }
public override Material CloneMaterial(Material src, int nth) { Material m = new Material(src); m.SetInt("g_batch_begin", nth * m_instances_par_batch); m.SetBuffer("particles", m_world.GetParticleBuffer()); if (m_hdr) { m.SetInt("_SrcBlend", (int)BlendMode.One); m.SetInt("_DstBlend", (int)BlendMode.One); } else { m.SetInt("_SrcBlend", (int)BlendMode.DstColor); m.SetInt("_DstBlend", (int)BlendMode.Zero); } if (m_enable_shadow) { m.EnableKeyword("ENABLE_SHADOW"); switch (m_sample) { case Sample.Fast: m.EnableKeyword("QUALITY_FAST"); m.DisableKeyword("QUALITY_MEDIUM"); m.DisableKeyword("QUALITY_HIGH"); break; case Sample.Medium: m.DisableKeyword("QUALITY_FAST"); m.EnableKeyword("QUALITY_MEDIUM"); m.DisableKeyword("QUALITY_HIGH"); break; case Sample.High: m.DisableKeyword("QUALITY_FAST"); m.DisableKeyword("QUALITY_MEDIUM"); m.EnableKeyword("QUALITY_HIGH"); break; } } else { m.DisableKeyword("ENABLE_SHADOW"); } return(m); }