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


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


{

    Device myDev = (Device)sender;

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

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

    myDev.RenderState.CullMode = Cull.None;

    //Выключаем освещение Direct3D, так как мы задали

    //наши собственные цвета в вершинах:

    myDev.RenderState.Lighting = false;

}

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

public void OnCreateVertexBuffer(object sender, EventArgs e)

{

    //Для 4-х вершин прямоугольника:

    VertexBuffer myVB = (VertexBuffer)sender;

    CustomVertex.PositionColored[] Vertex = (

        CustomVertex.PositionColored[])myVB.Lock(0, 0);

    //Вершина 0:

    Vertex[0].X = -1.0f; Vertex[0].Y = -1.0f;

    Vertex[0].Z = 0.0f;

    Vertex[0].Color = System.Drawing.Color.Black.ToArgb();

    //Вершина 1:

    Vertex[1].X = -1.0f; Vertex[1].Y = 1.0f;

    Vertex[1].Z = 0.0f;

    Vertex[1].Color =

    System.Drawing.Color.MediumOrchid.ToArgb();

    //Вершина 2:

    Vertex[2].X = 1.0f; Vertex[2].Y = -1.0f;

    Vertex[2].Z = 0.0f;

    Vertex[2].Color = System.Drawing.Color.Black.ToArgb();

    //Вершина 3:

    Vertex[3].X = 1.0f; Vertex[3].Y = 1.0f;

    Vertex[3].Z = 0.0f;

    Vertex[3].Color = System.Drawing.Color.Cornsilk.ToArgb();

 

    myVB.Unlock();

}

//Выполняем визуализацию преобразованных вершин:

public void myRendering()

{

    if (myDevice == null) return;

    if (myPause) return;

    //Очищаем и заливаем форму Form1 белым цветом:

    myDevice.Clear(ClearFlags.Target,

        System.Drawing.Color.White, 1.0f, 0);

    //Начинаем сцену:

    myDevice.BeginScene();

    //Используем матрицы для выполнения преобразований:

    SetupMatrices();

    myDevice.SetStreamSource(0, myVertexBuffer, 0);

    myDevice.VertexFormat =

        CustomVertex.PositionColored.Format;

    //Для прямоугольника:

    myDevice.DrawPrimitives(PrimitiveType.TriangleStrip, 0, 2);

    //Заканчиваем сцену:

    myDevice.EndScene();

    myDevice.Present();

}

//Включаем таймер и выполняем матричные преобразования:




Начало  Назад  Вперед



Книжный магазин