private void ControllerDraw(Controller3D mc, ulong time) { // System.Diagnostics.Debug.WriteLine("Draw eye " + gl3dcontroller.MatrixCalc.EyePosition + " to " + gl3dcontroller.Pos.Current); float zeroone10s = ((float)(time % 10000)) / 10000.0f; float zeroone5s = ((float)(time % 5000)) / 5000.0f; float zerotwo5s = ((float)(time % 5000)) / 2500.0f; float degrees = zeroone10s * 360; // matrixbuffer.Write(Matrix4.CreateTranslation(new Vector3(zeroone * 20, 50, 0)),0,true); if (items.Contains("ShaderPos")) { ((GLMultipleTexturedBlended)items.Shader("ShaderPos")).CommonTransform.YRotDegrees = degrees; ((GLMultipleTexturedBlended)items.Shader("ShaderPos")).Blend = zerotwo5s; } if (items.Contains("ShaderMat")) { ((GLMultipleTexturedBlended)items.Shader("ShaderMat")).CommonTransform.ZRotDegrees = degrees; ((GLMultipleTexturedBlended)items.Shader("ShaderMat")).Blend = zerotwo5s; } GLMatrixCalcUniformBlock mcub = (GLMatrixCalcUniformBlock)items.UB("MCUB"); mcub.Set(gl3dcontroller.MatrixCalc); rObjects.Render(glwfc.RenderState, gl3dcontroller.MatrixCalc); this.Text = "Looking at " + gl3dcontroller.MatrixCalc.LookAt + " dir " + gl3dcontroller.PosCamera.CameraDirection + " Dist " + gl3dcontroller.MatrixCalc.EyeDistance; }
private void ControllerDraw(Controller3D mc, ulong time) { // System.Diagnostics.Debug.WriteLine("Draw eye " + gl3dcontroller.MatrixCalc.EyePosition + " to " + gl3dcontroller.Pos.Current); float zeroone10000s = ((float)(time % 10000000)) / 10000000.0f; float zeroone5000s = ((float)(time % 5000000)) / 5000000.0f; float zeroone1000s = ((float)(time % 1000000)) / 1000000.0f; float zeroone500s = ((float)(time % 500000)) / 500000.0f; float zeroone100s = ((float)(time % 100000)) / 100000.0f; float zeroone10s = ((float)(time % 10000)) / 10000.0f; float zeroone5s = ((float)(time % 5000)) / 5000.0f; float zerotwo5s = ((float)(time % 5000)) / 2500.0f; float timediv10s = (float)time / 10000.0f; float timediv100s = (float)time / 100000.0f; if (items.Contains("STAR")) { int vid = items.Shader("STAR").GetShader(OpenTK.Graphics.OpenGL4.ShaderType.FragmentShader).Id; ((GLRenderDataTranslationRotation)(rObjects["sun"].RenderData)).RotationDegrees = new Vector3(0, -zeroone100s * 360, 0); var stellarsurfaceshader = (GLPLStarSurfaceFragmentShader)items.Shader("STAR").GetShader(OpenTK.Graphics.OpenGL4.ShaderType.FragmentShader); stellarsurfaceshader.TimeDeltaSpots = zeroone500s; stellarsurfaceshader.TimeDeltaSurface = timediv100s; } if (items.Contains("STAR-M2")) { var vid = items.Shader("STAR-M2").GetShader(OpenTK.Graphics.OpenGL4.ShaderType.VertexShader); ((GLPLVertexShaderModelCoordWorldAutoscale)vid).ModelTranslation = Matrix4.CreateRotationY((float)(-zeroone10s * Math.PI * 2)); var stellarsurfaceshader = (GLPLStarSurfaceFragmentShader)items.Shader("STAR-M2").GetShader(OpenTK.Graphics.OpenGL4.ShaderType.FragmentShader); stellarsurfaceshader.TimeDeltaSpots = zeroone500s; stellarsurfaceshader.TimeDeltaSurface = timediv100s; } if (items.Contains("STAR-M3")) { var vid = items.Shader("STAR-M3").GetShader(OpenTK.Graphics.OpenGL4.ShaderType.VertexShader); ((GLPLVertexShaderModelCoordWorldAutoscale)vid).ModelTranslation = Matrix4.CreateRotationY((float)(-zeroone10s * Math.PI * 2)); var stellarsurfaceshader = (GLPLStarSurfaceFragmentShader)items.Shader("STAR-M3").GetShader(OpenTK.Graphics.OpenGL4.ShaderType.FragmentShader); stellarsurfaceshader.TimeDeltaSpots = zeroone500s; stellarsurfaceshader.TimeDeltaSurface = timediv100s; } if (items.Contains("CORONA")) { ((GLShaderStarCorona)items.Shader("CORONA")).TimeDelta = (float)time / 100000f; } GLMatrixCalcUniformBlock mcub = (GLMatrixCalcUniformBlock)items.UB("MCUB"); mcub.Set(gl3dcontroller.MatrixCalc); rObjects.Render(glwfc.RenderState, gl3dcontroller.MatrixCalc); GL.MemoryBarrier(MemoryBarrierFlags.AllBarrierBits); this.Text = //"Freq " + frequency.ToString("#.#########") + " unRadius " + unRadius + " scutoff" + scutoff + " BD " + blackdeepness + " CE " + concentrationequator " Looking at " + gl3dcontroller.MatrixCalc.LookAt + " dir " + gl3dcontroller.PosCamera.CameraDirection + " Dist " + gl3dcontroller.MatrixCalc.EyeDistance; }