private void CreateMaterialCollection() { var i = 0; var colors = new Color[] { Color.Red, Color.Green, Color.Blue, Color.Yellow, Color.Purple }; var names = new string[] { "Red", "Green", "Blue", "Yellow", "Purple" }; var size = colors.Length; // Procedurales textures. for (i = 0; i < size; i++) { CreateMaterial(string.Format("Border {0}", names[i]), GraphicsHelper.CreateBorderTexture(colors[i], Color.LightGray, 64, 64, 1)); } for (i = 0; i < size; i++) { CreateMaterial(string.Format("Checkboard {0}", names[i]), GraphicsHelper.CreateCheckboardTexture(colors[i], Color.LightGray, 64, 64)); } // Voxel pack by Kenney Vleugels for Kenney (www.kenney.nl) / License (Creative Commons Zero, CC0) var path = Path.Combine("Content", "Textures", "VoxelPack"); var files = Directory.GetFiles(Path.Combine(path, "Tiles")); var name = string.Empty; for (i = 0; i < files.Length; i++) { name = Path.GetFileNameWithoutExtension(files[i]); CreateMaterial(name, "Textures/VoxelPack/Tiles/" + name); } files = Directory.GetFiles(Path.Combine(path, "Tiles", "Details")); for (i = 0; i < files.Length; i++) { name = Path.GetFileNameWithoutExtension(files[i]); CreateBillboardMaterial(name, "Textures/VoxelPack/Tiles/Details/" + name); } // Terrain textures CreateMaterial("Terrain Grass", "Textures/Terrain/Grass"); CreateMaterial("Terrain Rock", "Textures/Terrain/Rock"); CreateMaterial("Terrain Sand", "Textures/Terrain/Sand"); CreateMaterial("Terrain Snow", "Textures/Terrain/Snow"); // Billboards for the editor CreateBillboardMaterial("ED_Camera", "Icons/Camera_Icon"); CreateBillboardMaterial("ED_Light", "Icons/Light_Icon"); // Water material var waterMaterial = new WaterMaterial(this, "WaterMaterial"); waterMaterial.Texture = Asset.LoadTexture("Textures/water"); waterMaterial.NormalMap = Asset.LoadTexture("Textures/wavesbump"); }
public void Generate(string waterTexture, string bumpTexture, Vector3 size) { if (scene == null) { throw new Exception("You need to attach this prefab to the scene."); } material = new WaterMaterial(scene); if (!string.IsNullOrEmpty(waterTexture)) { material.Texture = Application.Content.Load <Texture2D>(waterTexture); } if (!string.IsNullOrEmpty(bumpTexture)) { material.NormalMap = Application.Content.Load <Texture2D>(bumpTexture); } renderer.Material = material; renderer.Geometry.Size = size; renderer.Geometry.Build(); //collider.BoundingBox = new BoundingBox(transform.Position, size); }