示例#1
0
        void UpdateTemperatureMap()
        {
            if (localTemperatureMap == null || inputBiomeData == null)
            {
                return;
            }

            var inputTemperatureMap = temperatureMap as Sampler2D;

            var terrain     = inputBiomeData.GetSampler2D(BiomeSamplerName.terrainHeight);
            var waterHeight = inputBiomeData.GetSampler2D(BiomeSamplerName.waterHeight);

            (localTemperatureMap as Sampler2D).Foreach((x, y, val) => {
                float terrainMod       = 0;
                float waterMod         = 0;
                float temperatureRange = (maxTemperature - minTemperature);
                float mapValue         = averageTemperature;

                if (!internalTemperatureMap)
                {
                    mapValue = Mathf.Lerp(Mathf.Max(minTemperature, minTemperatureMapInput), Mathf.Min(maxTemperature, maxTemperatureMapInput), inputTemperatureMap[x, y]);
                }

                if (terrainHeightMultiplier != 0 && terrain != null)
                {
                    terrainMod = terrain.At(x, y, true) * terrainHeightMultiplier * temperatureRange;
                }
                if (waterMultiplier != 0 && waterHeight != null)
                {
                    waterMod = waterHeight.At(x, y, true) * waterMultiplier * temperatureRange;
                }
                return(Mathf.Clamp(mapValue + terrainMod + waterMod, minTemperature, maxTemperature));
            });

            localTemperatureMap.min = minTemperature;
            localTemperatureMap.max = maxTemperature;

            if (inputBiomeData != null)
            {
                inputBiomeData.UpdateSamplerValue(BiomeSamplerName.temperature, localTemperatureMap);
            }

            updateTemperatureMap = true;
        }
示例#2
0
        void UpdateWetnessMap()
        {
            if (inputBiomeData == null || wetnessMap == null)
            {
                return;
            }

            var terrain = inputBiomeData.GetSampler2D(BiomeSamplerName.terrainHeight);

            wetnessMap.ResizeIfNeeded(terrain.size, terrain.step);

            //TODO: Compute wetness map
        }