Компьютерная графика, мультимедиа и игры на Visual C#


         

Глава Методика проектирования неподвижных и подвижных пространственных фигур - часть 5


        myPresentParameters.EnableAutoDepthStencil = true;

        myPresentParameters.AutoDepthStencilFormat =

            DepthFormat.D16;

        //Создаем устройство для визуализации:

        myDevice = new Device(0, DeviceType.Hardware, this,

            CreateFlags.SoftwareVertexProcessing,

            myPresentParameters);

        myDevice.DeviceReset +=

            new System.EventHandler(this.OnResetDevice);

        this.OnCreateDevice(myDevice, null);

        this.OnResetDevice(myDevice, null);

        myPause = false;

        return true;

    }

    catch (DirectXException)

    {

        //Перехвачена ошибка инициализации DirectX:

        return false;

    }

}

//Создаем буфер вершин фигуры:

public void OnCreateDevice(object sender, EventArgs e)

{

    Device myDev = (Device)sender;

    myVertexBuffer = new VertexBuffer(

        typeof(CustomVertex.PositionNormalTextured), 100,

        myDev, Usage.WriteOnly,

        CustomVertex.PositionNormalTextured.Format,

        Pool.Default);

    myVertexBuffer.Created +=

        new System.EventHandler(this.OnCreateVertexBuffer);

    this.OnCreateVertexBuffer(myVertexBuffer, null);

}

//Задаем параметры устройству:

public void OnResetDevice(object sender, EventArgs e)

{

    Device myDev = (Device)sender;

    //Выключаем режим CullMode, чтобы видеть

    //внутреннюю и наружную поверхности фигуры:

    myDev.RenderState.CullMode = Cull.None;

    //Выключаем трехмерное освещение:

    myDev.RenderState.Lighting = false;

    //Включаем Z - буфер (ZBuffer):

    myDev.RenderState.ZBufferEnable = true;

    //Создаем нашу текстуру.

    //Загружаем на поверхность фигуры наш рисунок Texture_1

    //в виде текстуры:

    myTexture = TextureLoader.FromFile(myDev,

        Application.StartupPath + @"\..\..\Texture_1.bmp");

}

//Строим фигуру в буфере вершин:

public void OnCreateVertexBuffer(object sender, EventArgs e)

{

    VertexBuffer myVB = (VertexBuffer)sender;

    //В структуре PositionNormalTextured




Содержание  Назад  Вперед