protected override void OnRender(double dt) { inputManager.Update((float)dt); graphicsDevice.ShaderProgram = shaderProgram; viewUniform.SetValueMat4(inputManager.CalculateViewMatrixNoTranslation()); graphicsDevice.VertexArray = vertexBuffer; graphicsDevice.DrawArrays(PrimitiveType.TriangleStrip, 0, vertexBuffer.StorageLength); }
protected override void OnLoad() { inputManager = new InputManager3D(InputContext); cubemap = TextureCubemapExtensions.FromFiles( graphicsDevice, "cubemap/back.png", "cubemap/front.png", "cubemap/bottom.png", "cubemap/top.png", "cubemap/left.png", "cubemap/right.png" ); cubemap.SetTextureFilters(TextureMinFilter.Linear, TextureMagFilter.Linear); shaderProgram = ShaderProgram.FromFiles <VertexPosition>(graphicsDevice, "vs.glsl", "fs.glsl", "vPosition"); shaderProgram.Uniforms["cubemap"].SetValueTexture(cubemap); shaderProgram.Uniforms["World"].SetValueMat4(Matrix4x4.Identity); viewUniform = shaderProgram.Uniforms["View"]; viewUniform.SetValueMat4(Matrix4x4.Identity); Span <VertexPosition> vertexData = stackalloc VertexPosition[] { new Vector3(-0.5f, -0.5f, -0.5f), //4 new Vector3(-0.5f, -0.5f, 0.5f), //3 new Vector3(-0.5f, 0.5f, -0.5f), //7 new Vector3(-0.5f, 0.5f, 0.5f), //8 new Vector3(0.5f, 0.5f, 0.5f), //5 new Vector3(-0.5f, -0.5f, 0.5f), //3 new Vector3(0.5f, -0.5f, 0.5f), //1 new Vector3(-0.5f, -0.5f, -0.5f), //4 new Vector3(0.5f, -0.5f, -0.5f), //2 new Vector3(-0.5f, 0.5f, -0.5f), //7 new Vector3(0.5f, 0.5f, -0.5f), //6 new Vector3(0.5f, 0.5f, 0.5f), //5 new Vector3(0.5f, -0.5f, -0.5f), //2 new Vector3(0.5f, -0.5f, 0.5f), //1 }; vertexBuffer = new VertexBuffer <VertexPosition>(graphicsDevice, vertexData, BufferUsage.StaticDraw); graphicsDevice.DepthTestingEnabled = false; graphicsDevice.BlendingEnabled = false; }