Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
    }