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; }
void UpdateWetnessMap() { if (inputBiomeData == null || wetnessMap == null) { return; } var terrain = inputBiomeData.GetSampler2D(BiomeSamplerName.terrainHeight); wetnessMap.ResizeIfNeeded(terrain.size, terrain.step); //TODO: Compute wetness map }