public override void Init() { SceneManager.RC = RC; var stativ = new SceneEntity("stativ", new ActionCode()); var dir = new DirectionalLight(new float3(0, 10, -1), new float4(1, 1, 1, 1), new float4(1, 1, 1, 1), new float4(1, 1, 1, 1), new float3(0, 0, 0), 0); stativ.AddComponent(dir); _camera = new Camera(stativ); stativ.transform.GlobalPosition = new float3(0, 0, 100); SceneManager.Manager.AddSceneEntity(stativ); _camera.Resize(Width, Height); Geometry wuerfelGeo = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/Sphere.obj.model")); _wuerfel = new SceneEntity("wuerfel", new Material(MoreShaders.GetSpecularShader(RC)), new Renderer(wuerfelGeo)); SceneManager.Manager.AddSceneEntity(_wuerfel); _channel2 = new Channel<float3>(Lerp.Float3Lerp); _channel1 = new Channel<float4>(Lerp.Float4Lerp, new float4(0.5f, 0.5f, 0.5f, 0.5f)); var key0 = new Keyframe<float4>(0, new float4(1, 0, 1, 1)); var key1 = new Keyframe<float4>(2, new float4(0.125f, 1, 0.125f, 1)); var key2 = new Keyframe<float4>(4, new float4(0.250f, 0.75f, 0.250f, 1)); var key3 = new Keyframe<float4>(6, new float4(0.5f, 0.5f, 0.5f, 1)); var key4 = new Keyframe<float4>(8, new float4(0.75f, 0.25f, 0.75f, 1)); var key5 = new Keyframe<float4>(10, new float4(1, 25, 0.125f, 1)); var key6 = new Keyframe<float4>(0, new float4(0, 1, 0, 1)); _channel1.AddKeyframe(key0); _channel1.AddKeyframe(key1); _channel1.AddKeyframe(key2); _channel1.AddKeyframe(key3); _channel1.AddKeyframe(key4); _channel1.AddKeyframe(key5); _channel1.AddKeyframe(key6); var key40 = new Keyframe<float3>(8, new float3(8, 0, 80)); var key00 = new Keyframe<float3>(0, new float3(0, 0, 0)); var key10 = new Keyframe<float3>(2, new float3(1, 2, 20)); var key20 = new Keyframe<float3>(4, new float3(2, 4, 40)); var key30 = new Keyframe<float3>(6, new float3(4, 4, 60)); var key50 = new Keyframe<float3>(12, new float3(0, 4, 60)); var key60 = new Keyframe<float3>(0, new float3(8, 8, 8)); _channel2.AddKeyframe(key00); _channel2.AddKeyframe(key10); _channel2.AddKeyframe(key20); _channel2.AddKeyframe(key30); _channel2.AddKeyframe(key40); _channel2.AddKeyframe(key50); _channel2.AddKeyframe(key60); _myAnim.AddAnimation(_channel1, RC, "ClearColor"); _myAnim.AddAnimation(_channel2, _wuerfel, "transform.GlobalPosition"); }
public override void Init() { SceneManager.RC = RC; SceneEntity _planet; // Lights DirectionalLight direct = new DirectionalLight(new float3(-500, 1000, 0), new float4(1, 1, 1, 1), new float3(0, 0, 0), 0); // Load Geometry Geometry planetgeometry = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/Sphere.obj.model")); Geometry spacebox = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/spacebox.obj.model")); // Setup Empty Objects // Null Objects SceneEntity _emptyMoon; SceneEntity _emptyMercury; SceneEntity _emptyVenus; SceneEntity _emptyEarth; SceneEntity _emptyMars; SceneEntity _emptyJupiter; SceneEntity _emptySaturn; SceneEntity _emptyUranus; SceneEntity _emptyNeptun; _emptyMoon = new SceneEntity("emptyPlanetHolder", new MoonAction(_speedearth * 5.0f)); _emptyMercury = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth * 4.1477f)); _emptyVenus = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth * 1.6150f)); _emptyEarth = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth)); _emptyMars = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth * 0.5320f)); _emptyJupiter = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth * 0.0833f)); _emptySaturn = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth * 0.03476f)); _emptyUranus = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth * 0.0119f)); _emptyNeptun = new SceneEntity("emptyPlanetHolder", new PlanetAction(_speedearth * 0.0062f)); SceneManager.Manager.AddSceneEntity(_emptyMoon); SceneManager.Manager.AddSceneEntity(_emptyMercury); SceneManager.Manager.AddSceneEntity(_emptyVenus); SceneManager.Manager.AddSceneEntity(_emptyEarth); SceneManager.Manager.AddSceneEntity(_emptyMars); SceneManager.Manager.AddSceneEntity(_emptyJupiter); SceneManager.Manager.AddSceneEntity(_emptySaturn); SceneManager.Manager.AddSceneEntity(_emptyUranus); SceneManager.Manager.AddSceneEntity(_emptyNeptun); //Setup Camera // Scene Camera SceneEntity cameraholder; CameraScript camscript; SceneEntity WorldOrigin; WorldOrigin = new SceneEntity("WorldOrigin", new RotationScript()); SceneManager.Manager.AddSceneEntity(WorldOrigin); cameraholder = new SceneEntity("CameraOwner", new CameraScript(), WorldOrigin); cameraholder.transform.GlobalPosition = new float3(0, 0, 10); scenecamera = new Camera(cameraholder); scenecamera.Resize(Width, Height); // Setup Space Box SceneEntity _spaceBox = new SceneEntity("Spacebox", new PlanetMaterial(MoreShaders.GetShader("simpel", RC), "Assets/spaceboxTexture.png"), new Renderer(spacebox)); SceneManager.Manager.AddSceneEntity(_spaceBox); // Setup Earth _planet = new SceneEntity("Earth", new PlanetAction(new float3(0, 0.69635f * 365, 0)), _emptyEarth, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/earth.jpg"), new Renderer(planetgeometry)); _planet.transform.GlobalPosition = new float3(2.9f, 0, 0); _planet.transform.GlobalScale = new float3(0.1f, 0.1f, 0.1f); _planet.AddComponent(direct); //Setup Moon //_emptyMoon.transform.LocalPosition = _earth.transform.LocalPosition; //_emptyMoonAction = new MoonAction(_speedearth * 5.0f); //_emptyMoon.AddComponent(_emptyMoonAction); _planet = new SceneEntity("Moon", new PlanetAction(new float3(0, 2.7f, 0)), _emptyMoon, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/moon.jpg"), new Renderer(planetgeometry)); _planet.transform.GlobalPosition = new float3(0.5f, 0, 0); _planet.transform.GlobalScale = new float3(0.05f, 0.05f, 0.05f); //SceneManager.Manager.AddSceneEntity(_emptyMoon); //_emptyMoon.AddChild(_moon); //_emptyMoonAction.Init(_emptyMoon); /* _moon = new SceneEntity { name = "Moon" }; _emptyMoonAction = new MoonAction(_earth, _speedearth * 5.0f); _moonMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC)); _moonImage = RC.LoadImage("Assets/moon.jpg"); _moonIShaderParam = _moonMaterial.sp.GetShaderParam("texture1"); _moonITexture = RC.CreateTexture(_moonImage); _moonMaterial.Tex = _moonITexture; _moonMaterial.Textureparam = _moonIShaderParam; _moonRenderer = new Renderer(planetgeometry); _moonRenderer.material = _moonMaterial; _moon.AddComponent(_moonRenderer); _emptyMoon.AddComponent(_emptyMoonAction); _moon.transform.LocalPosition = new float3(0.5f, 0, 0); _moon.transform.LocalScale = new float3(0.05f, 0.05f, 0.05f); SceneManager.Manager.AddSceneEntity(_emptyMoon); _emptyMoon.AddChild(_moon); _emptyMoonAction.Init(_emptyMoon); */ // Setup sun _planet = new SceneEntity("Sun", new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/sun.jpg"), new Renderer(planetgeometry)); _planet.transform.LocalScale = new float3(2, 2, 2); SceneManager.Manager.AddSceneEntity(_planet); /* _sun = new SceneEntity { name = "Sun" }; //_sunAction.Init(_sun); _sunMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC)); _sunImage = RC.LoadImage("Assets/sun.jpg"); _sunIShaderParam = _sunMaterial.sp.GetShaderParam("texture1"); _sunITexture = RC.CreateTexture(_sunImage); _sunMaterial.Tex = _sunITexture; _sunMaterial.Textureparam = _sunIShaderParam; _sunRenderer = new Renderer(planetgeometry); _sunRenderer.material = _sunMaterial; _sun.AddComponent(_sunRenderer); _sun.transform.LocalPosition = new float3(0,0,0); _sun.transform.LocalScale = new float3(2,2,2); //_earth.AddChild(_sun); SceneManager.Manager.AddSceneEntity(_sun); */ // Setup mercury _planet = new SceneEntity("Mercury", new PlanetAction(_speedearth * 6.2234f), _emptyMercury, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/merkur.jpg"), new Renderer(planetgeometry)); _planet.transform.GlobalPosition = new float3(2.35f, 0, 0); _planet.transform.GlobalScale = new float3(0.05f, 0.05f, 0.05f); /* _mercury = new SceneEntity { name = "Mercury" }; _mercuryAction.Init(_mercury); _mercuryMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC)); _mercuryImage = RC.LoadImage("Assets/merkur.jpg"); _mercuryIShaderParam = _mercuryMaterial.sp.GetShaderParam("texture1"); _mercuryITexture = RC.CreateTexture(_mercuryImage); _mercuryMaterial.Tex = _mercuryITexture; _mercuryMaterial.Textureparam = _mercuryIShaderParam; _mercuryRenderer = new Renderer(planetgeometry); _mercuryRenderer.material = _mercuryMaterial; _mercury.AddComponent(_mercuryRenderer); _mercury.AddComponent(_mercuryAction); _mercury.transform.LocalPosition = new float3(2.35f, 0, 0); _mercury.transform.LocalScale = new float3(0.05f, 0.05f, 0.05f); //SceneManager.Manager.AddSceneEntity(_mercury); _emptyMercury.AddChild(_mercury); */ // Setup venus _planet = new SceneEntity("Venus", new PlanetAction(_speedearth * 1.5021f), _emptyVenus, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/venus.jpg"), new Renderer(planetgeometry)); _planet.transform.GlobalPosition = new float3(2.6f, 0, 0); _planet.transform.GlobalScale = new float3(0.08f, 0.08f, 0.08f); /* _venus = new SceneEntity { name = "Venus" }; _venusAction.Init(_venus); _venusMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC)); _venusImage = RC.LoadImage("Assets/venus.jpg"); _venusIShaderParam = _venusMaterial.sp.GetShaderParam("texture1"); _venusITexture = RC.CreateTexture(_venusImage); _venusMaterial.Tex = _venusITexture; _venusMaterial.Textureparam = _venusIShaderParam; _venusRenderer = new Renderer(planetgeometry); _venusRenderer.material = _venusMaterial; _venus.AddComponent(_venusRenderer); _venus.AddComponent(_venusAction); _venus.transform.LocalPosition = new float3(2.6f, 0, 0); _venus.transform.LocalScale = new float3(0.08f, 0.08f, 0.08f); //SceneManager.Manager.AddSceneEntity(_venus); _emptyVenus.AddChild(_venus);*/ // Setup mars _planet = new SceneEntity("Mars", new PlanetAction(_speedearth * 374.125f), _emptyMars, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/mars.jpg"), new Renderer(planetgeometry)); _planet.transform.GlobalPosition = new float3(3.25f, 0, 0); _planet.transform.GlobalScale = new float3(0.07f, 0.07f, 0.07f); /* _mars = new SceneEntity { name = "Mars" }; _marsAction.Init(_mars); _marsMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC)); _marsImage = RC.LoadImage("Assets/mars.jpg"); _marsIShaderParam = _marsMaterial.sp.GetShaderParam("texture1"); _marsITexture = RC.CreateTexture(_marsImage); _marsMaterial.Tex = _marsITexture; _marsMaterial.Textureparam = _marsIShaderParam; _marsRenderer = new Renderer(planetgeometry); _marsRenderer.material = _marsMaterial; _mars.AddComponent(_marsRenderer); _mars.AddComponent(_marsAction); _mars.transform.LocalPosition = new float3(3.25f, 0, 0); _mars.transform.LocalScale = new float3(0.07f, 0.07f, 0.07f); //SceneManager.Manager.AddSceneEntity(_mars); _emptyMars.AddChild(_mars);*/ // Setup jupiter _planet = new SceneEntity("Jupiter", new PlanetAction(_speedearth * 882.62f), _emptyJupiter, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/jupiter.jpg"), new Renderer(planetgeometry)); _planet.transform.GlobalPosition = new float3(4, 0, 0); _planet.transform.GlobalScale = new float3(0.4f, 0.4f, 0.4f); /* _jupiter = new SceneEntity { name = "Jupiter" }; _jupiterAction.Init(_jupiter); _jupiterMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC)); _jupiterImage = RC.LoadImage("Assets/jupiter.jpg"); _jupiterIShaderParam = _jupiterMaterial.sp.GetShaderParam("texture1"); _jupiterITexture = RC.CreateTexture(_jupiterImage); _jupiterMaterial.Tex = _jupiterITexture; _jupiterMaterial.Textureparam = _jupiterIShaderParam; _jupiterRenderer = new Renderer(planetgeometry); _jupiterRenderer.material = _jupiterMaterial; _jupiter.AddComponent(_jupiterRenderer); _jupiter.AddComponent(_jupiterAction); _jupiter.transform.LocalPosition = new float3(4, 0, 0); _jupiter.transform.LocalScale = new float3(0.4f, 0.4f, 0.4f); //SceneManager.Manager.AddSceneEntity(_jupiter); _emptyJupiter.AddChild(_jupiter); */ // Setup saturn _planet = new SceneEntity("Saturn", new PlanetAction(_speedearth * 820.61f), _emptySaturn, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/saturn.jpg"), new Renderer(planetgeometry)); _planet.transform.GlobalPosition = new float3(5, 0, 0); _planet.transform.GlobalScale = new float3(0.3f, 0.3f, 0.3f); /*_saturn = new SceneEntity { name = "Saturn" }; _saturnAction.Init(_saturn); _saturnMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC)); _saturnImage = RC.LoadImage("Assets/saturn.jpg"); _saturnIShaderParam = _saturnMaterial.sp.GetShaderParam("texture1"); _saturnITexture = RC.CreateTexture(_saturnImage); _saturnMaterial.Tex = _saturnITexture; _saturnMaterial.Textureparam = _saturnIShaderParam; _saturnRenderer = new Renderer(planetgeometry); _saturnRenderer.material = _saturnMaterial; _saturn.AddComponent(_saturnRenderer); _saturn.AddComponent(_saturnAction); _saturn.transform.LocalPosition = new float3(5, 0, 0); _saturn.transform.LocalScale = new float3(0.3f, 0.3f, 0.3f); //SceneManager.Manager.AddSceneEntity(_saturn); _emptySaturn.AddChild(_saturn);*/ // Setup uranus _planet = new SceneEntity("Uranus", new PlanetAction(_speedearth * 509.30f), _emptyUranus, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/uranus.jpg"), new Renderer(planetgeometry)); _planet.transform.GlobalPosition = new float3(6, 0, 0); _planet.transform.GlobalScale = new float3(0.12f, 0.12f, 0.12f); /*_uranus = new SceneEntity { name = "Uranus" }; _uranusAction.Init(_uranus); _uranusMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC)); _uranusImage = RC.LoadImage("Assets/uranus.jpg"); _uranusIShaderParam = _uranusMaterial.sp.GetShaderParam("texture1"); _uranusITexture = RC.CreateTexture(_uranusImage); _uranusMaterial.Tex = _uranusITexture; _uranusMaterial.Textureparam = _uranusIShaderParam; _uranusRenderer = new Renderer(planetgeometry); _uranusRenderer.material = _uranusMaterial; _uranus.AddComponent(_uranusRenderer); _uranus.AddComponent(_uranusAction); _uranus.transform.LocalPosition = new float3(6, 0, 0); _uranus.transform.LocalScale = new float3(0.12f, 0.12f, 0.12f); //SceneManager.Manager.AddSceneEntity(_uranus); _emptyUranus.AddChild(_uranus);*/ // Setup neptun _planet = new SceneEntity("Neptun", new PlanetAction(_speedearth * 544.10f), _emptyNeptun, new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC), "Assets/neptune.jpg"), new Renderer(planetgeometry)); _planet.transform.GlobalPosition = new float3(7, 0, 0); _planet.transform.GlobalScale = new float3(0.14f, 0.14f, 0.14f); /*_neptun = new SceneEntity { name = "Neptun" }; _neptunAction.Init(_neptun); _neptunMaterial = new PlanetMaterial(MoreShaders.GetShader("diffuse2", RC)); _neptunImage = RC.LoadImage("Assets/neptune.jpg"); _neptunIShaderParam = _neptunMaterial.sp.GetShaderParam("texture1"); _neptunITexture = RC.CreateTexture(_neptunImage); _neptunMaterial.Tex = _neptunITexture; _neptunMaterial.Textureparam = _neptunIShaderParam; _neptunRenderer = new Renderer(planetgeometry); _neptunRenderer.material = _neptunMaterial; _neptun.AddComponent(_neptunRenderer); _neptun.AddComponent(_neptunAction); _neptun.transform.LocalPosition = new float3(7, 0, 0); _neptun.transform.LocalScale = new float3(0.14f, 0.14f, 0.14f); //SceneManager.Manager.AddSceneEntity(_neptun); _emptyNeptun.AddChild(_neptun);*/ SceneManager.Manager.StartActionCode(); // Random Rotations _emptyEarth.transform.LocalEulerAngles = new float3(0, 45, 0); _emptyMercury.transform.LocalEulerAngles = new float3(0, 55, 0); _emptyVenus.transform.LocalEulerAngles = new float3(0, 335, 0); _emptyMars.transform.LocalEulerAngles = new float3(0, 125, 0); _emptyJupiter.transform.LocalEulerAngles = new float3(0, 65, 0); _emptySaturn.transform.LocalEulerAngles = new float3(0, 95, 0); _emptyUranus.transform.LocalEulerAngles = new float3(0, 145, 0); _emptyNeptun.transform.LocalEulerAngles = new float3(0, 245, 0); //camrotation.Init(WorldOrigin); RC.ClearColor = new float4(1, 0, 0, 1); }
public override void Start() { perspective = true; //transform.LocalPosition= new float3(0,0,-100); scenecam = SceneEntity.GetComponent<Camera>(); }
public override void Init() { SceneManager.RC = RC; // Light var direct = new DirectionalLight(new float3(1, 1, 1), new float4(0.7f, 0.7f, 0.7f, 1), new float4(1f, 1f, 1f, 1), new float4(0.9f, 0.9f, 0.9f, 1), new float3(0, 0, 0), 0); // Load Meshes var planetMesh = MeshReader.LoadMesh(@"Assets/Sphere.obj.model"); var spaceBoxMesh = MeshReader.LoadMesh(@"Assets/spacebox.obj.model"); // Setup Empty Objects _earthSpeed = new float3(0, 0.69635f, 0); var emptyMoon = new SceneEntity("emptyPlanetHolder", new MoonAction(_earthSpeed*5.0f)); var emptyMercury = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed*4.1477f)); var emptyVenus = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed*1.6150f)); var emptyEarth = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed)); var emptyMars = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed*0.5320f)); var emptyJupiter = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed*0.0833f)); var emptySaturn = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed*0.03476f)); var emptyUranus = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed*0.0119f)); var emptyNeptun = new SceneEntity("emptyPlanetHolder", new PlanetAction(_earthSpeed*0.0062f)); SceneManager.Manager.AddSceneEntity(emptyMoon); SceneManager.Manager.AddSceneEntity(emptyMercury); SceneManager.Manager.AddSceneEntity(emptyVenus); SceneManager.Manager.AddSceneEntity(emptyEarth); SceneManager.Manager.AddSceneEntity(emptyMars); SceneManager.Manager.AddSceneEntity(emptyJupiter); SceneManager.Manager.AddSceneEntity(emptySaturn); SceneManager.Manager.AddSceneEntity(emptyUranus); SceneManager.Manager.AddSceneEntity(emptyNeptun); // Scene Camera var worldOrigin = new SceneEntity("WorldOrigin", new RotationScript()); SceneManager.Manager.AddSceneEntity(worldOrigin); var cameraholder = new SceneEntity("CameraOwner", new CameraScript(), worldOrigin); cameraholder.transform.GlobalPosition = new float3(0, 0, -10); _sceneCamera = new Camera(cameraholder); _sceneCamera.Resize(Width, Height); // Setup Space Box var spaceBox = new SceneEntity("Spacebox", new PlanetMaterial(MoreShaders.GetTextureShader(RC), "Assets/spaceboxTexture.png"), new Renderer(spaceBoxMesh)); SceneManager.Manager.AddSceneEntity(spaceBox); // Setup Sun var planet = new SceneEntity("Sun", new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/sun.jpg"), new Renderer(planetMesh)); planet.transform.LocalScale = new float3(2, 2, 2); SceneManager.Manager.AddSceneEntity(planet); // Setup Earth planet = new SceneEntity("Earth", new PlanetAction(new float3(0, 0.69635f*365, 0)), emptyEarth, new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/earth.jpg"), new Renderer(planetMesh)); planet.transform.GlobalPosition = new float3(2.9f, 0, 0); planet.transform.GlobalScale = new float3(0.1f, 0.1f, 0.1f); planet.AddComponent(direct); // Setup Moon planet = new SceneEntity("Moon", new PlanetAction(new float3(0, 2.7f, 0)), emptyMoon, new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/moon.jpg"), new Renderer(planetMesh)); planet.transform.GlobalPosition = new float3(0.5f, 0, 0); planet.transform.GlobalScale = new float3(0.05f, 0.05f, 0.05f); // Setup Mercury planet = new SceneEntity("Mercury", new PlanetAction(_earthSpeed*6.2234f), emptyMercury, new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/merkur.jpg"), new Renderer(planetMesh)); planet.transform.GlobalPosition = new float3(2.35f, 0, 0); planet.transform.GlobalScale = new float3(0.05f, 0.05f, 0.05f); // Setup Venus planet = new SceneEntity("Venus", new PlanetAction(_earthSpeed*1.5021f), emptyVenus, new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/venus.jpg"), new Renderer(planetMesh)); planet.transform.GlobalPosition = new float3(2.6f, 0, 0); planet.transform.GlobalScale = new float3(0.08f, 0.08f, 0.08f); // Setup Mars planet = new SceneEntity("Mars", new PlanetAction(_earthSpeed*374.125f), emptyMars, new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/mars.jpg"), new Renderer(planetMesh)); planet.transform.GlobalPosition = new float3(3.25f, 0, 0); planet.transform.GlobalScale = new float3(0.07f, 0.07f, 0.07f); // Setup Jupiter planet = new SceneEntity("Jupiter", new PlanetAction(_earthSpeed*882.62f), emptyJupiter, new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/jupiter.jpg"), new Renderer(planetMesh)); planet.transform.GlobalPosition = new float3(4, 0, 0); planet.transform.GlobalScale = new float3(0.4f, 0.4f, 0.4f); // Setup Saturn planet = new SceneEntity("Saturn", new PlanetAction(_earthSpeed*820.61f), emptySaturn, new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/saturn.jpg"), new Renderer(planetMesh)); planet.transform.GlobalPosition = new float3(5, 0, 0); planet.transform.GlobalScale = new float3(0.3f, 0.3f, 0.3f); // Setup Uranus planet = new SceneEntity("Uranus", new PlanetAction(_earthSpeed*509.30f), emptyUranus, new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/uranus.jpg"), new Renderer(planetMesh)); planet.transform.GlobalPosition = new float3(6, 0, 0); planet.transform.GlobalScale = new float3(0.12f, 0.12f, 0.12f); // Setup Neptun planet = new SceneEntity("Neptun", new PlanetAction(_earthSpeed*544.10f), emptyNeptun, new PlanetMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/neptune.jpg"), new Renderer(planetMesh)); planet.transform.GlobalPosition = new float3(7, 0, 0); planet.transform.GlobalScale = new float3(0.14f, 0.14f, 0.14f); SceneManager.Manager.StartActionCode(); // Random Rotations emptyEarth.transform.LocalEulerAngles = new float3(0, 45, 0); emptyMercury.transform.LocalEulerAngles = new float3(0, 55, 0); emptyVenus.transform.LocalEulerAngles = new float3(0, 335, 0); emptyMars.transform.LocalEulerAngles = new float3(0, 125, 0); emptyJupiter.transform.LocalEulerAngles = new float3(0, 65, 0); emptySaturn.transform.LocalEulerAngles = new float3(0, 95, 0); emptyUranus.transform.LocalEulerAngles = new float3(0, 145, 0); emptyNeptun.transform.LocalEulerAngles = new float3(0, 245, 0); RC.ClearColor = new float4(1, 0, 0, 1); }
/// <summary> /// Visits the specified camera to collect data if required by the current Visitor derivate. /// </summary> /// <param name="camera">The camera.</param> public virtual void Visit(Camera camera) { }
public override void Init() { SceneManager.RC = RC; SceneEntity _object; DirectionalLight direct = new DirectionalLight(new float3(1, 1, 1), new float4(0.7f, 0.7f, 0.7f, 1), new float4(0.3f, 0.3f, 0.3f, 1), new float4(0.1f, 0.1f, 0.1f, 1), new float3(0, 0, 0), 2); PointLight point = new PointLight(new float3(0, 0, 0), new float4(0.7f, 0.7f, 0.7f, 1), new float4(0.3f, 0.3f, 0.3f, 1), new float4(0.1f, 0.1f, 0.1f, 1), 1); SpotLight spot = new SpotLight(new float3(1, 1, 1), new float3(1, 1, 1), new float4(0.7f, 0.7f, 0.7f, 1), new float4(0.3f, 0.3f, 0.3f, 1), new float4(0.1f, 0.1f, 0.1f, 1), 1.0f , 0); Geometry sphere = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/Sphere.obj.model")); Geometry sphere2 = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/Sphere.obj.model")); Geometry spacebox = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/spacebox.obj.model")); Geometry cube = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/Sphere.obj.model")); Geometry lamp = MeshReader.ReadWavefrontObj(new StreamReader(@"Assets/lamp2.obj.model")); SceneEntity _emptySphere; SceneEntity _emptyCube; SceneEntity _emptyLight; SceneEntity _emptyRoot; _emptyRoot = new SceneEntity("emptyRoot", new MouseAction()); _emptySphere = new SceneEntity("emptySphere", new ActionCode()); _emptyCube = new SceneEntity("emptyCube", new ActionCode()); _emptyLight = new SceneEntity("emptyLight", new ActionCode()); SceneManager.Manager.AddSceneEntity(_emptyRoot); SceneManager.Manager.AddSceneEntity(_emptySphere); SceneManager.Manager.AddSceneEntity(_emptyCube); SceneManager.Manager.AddSceneEntity(_emptyLight); SceneEntity cameraholder; SceneEntity WorldOrigin; WorldOrigin = new SceneEntity("WorldOrigin", new MouseAction()); SceneManager.Manager.AddSceneEntity(WorldOrigin); cameraholder = new SceneEntity("CameraOwner", new CamScript(), WorldOrigin); cameraholder.transform.GlobalPosition = new float3(0, 0, 10); scenecamera = new Camera(cameraholder); scenecamera.Resize(Width, Height); SceneEntity _spaceBox = new SceneEntity("Spacebox", new DiffuseMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/sky.jpg"), new Renderer(spacebox)); SceneManager.Manager.AddSceneEntity(_spaceBox); //Sphere _object = new SceneEntity("Sphere1", new ActionCode(), _emptySphere, new SpecularMaterial(MoreShaders.GetSpecularShader(RC), "Assets/metall2.jpg"), new Renderer(sphere)); _object.transform.GlobalPosition = new float3(2, 0, 0); _object.transform.GlobalScale = new float3(0.5f, 0.5f, 0.5f); // LightObject _object = new SceneEntity("DirLight", new RotateAction(new float3(0, 20, 0)), _emptyLight, new DiffuseMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/metall2.jpg"), new Renderer(lamp)); _object.transform.GlobalPosition = new float3(0, 0, 0); _object.transform.GlobalScale = new float3(0.7f, 0.7f, 0.7f); _object.AddComponent(spot); SceneEntity _object2 = new SceneEntity("FlyingLight", new RotatingLightAction(new float3(0, 0, 0)), _object, new DiffuseMaterial(MoreShaders.GetDiffuseTextureShader(RC), "Assets/metall2.jpg"), new Renderer(sphere2)); _object2.transform.GlobalPosition = new float3(0, 3, 0); //_object2.transform.GlobalScale = new float3(1, 1, 1); //_object2.AddComponent(point); //Cube _object = new SceneEntity("Cube1", new ActionCode(), _emptyCube, new BumpMaterial(MoreShaders.GetBumpDiffuseShader(RC), "Assets/metall2.jpg", "Assets/normal2.jpg"), new Renderer(cube)); _object.transform.GlobalPosition = new float3(5, 0, 0); //_object.transform.GlobalScale = new float3(0.01f, 0.01f, 0.01f); //Root _object = new SceneEntity("Root1", new ActionCode(), _emptyRoot); _object.transform.GlobalPosition = new float3(0, 0, 0); _object.transform.GlobalScale = new float3(1, 1, 1); SceneManager.Manager.StartActionCode(); RC.ClearColor = new float4(1, 0, 0, 1); }
/// <summary> /// Visits the specified <see cref="Camera"/> to collect data if required by the current Visitor derivate. /// </summary> /// <param name="camera">The camera.</param> public override void Visit(Camera camera) { if (_mtxModelViewStack.Count > 0) { camera.ViewMatrix = _mtxModelViewStack.Peek(); _queue.AddCamera(camera.SubmitWork()); } }