Beispiel #1
0
        //public CubeComponentTextured(Direct3D11.Device device, string pathToTexture)
        //{
        //    this.Device = device;



        //    Texture = TextureLoader.CreateTexture2DFromBitmap(device, TextureLoader.LoadBitmap(new SharpDX.WIC.ImagingFactory2(), pathToTexture));
        //    TextureView = new ShaderResourceView(device, Texture);
        //    SamplerStateDescription = new SamplerStateDescription
        //    {
        //        AddressU = TextureAddressMode.Wrap,
        //        AddressV = TextureAddressMode.Wrap,
        //        AddressW = TextureAddressMode.Wrap,
        //        Filter = Filter.MinMagMipLinear,
        //    };
        //    Sampler = new SamplerState(device, SamplerStateDescription);

        //    InitialPosition = new Vector3(0f, 0f, 0f);
        //    RotationCenter = InitialPosition;
        //    Rotation = Matrix.RotationYawPitchRoll(0.0f, 0.0f, 0.0f);
        //    Translation = new Vector3(0f, 0f, 0f);
        //    ScalingCenter = InitialPosition;
        //    Scaling = new Vector3(1f, 1f, 1f);

        //    VertexBuffer = Direct3D11.Buffer.Create(device, Direct3D11.BindFlags.VertexBuffer, Vertices);
        //    ConstantBuffer = new Direct3D11.Buffer(device, Utilities.SizeOf<Matrix>(), ResourceUsage.Default,
        //        BindFlags.ConstantBuffer, CpuAccessFlags.None, ResourceOptionFlags.None, 0);
        //    MaterialBuf = new Direct3D11.Buffer(device, Utilities.SizeOf<MaterialBufferStruct>(),
        //        ResourceUsage.Default, BindFlags.ConstantBuffer, CpuAccessFlags.None,
        //        ResourceOptionFlags.None, 0);
        //    MatricesBuf = new Direct3D11.Buffer(device, Utilities.SizeOf<MatrixBufferStruct>(),
        //        ResourceUsage.Default, BindFlags.ConstantBuffer, CpuAccessFlags.None,
        //        ResourceOptionFlags.None, 0);
        //    ShadowTransformBuffer = new Direct3D11.Buffer(device, Utilities.SizeOf<Matrix>(),
        //        ResourceUsage.Default, BindFlags.ConstantBuffer, CpuAccessFlags.None,
        //        ResourceOptionFlags.None, 0);
        //    ShadowWorldBuffer = new Direct3D11.Buffer(device, Utilities.SizeOf<MatrixBufferStruct>(),
        //        ResourceUsage.Default, BindFlags.ConstantBuffer, CpuAccessFlags.None,
        //        ResourceOptionFlags.None, 0);

        //    Material = new Silver();
        //    MaterialBufStruct = new MaterialBufferStruct
        //    {
        //        Absorption = new Vector4(Material.Absorption, 0f),
        //        Ambient = new Vector4(Material.Ambient, 0f),
        //        Diffuse = new Vector4(Material.Diffuse, 0f),
        //        Shiness = Material.Shiness
        //    };
        //}

        protected override void InitializeVertices(string filePath)
        {
            InitialPoints = new Vector4[]
            {
                new Vector4(-1.0f, -1.0f, -1.0f, 1.0f), new Vector4(1.0f, 0.0f, 0.0f, 1.0f),     // Front
                new Vector4(-1.0f, 1.0f, -1.0f, 1.0f), new Vector4(1.0f, 0.0f, 0.0f, 1.0f),
                new Vector4(1.0f, 1.0f, -1.0f, 1.0f), new Vector4(1.0f, 0.0f, 0.0f, 1.0f),
                new Vector4(-1.0f, -1.0f, -1.0f, 1.0f), new Vector4(1.0f, 0.0f, 0.0f, 1.0f),
                new Vector4(1.0f, 1.0f, -1.0f, 1.0f), new Vector4(1.0f, 0.0f, 0.0f, 1.0f),
                new Vector4(1.0f, -1.0f, -1.0f, 1.0f), new Vector4(1.0f, 0.0f, 0.0f, 1.0f),
                new Vector4(-1.0f, -1.0f, 1.0f, 1.0f), new Vector4(0.0f, 1.0f, 0.0f, 1.0f),      // BACK
                new Vector4(1.0f, 1.0f, 1.0f, 1.0f), new Vector4(0.0f, 1.0f, 0.0f, 1.0f),
                new Vector4(-1.0f, 1.0f, 1.0f, 1.0f), new Vector4(0.0f, 1.0f, 0.0f, 1.0f),
                new Vector4(-1.0f, -1.0f, 1.0f, 1.0f), new Vector4(0.0f, 1.0f, 0.0f, 1.0f),
                new Vector4(1.0f, -1.0f, 1.0f, 1.0f), new Vector4(0.0f, 1.0f, 0.0f, 1.0f),
                new Vector4(1.0f, 1.0f, 1.0f, 1.0f), new Vector4(0.0f, 1.0f, 0.0f, 1.0f),
                new Vector4(-1.0f, 1.0f, -1.0f, 1.0f), new Vector4(0.0f, 0.0f, 1.0f, 1.0f),      // Top
                new Vector4(-1.0f, 1.0f, 1.0f, 1.0f), new Vector4(0.0f, 0.0f, 1.0f, 1.0f),
                new Vector4(1.0f, 1.0f, 1.0f, 1.0f), new Vector4(0.0f, 0.0f, 1.0f, 1.0f),
                new Vector4(-1.0f, 1.0f, -1.0f, 1.0f), new Vector4(0.0f, 0.0f, 1.0f, 1.0f),
                new Vector4(1.0f, 1.0f, 1.0f, 1.0f), new Vector4(0.0f, 0.0f, 1.0f, 1.0f),
                new Vector4(1.0f, 1.0f, -1.0f, 1.0f), new Vector4(0.0f, 0.0f, 1.0f, 1.0f),
                new Vector4(-1.0f, -1.0f, -1.0f, 1.0f), new Vector4(1.0f, 1.0f, 0.0f, 1.0f),     // Bottom
                new Vector4(1.0f, -1.0f, 1.0f, 1.0f), new Vector4(1.0f, 1.0f, 0.0f, 1.0f),
                new Vector4(-1.0f, -1.0f, 1.0f, 1.0f), new Vector4(1.0f, 1.0f, 0.0f, 1.0f),
                new Vector4(-1.0f, -1.0f, -1.0f, 1.0f), new Vector4(1.0f, 1.0f, 0.0f, 1.0f),
                new Vector4(1.0f, -1.0f, -1.0f, 1.0f), new Vector4(1.0f, 1.0f, 0.0f, 1.0f),
                new Vector4(1.0f, -1.0f, 1.0f, 1.0f), new Vector4(1.0f, 1.0f, 0.0f, 1.0f),
                new Vector4(-1.0f, -1.0f, -1.0f, 1.0f), new Vector4(1.0f, 0.0f, 1.0f, 1.0f),     // Left
                new Vector4(-1.0f, -1.0f, 1.0f, 1.0f), new Vector4(1.0f, 0.0f, 1.0f, 1.0f),
                new Vector4(-1.0f, 1.0f, 1.0f, 1.0f), new Vector4(1.0f, 0.0f, 1.0f, 1.0f),
                new Vector4(-1.0f, -1.0f, -1.0f, 1.0f), new Vector4(1.0f, 0.0f, 1.0f, 1.0f),
                new Vector4(-1.0f, 1.0f, 1.0f, 1.0f), new Vector4(1.0f, 0.0f, 1.0f, 1.0f),
                new Vector4(-1.0f, 1.0f, -1.0f, 1.0f), new Vector4(1.0f, 0.0f, 1.0f, 1.0f),
                new Vector4(1.0f, -1.0f, -1.0f, 1.0f), new Vector4(0.0f, 1.0f, 1.0f, 1.0f),      // Right
                new Vector4(1.0f, 1.0f, 1.0f, 1.0f), new Vector4(0.0f, 1.0f, 1.0f, 1.0f),
                new Vector4(1.0f, -1.0f, 1.0f, 1.0f), new Vector4(0.0f, 1.0f, 1.0f, 1.0f),
                new Vector4(1.0f, -1.0f, -1.0f, 1.0f), new Vector4(0.0f, 1.0f, 1.0f, 1.0f),
                new Vector4(1.0f, 1.0f, -1.0f, 1.0f), new Vector4(0.0f, 1.0f, 1.0f, 1.0f),
                new Vector4(1.0f, 1.0f, 1.0f, 1.0f), new Vector4(0.0f, 1.0f, 1.0f, 1.0f),
            };

            textCoords = new Vector2[]
            {
                new Vector2(0.25f, 0.66f), // Front
                new Vector2(0.25f, 0.33f),
                new Vector2(0.5f, 0.33f),
                new Vector2(0.25f, 0.66f),
                new Vector2(0.5f, 0.33f),
                new Vector2(0.5f, 0.66f),
                new Vector2(0.25f, 0.66f), // BACK
                new Vector2(0.75f, 0.66f),
                new Vector2(0.75f, 0.33f),
                new Vector2(0.75f, 0.66f),
                new Vector2(1f, 0.66f),
                new Vector2(1f, 0.33f),
                new Vector2(0.25f, 0.33f), // Top
                new Vector2(0.25f, 0f),
                new Vector2(0.5f, 0f),
                new Vector2(0.25f, 0.33f),
                new Vector2(0.5f, 0.33f),
                new Vector2(0.5f, 0f),
                new Vector2(0.25f, 1f),    // Bottom
                new Vector2(0.5f, 0.66f),
                new Vector2(0.25f, 0.66f),
                new Vector2(0.25f, 1f),
                new Vector2(0.5f, 1f),
                new Vector2(0.5f, 0.66f),
                new Vector2(0f, 0.66f),    // Left
                new Vector2(0f, 0.33f),
                new Vector2(0.25f, 0.33f),
                new Vector2(0f, 0.66f),
                new Vector2(0.25f, 0.33f),
                new Vector2(0.25f, 0.66f),
                new Vector2(0.5f, 0.66f),  // Right
                new Vector2(0.75f, 0.33f),
                new Vector2(0.5f, 0.33f),
                new Vector2(0.5f, 0.66f),
                new Vector2(0.75f, 0.66f),
                new Vector2(0.75f, 0.33f),
            };

            Vertices = new VertexPositionNormalTexture[textCoords.Count()];
            for (int i = 0; i < InitialPoints.Count(); i += 2)
            {
                Vertices[i / 2] = new VertexPositionNormalTexture(InitialPoints[i], Color.Blue.ToColor4(), textCoords[i / 2]);
            }

            InitialVertices = Vertices;
        }