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(); }
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); }
public void SetLODType(ELodType type) { LODType = type; CalcLODExtraVars(); }