public IntensityFromRandomFiguresCompositionProvider(IntensityFieldFigure baseIntensityFieldFigure, IntensityFieldFigure additionalIntensityFieldFigure, float additionalWeight) { _baseIntensityFieldFigure = baseIntensityFieldFigure; _additionalIntensityFieldFigure = additionalIntensityFieldFigure; _additionalWeight = additionalWeight; }
private List <Grass2TypeWithIntensity> RetriveIntensityFiguresFromTextureArray( float[] intensitiesArray, List <GrassType> generatedGrassTypes, IntVector2 figureSize) { var outList = new List <Grass2TypeWithIntensity>(); int i = 0; foreach (var type in generatedGrassTypes) { var intensityFigure = new IntensityFieldFigure(figureSize.X, figureSize.Y); for (int y = 0; y < figureSize.Y; y++) { for (int x = 0; x < figureSize.X; x++) { intensityFigure.SetPixel(x, y, intensitiesArray[i * (figureSize.X * figureSize.Y) + y * figureSize.X + x]); } } i++; outList.Add(new Grass2TypeWithIntensity() { GrassType = type, IntensityFigure = intensityFigure }); } return(outList); }
public IntensityFieldFigure LoadSingleLevelMipmapData(Texture2D tex, int level, int height) { var figure = new IntensityFieldFigure(height, height); var colors = tex.GetPixels(level); for (int x = 0; x < height; x++) { for (int y = 0; y < height; y++) { figure.SetPixel(x, y, colors[y * height + x].r); } } return(figure); }
public static IntensityFieldFigure CreateDebugRandomFieldFigure() { int width = 16; int height = 16; var fieldFigure = new IntensityFieldFigure(width, height); for (int x = 0; x < width; x++) { for (int y = 0; y < width; y++) { fieldFigure.SetPixel(x, y, x / (float)(width - 1)); } } return(fieldFigure); }
public static Texture CreateTextureFrom(IntensityFieldFigure intensityFigure) { int width = intensityFigure.Width; int height = intensityFigure.Height; var tex = new Texture2D(width, height, TextureFormat.RGB24, false); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { tex.SetPixel(x, y, new Color(intensityFigure.GetPixel(x, y), 0, 0)); } } tex.wrapMode = TextureWrapMode.Clamp; tex.Apply(false); SavingFileManager.SaveTextureToPngFile($@"C:\inz2\tex{texNo++}.png", tex); return(tex); }
public static IGrassIntensityMapProvider CreateDebugIntensityMapProvider() { var grass1Intensity = new IntensityFieldFigure(16, 16); var grass2Intensity = new IntensityFieldFigure(16, 16); for (int x = 0; x < 16; x++) { for (int y = 0; y < 16; y++) { grass1Intensity.SetPixel(x, y, Mathf.InverseLerp(4, 10, x)); grass2Intensity.SetPixel(x, y, Mathf.InverseLerp(0, 4, y)); } } return(new DebugGrassIntensityMapProvider(new List <GrassTypeWithUvedIntensity>() { new GrassTypeWithUvedIntensity() { Figure = new IntensityFieldFigureWithUv() { FieldFigure = grass1Intensity, Uv = new MyRectangle(0, 0, 1, 1) }, Type = GrassType.Debug1, }, new GrassTypeWithUvedIntensity() { Figure = new IntensityFieldFigureWithUv() { FieldFigure = grass2Intensity, Uv = new MyRectangle(0, 0, 1, 1) }, Type = GrassType.Debug2, }, })); }