Пример #1
0
        private void BuildRoomGeometryBuffers()
        {
            var v = new Basic32[30];

            // Floor
            v[0] = new Basic32(new Vector3(-3.5f, 0, -10), new Vector3(0, 1, 0), new Vector2(0, 4));
            v[1] = new Basic32(new Vector3(-3.5f, 0, 0), new Vector3(0, 1, 0), new Vector2(0, 0));
            v[2] = new Basic32(new Vector3(7.5f, 0, 0), new Vector3(0, 1, 0), new Vector2(4, 0));

            v[3] = new Basic32(new Vector3(-3.5f, 0, -10), new Vector3(0, 1, 0), new Vector2(0, 4));
            v[4] = new Basic32(new Vector3(7.5f, 0, 0), new Vector3(0, 1, 0), new Vector2(4, 0));
            v[5] = new Basic32(new Vector3(7.5f, 0, -10), new Vector3(0, 1, 0), new Vector2(4, 4));

            // Wall
            v[6] = new Basic32(new Vector3(-3.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(0, 2));
            v[7] = new Basic32(new Vector3(-3.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(0, 0));
            v[8] = new Basic32(new Vector3(-2.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(0.5f, 0));

            v[9]  = new Basic32(new Vector3(-3.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(0, 2));
            v[10] = new Basic32(new Vector3(-2.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(0.5f, 0));
            v[11] = new Basic32(new Vector3(-2.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(0.5f, 2.0f));

            v[12] = new Basic32(new Vector3(2.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(0, 2));
            v[13] = new Basic32(new Vector3(2.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(0, 0));
            v[14] = new Basic32(new Vector3(7.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(2, 0));

            v[15] = new Basic32(new Vector3(2.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(0, 2));
            v[16] = new Basic32(new Vector3(7.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(2, 0));
            v[17] = new Basic32(new Vector3(7.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(2, 2));

            v[18] = new Basic32(new Vector3(-3.5f, 4.0f, 0), new Vector3(0, 0, -1), new Vector2(0, 1));
            v[19] = new Basic32(new Vector3(-3.5f, 6, 0), new Vector3(0, 0, -1), new Vector2(0, 0));
            v[20] = new Basic32(new Vector3(7.5f, 6, 0), new Vector3(0, 0, -1), new Vector2(6, 0));

            v[21] = new Basic32(new Vector3(-3.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(0, 1));
            v[22] = new Basic32(new Vector3(7.5f, 6, 0), new Vector3(0, 0, -1), new Vector2(6, 0));
            v[23] = new Basic32(new Vector3(7.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(6, 1));

            // Mirror
            v[24] = new Basic32(new Vector3(-2.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(0, 1));
            v[25] = new Basic32(new Vector3(-2.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(0, 0));
            v[26] = new Basic32(new Vector3(2.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(1, 0));

            v[27] = new Basic32(new Vector3(-2.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(0, 1));
            v[28] = new Basic32(new Vector3(2.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(1, 0));
            v[29] = new Basic32(new Vector3(2.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(1, 1));

            var vbd = new BufferDescription {
                Usage               = ResourceUsage.Immutable,
                SizeInBytes         = Basic32.Stride * 30,
                BindFlags           = BindFlags.VertexBuffer,
                CpuAccessFlags      = CpuAccessFlags.None,
                OptionFlags         = ResourceOptionFlags.None,
                StructureByteStride = 0
            };

            _roomVB = new Buffer(Device, new DataStream(v.ToArray(), false, false), vbd);
        }
Пример #2
0
        private void BuildFullScreenQuad()
        {
            var v = new Basic32[4];

            // normal.X contains frustum corner array index
            v[0] = new Basic32(new Vector3(-1, -1, 0), new Vector3(0, 0, 0), new Vector2(0, 1));
            v[1] = new Basic32(new Vector3(-1, +1, 0), new Vector3(1, 0, 0), new Vector2(0, 0));
            v[2] = new Basic32(new Vector3(+1, +1, 0), new Vector3(2, 0, 0), new Vector2(1, 0));
            v[3] = new Basic32(new Vector3(+1, -1, 0), new Vector3(3, 0, 0), new Vector2(1, 1));

            var vbd = new BufferDescription(Basic32.Stride * 4, ResourceUsage.Immutable, BindFlags.VertexBuffer,
                                            CpuAccessFlags.None, ResourceOptionFlags.None, 0);

            _screenQuadVB = new Buffer(_device, new DataStream(v, false, false), vbd);

            var indices = new short[] { 0, 1, 2, 0, 2, 3 };
            var ibd     = new BufferDescription(sizeof(short) * 6, ResourceUsage.Immutable, BindFlags.IndexBuffer,
                                                CpuAccessFlags.None, ResourceOptionFlags.None, 0);

            _screenQuadIB = new Buffer(_device, new DataStream(indices, false, false), ibd);
        }
Пример #3
0
        private void BuildRoomGeometryBuffers() {
            var v = new Basic32[30];

            // Floor
            v[0] = new Basic32(new Vector3(-3.5f, 0, -10), new Vector3(0,1,0), new Vector2(0, 4)  );
            v[1] = new Basic32(new Vector3(-3.5f, 0, 0), new Vector3(0, 1, 0), new Vector2(0, 0));
            v[2] = new Basic32(new Vector3(7.5f, 0, 0), new Vector3(0, 1, 0), new Vector2(4, 0)); 
            
            v[3] = new Basic32(new Vector3(-3.5f, 0, -10), new Vector3(0, 1, 0), new Vector2(0, 4));
            v[4] = new Basic32(new Vector3(7.5f, 0, 0), new Vector3(0, 1, 0), new Vector2(4, 0)); 
            v[5] = new Basic32(new Vector3(7.5f, 0, -10), new Vector3(0, 1, 0), new Vector2(4, 4));

            // Wall
            v[6] = new Basic32(new Vector3(-3.5f, 0, 0), new Vector3(0,  0, -1), new Vector2(0, 2));
            v[7] = new Basic32(new Vector3(-3.5f, 4, 0), new Vector3(0,  0, -1), new Vector2(0, 0));
            v[8] = new Basic32(new Vector3(-2.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(0.5f, 0));

            v[9] = new Basic32(new Vector3(-3.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(0, 2));
            v[10] = new Basic32(new Vector3(-2.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(0.5f, 0));
            v[11] = new Basic32(new Vector3(-2.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(0.5f, 2.0f));

            v[12] = new Basic32(new Vector3(2.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(0, 2));
            v[13] = new Basic32(new Vector3(2.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(0, 0));
            v[14] = new Basic32(new Vector3(7.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(2, 0));

            v[15] = new Basic32(new Vector3(2.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(0, 2));
            v[16] = new Basic32(new Vector3(7.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(2, 0));
            v[17] = new Basic32(new Vector3(7.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(2, 2));

            v[18] = new Basic32(new Vector3(-3.5f, 4.0f, 0), new Vector3(0, 0, -1), new Vector2(0, 1));
            v[19] = new Basic32(new Vector3(-3.5f, 6, 0), new Vector3(0, 0, -1), new Vector2(0, 0));
            v[20] = new Basic32(new Vector3(7.5f, 6, 0), new Vector3(0, 0, -1), new Vector2(6, 0));

            v[21] = new Basic32(new Vector3(-3.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(0, 1));
            v[22] = new Basic32(new Vector3(7.5f, 6, 0), new Vector3(0, 0, -1), new Vector2(6, 0));
            v[23] = new Basic32(new Vector3(7.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(6, 1));

            // Mirror
            v[24] = new Basic32(new Vector3(-2.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(0, 1));
            v[25] = new Basic32(new Vector3(-2.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(0, 0));
            v[26] = new Basic32(new Vector3(2.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(1, 0));

            v[27] = new Basic32(new Vector3(-2.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(0, 1));
            v[28] = new Basic32(new Vector3(2.5f, 4, 0), new Vector3(0, 0, -1), new Vector2(1, 0));
            v[29] = new Basic32(new Vector3(2.5f, 0, 0), new Vector3(0, 0, -1), new Vector2(1, 1));

            var vbd = new BufferDescription {
                Usage = ResourceUsage.Immutable,
                SizeInBytes = Basic32.Stride * 30,
                BindFlags = BindFlags.VertexBuffer,
                CpuAccessFlags = CpuAccessFlags.None,
                OptionFlags = ResourceOptionFlags.None,
                StructureByteStride = 0
            };
            _roomVB= new Buffer(Device, new DataStream(v.ToArray(), false, false), vbd);
        }
Пример #4
0
        private void BuildFullScreenQuad() {
            var v = new Basic32[4];
            // normal.X contains frustum corner array index
            v[0] = new Basic32(new Vector3(-1, -1, 0), new Vector3(0, 0, 0), new Vector2(0, 1));
            v[1] = new Basic32(new Vector3(-1, +1, 0), new Vector3(1, 0, 0), new Vector2(0, 0));
            v[2] = new Basic32(new Vector3(+1, +1, 0), new Vector3(2, 0, 0), new Vector2(1, 0));
            v[3] = new Basic32(new Vector3(+1, -1, 0), new Vector3(3, 0, 0), new Vector2(1, 1));

            var vbd = new BufferDescription(Basic32.Stride * 4, ResourceUsage.Immutable, BindFlags.VertexBuffer,
                CpuAccessFlags.None, ResourceOptionFlags.None, 0);

            _screenQuadVB = new Buffer(_device, new DataStream(v, false, false), vbd);

            var indices = new short[] { 0, 1, 2, 0, 2, 3 };
            var ibd = new BufferDescription(sizeof(short) * 6, ResourceUsage.Immutable, BindFlags.IndexBuffer,
                CpuAccessFlags.None, ResourceOptionFlags.None, 0);
            _screenQuadIB = new Buffer(_device, new DataStream(indices, false, false), ibd);

        }