Пример #1
0
 public CreateDataJob(Bounds VolumnBound, int mx, int mz, MTMeshLODSetting[] setting)
 {
     LODs = new MTTerrainScanner[setting.Length];
     for (int i = 0; i < setting.Length; ++i)
     {
         MTMeshLODSetting s = setting[i];
         //only first lod stitch borders, other lod use the most detailed border to avoid
         //tearing on the border
         LODs[i] = new MTTerrainScanner(VolumnBound, s.Subdivision, s.SlopeAngleError, mx, mz,
                                        i == 0);
     }
 }
Пример #2
0
    //TODO 摸索下来比较合适的配置
    //因为是Lowpoly风格的游戏 所以地形并不需要那么高的面数
    //LOD1 Subdivision 5 Slope 20
    //LOD2 Subdivision 4 Slope 20
    //LOD3 Subdivision 3 Slope 20
    //LOD4 Subdivision 2 Slope 20

    private void DrawSetting(int idx, MTMeshLODSetting setting)
    {
        bool bFold = EditorGUILayout.Foldout(setting.bEditorUIFoldout, string.Format("LOD {0}", idx));

        if (!bFold)
        {
            int subdivision = EditorGUILayout.IntField("Subdivision(1 ~ 7)", setting.Subdivision);
            if (setting.Subdivision != subdivision)
            {
                setting.Subdivision = Mathf.Clamp(subdivision, 1, 7);
            }
            float slopeErr = EditorGUILayout.FloatField("Slope Tolerance(Max 45)", setting.SlopeAngleError);
            if (setting.SlopeAngleError != slopeErr)
            {
                setting.SlopeAngleError = Mathf.Clamp(slopeErr, 0, 45);
            }
        }
        if (setting.bEditorUIFoldout != bFold)
        {
            setting.bEditorUIFoldout = bFold;
        }
    }