Exemplo n.º 1
0
    public static void Refresh(float density, int LOD_level)
    {
        if (Self == null)
        {
            //Debug.LogError("The Grass System is not initialized");
            return;
        }

        bool refresh_desity = true;

        if (_self.scene.evniAsset.Density < density + 0.01f &&
            _self.scene.evniAsset.Density > density - 0.01f)
        {
            refresh_desity = false;
        }

        ELodType new_lod = (ELodType)Mathf.Clamp(LOD_level, (int)ELodType.LOD_1_TYPE_1, (int)ELodType.LOD_4_TYPE_1);

        if (_self.scene.evniAsset.LODType == new_lod && !refresh_desity)
        {
            return;
        }

        _self.scene.evniAsset.SetDensity(density);

        if (_self.scene.dataIO as PeGrassDataIO_Story != null)
        {
            _self.scene.evniAsset.SetLODType(new_lod);

            _self.scene.evniAsset.LODDensities = new float[_self.scene.evniAsset.MaxLOD + 1];
            for (int i = 0; i < _self.scene.evniAsset.MaxLOD + 1; i++)
            {
                if (i == 0)
                {
                    _self.scene.evniAsset.LODDensities[i] = 1;
                }
                else
                {
                    _self.scene.evniAsset.LODDensities[i] = 0.4f / (1 << (i - 1));
                }
            }
        }
        else
        {
            _self.scene.evniAsset.SetLODType(new_lod);
        }

        _self.scene.RefreshImmediately();
    }
Exemplo n.º 2
0
        public string GetLodTypeDesc(ELodType lod)
        {
            string desc = "";


            desc += "Max Lod : 1  ";

            for (int i = 0; i <= MaxLOD; i++)
            {
                if (i % 3 == 0)
                {
                    desc += "\r\n Lod " + i.ToString() + " expand num : " + _LODExpandNums[i].ToString() + " ;     ";
                }
                else
                {
                    desc += "Lod " + i.ToString() + " expand num : " + _LODExpandNums[i].ToString() + " ;     ";
                }
            }


            return(desc);
        }
Exemplo n.º 3
0
 public void SetLODType(ELodType type)
 {
     LODType = type;
     CalcLODExtraVars();
 }