예제 #1
0
        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);
        }
예제 #2
0
        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;
        }