public static GameObject CreateLava(Texture2D lavalTexture, Texture2D normalTexture, Vector3 size) { var gameObject = new GameObject("Lava"); var renderer = gameObject.AddComponent <MeshRenderer>(); renderer.CastShadow = false; renderer.ReceiveShadow = false; renderer.Geometry = new PlaneMesh(); var collider = gameObject.AddComponent <BoxCollider>(); collider.IsPickable = false; var material = new LavaMaterial(gameObject.Scene); material.MainTexture = lavalTexture; material.NormalTexture = normalTexture; renderer.Material = material; renderer.Geometry.Size = size; renderer.Geometry.Build(); //collider.BoundingBox = new BoundingBox(transform.Position, size); return(gameObject); }
public override void Initialize() { base.Initialize(); // First we add a Skybox RenderSettings.Skybox.Generate(Application.GraphicsDevice, Application.Content, DemoGame.StarsSkybox); // And a camera with some components var camera = new CameraPrefab("camera"); camera.AddComponent <ControllerSwitcher>(); camera.AddComponent <DemoBehaviour>(); Add(camera); // A light is required to illuminate objects. var lightPrefab = new LightPrefab("light", LightType.Directional); lightPrefab.Transform.Rotation = new Vector3(-1, 1, 0); lightPrefab.Light.ShadowGenerator.SetShadowMapSize(Application.GraphicsDevice, 1024); lightPrefab.EnableShadows = true; Add(lightPrefab); // A terrain with its material. var terrainMaterial = new StandardMaterial(scene); terrainMaterial.Texture = Application.Content.Load <Texture2D>("Textures/Terrain/Rock"); terrainMaterial.Shininess = 150; terrainMaterial.Tiling = new Vector2(8); var terrain = new TerrainPrefab("terrain"); terrain.Renderer.Geometry.Size = new Vector3(2); terrain.Renderer.ReceiveShadow = true; terrain.Randomize(4, 12); terrain.Renderer.Material = terrainMaterial; terrain.Transform.Translate(-terrain.Width >> 1, 0, -terrain.Depth / 2); Add(terrain); // Lava ! var lavaMaterial = new LavaMaterial(this); lavaMaterial.Texture = Application.Content.Load <Texture2D>("Textures/lava_texture"); lavaMaterial.NormalMap = Application.Content.Load <Texture2D>("Textures/lava_bump"); var lava = new WaterPrefab("water"); lava.Renderer.Material = lavaMaterial; lava.Renderer.ReceiveShadow = true; lava.Renderer.Geometry.Size = new Vector3(terrain.Width * 0.5f); lava.Renderer.Geometry.Build(); Add(lava); }
public void Generate(string lavaTexture, string bumpTexture, Vector3 size) { if (scene == null) { throw new Exception("You need to attach this prefab to the scene."); } material = new LavaMaterial(scene); if (!string.IsNullOrEmpty(lavaTexture)) { material.Texture = Application.Content.Load <Texture2D>(lavaTexture); } 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); }
public DeferredLava(LavaMaterial material) : base(material) { }
public ForwardLava(LavaMaterial material) { m_Material = material; }