public override void InitState() { VAssImpImp.IPath = "c:/med/"; ER = new VEnvRenderer(512, 512); PR = new VPostProcessRenderer(512, 512); // PR.Add(new VPPBlur()); sg = new VSceneGraph(); PR.Scene = sg; ER.Scene = sg; e1 = VImport.ImportNode("c:/Media/dwarf2.b3d"); //file of 3d model to load. e1.LocalScale = new Vector3(1, 1, 1); var m1 = new VMaterial(); m1.TCol = new VTex2D("c:/Media/tex1_c.png", LoadMethod.Single); // texture to load m1.TEnv = VTextureUtil.LoadCubeMap("c:/Media/cm1.png.cube"); // cubemap to load. use cubeconvert to convert. //m2.TEnv = ER.FB.Cube; var ee = e1 as VSceneEntity; //var ee2 = e2 as VSceneEntity; //building project atm. SetMat(ee, m1); // SetMat(ee2, m2); sg.Add(e1); // sg.Add(e2); c1 = new VCam(); sg.Add(c1); l1 = new VLight(); l1.Pos(new Vector3(0, 40, 0), Space.Local); c1.Pos(new Vector3(0, 0, 300), Space.Local); c1.LookAt(Vector3.Zero, new Vector3(0, 1, 0)); sg.Add(l1); //e1.Pos(new Vector3(0, -30, 0), Space.Local); // e2.Pos(new Vector3(0, 20, 0), Space.Local); }
/// <summary> /// Must be overriden by child classes for their own server specific startup behaviour. /// </summary> protected override void StartupComponents() { m_log.Info("[STARTUP]: Beginning startup processing"); Version = Util.EnhanceVersionInformation(); m_log.Info("[STARTUP]: Version: " + Version + "\n"); Console = new Console(this,"Region", this); IConfig cnf = m_configSource.Source.Configs["Startup"]; string loginURI = "http://127.0.0.1:9000/"; string firstName = string.Empty; string lastName = string.Empty; string password = string.Empty; string startlocation = ""; bool loadtextures = true; bool multipleSims = false; if (cnf != null) { loginURI = cnf.GetString("login_uri", ""); firstName = cnf.GetString("first_name", "test"); lastName = cnf.GetString("last_name", "user"); password = cnf.GetString("pass_word", "nopassword"); loadtextures = cnf.GetBoolean("load_textures", true); MeshSculpties = cnf.GetBoolean("mesh_sculpties", MeshSculpties); BackFaceCulling = cnf.GetBoolean("backface_culling", BackFaceCulling); AvatarMesh = cnf.GetString("avatar_mesh", AvatarMesh); AvatarMaterial = cnf.GetString("avatar_material", AvatarMaterial); AvatarScale = cnf.GetFloat("avatar_scale", AvatarScale); startlocation = cnf.GetString("start_location", ""); multipleSims = cnf.GetBoolean("multiple_sims", multipleSims); ProcessFoliage = cnf.GetBoolean("process_foliage", ProcessFoliage); m_limitFramesPerSecond = cnf.GetBoolean("limitfps", m_limitFramesPerSecond); } LoadTextures = loadtextures; MainConsole.Instance = Console; // Initialize LibOMV if (NetworkInterface == null) NetworkInterface = new RadegastNetworkModule(RInstance); NetworkInterface.MultipleSims = multipleSims; NetworkInterface.OnLandUpdate += OnNetworkLandUpdate; NetworkInterface.OnConnected += OnNetworkConnected; NetworkInterface.OnObjectAdd += OnNetworkObjectAdd; NetworkInterface.OnSimulatorConnected += OnNetworkSimulatorConnected; NetworkInterface.OnObjectUpdate += OnNetworkObjectUpdate; NetworkInterface.OnObjectRemove += OnNetworkObjectRemove; NetworkInterface.OnAvatarAdd += OnNetworkAvatarAdd; //NetworkInterface.OnChat +=new NetworkChatDelegate(OnNetworkChat); //NetworkInterface.OnFriendsListUpdate +=new NetworkFriendsListUpdateDelegate(OnNetworkFriendsListChange); //NetworkInterface.Login(loginURI, firstName + " " + lastName, password, startlocation); // Startup the GUI Renderer = new RaegastRenderer(this,Device); Renderer.Startup(); GUIFont defaultFont = Renderer.GuiEnvironment.GetFont("defaultfont.png"); skin = Renderer.GuiEnvironment.Skin; skin.Font = defaultFont; skincolor = skin.GetColor(GuiDefaultColor.Face3D); skincolor.A = 255; skin.SetColor(GuiDefaultColor.Face3D, skincolor); skincolor = skin.GetColor(GuiDefaultColor.Shadow3D); skincolor.A = 255; skin.SetColor(GuiDefaultColor.Shadow3D, skincolor); // Set up event handler for the GUI window events. Renderer.Device.OnEvent += new OnEventDelegate(OnDeviceEvent); Renderer.Device.Resizeable = true; MeshManager = new MeshManager(Renderer.SceneManager.MeshManipulator, Renderer.Device); SceneGraph = new VSceneGraph(this); // Set up the picker. SceneGraph.TrianglePicker = new TrianglePickerMapper(Renderer.SceneManager.CollisionManager); SceneGraph.TriangleSelector = Renderer.SceneManager.CreateMetaTriangleSelector(); // Only create a texture manager if the user configuration option is enabled for downloading textures if (LoadTextures) { TextureManager = new TextureManager(this,Renderer.Device, Renderer.Driver, SceneGraph.TrianglePicker, SceneGraph.TriangleSelector, "IdealistCache", NetworkInterface); TextureManager.OnTextureLoaded += OnNetworkTextureDownloaded; } AvatarController = new AvatarController(NetworkInterface, null); TerrainManager = ModuleManager.GetTerrainManager(this, m_configSource); Renderer.SceneManager.SetAmbientLight(new Colorf(1f, 0.2f, 0.2f, 0.2f)); // This light simulates the sun //SceneNode light2 = Renderer.SceneManager.AddLightSceneNode(Renderer.SceneManager.RootSceneNode, new Vector3D(0, 255, 0), new Colorf(0f, 0.5f, 0.5f, 0.5f), 250, -1); SceneNode light2 = Renderer.SceneManager.AddLightSceneNode(Renderer.SceneManager.RootSceneNode, new Vector3D(0, 255, 0), new Colorf(0f, 0.6f, 0.6f, 0.6f), 512, -1); // Fog is on by default, this line disables it. //Renderer.SceneManager.VideoDriver.SetFog(new Color(0, 255, 255, 255), false, 9999, 9999, 0, false, false); float fogBrightness = 0.8f; Renderer.SceneManager.VideoDriver.SetFog(new Color(0, (int)(0.5f * 255 * fogBrightness), (int)(0.5f * 255 * fogBrightness), (int)(1.0f * 255 * fogBrightness)), true, 50, 100, 0, true, true); //ATMOSkySceneNode skynode = new ATMOSkySceneNode(Renderer.Driver.GetTexture("irrlicht2_up.jpg"), null, Renderer.SceneManager, 100, -1); //ATMOSphere atmosphere = new ATMOSphere(Renderer.Device.Timer, null, Renderer.SceneManager, -1); //atmosphere.SkyTexture = Renderer.Driver.GetTexture("irrlicht2_up.jpg"); Renderer.Driver.SetTextureFlag(TextureCreationFlag.CreateMipMaps, false); bool Broken = false; if (!Broken) Renderer.SceneManager.AddSkyBoxSceneNode(null, new Texture[] { Renderer.Driver.GetTexture("topax2.jpg"), Renderer.Driver.GetTexture("irrlicht2_dn.jpg"), Renderer.Driver.GetTexture("rightax2.jpg"), Renderer.Driver.GetTexture("leftax2.jpg"), Renderer.Driver.GetTexture("frontax2.jpg"), Renderer.Driver.GetTexture("backax2.jpg")}, 0); Renderer.Driver.SetTextureFlag(TextureCreationFlag.CreateMipMaps, true); CameraController = new CameraController(this,Renderer.SceneManager); SceneGraph.WaterNode = new WaterSceneNode(null, Renderer.SceneManager, new Dimension2Df(180, 180), new Dimension2D(100, 100), new Dimension2D(512, 512)); SceneGraph.WaterNode.Position = new Vector3D(0, 30, 0); //SceneGraph.WaterNode.WaveHeight *= .4f; SceneGraph.WaterNode.RefractionFactor = 0.3f; SceneGraph.WaterNode.WaveDisplacement = 2f; SceneGraph.WaterNode.WaveHeight = 2f; SceneGraph.WaterNode.WaveLength = 2f; SceneGraph.WaterNode.WaveSpeed = 5f; SceneGraph.WaterNode.WaveRepetition = 20f; SceneGraph.WaterNode.Scale = new Vector3D(0.2f,0.2f,0.2f); SceneGraph.WaterNode.MultiColor = new Colorf(0.9f, 0.7f, 0.7f, 1.0f); UserInterface = new UserInterfaceManager(this, Renderer.Driver, Renderer.SceneManager, Renderer.GuiEnvironment, CameraController, AvatarController); UserInterface.DefaultFont = defaultFont; XmlReader xml = Broken? null: XmlReader.Create(new StreamReader("../../../media/About.xml")); while (xml != null && xml.Read()) { switch (xml.NodeType) { case XmlNodeType.Text: UserInterface.AboutText = xml.ReadContentAsString(); break; case XmlNodeType.Element: if (xml.Name.Equals("startUpModel")) { } else if (xml.Name.Equals("messageText")) UserInterface.AboutCaption = xml.GetAttribute("caption"); break; } } string formsUiConfigurationOption = m_configSource.Source.Configs["Startup"].GetString("forms", "true"); if (formsUiConfigurationOption == "true") { frmCommunications f = new frmCommunications(NetworkInterface); f.Visible = true; this.m_formsThread = new Thread(delegate() { Application.DoEvents(); Thread.Sleep(50); }); m_formsThread.Start(); } AnimationManager = new AnimationManager(this); TimeSpan timeTaken = DateTime.UtcNow - StartupTime; m_log.InfoFormat("[STARTUP]: Startup took {0}m {1}s", timeTaken.Minutes, timeTaken.Seconds); }
public void SetScene(VSceneGraph s) { Scene = s; }