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


         

Определяем освещение фигуры цветом формата


    //При помощи матрицы проецирования (projection matrix)
    //выполняем перспективные преобразования:
    myDevice.Transform.Projection =
        Matrix.PerspectiveFovLH(
        (float)Math.PI / 4.0f, 1.0f, 1.0f, 100.0f);
}
// Определяем освещение фигуры цветом формата ARGB:
private void SetupLights()
{
    //Устанавливаем материал и его цвет.
    //Можно одновременно использовать только один материал:
    Material myMaterial = new Material();
    Color myColor = Color.White;
    myMaterial.Diffuse = myColor;
    myMaterial.Ambient = myColor;
    myDevice.Material = myMaterial;
    //Устанавливаем белое освещение
    //с изменяющимся направлением:
    myDevice.Lights[0].Type = LightType.Directional;
    myDevice.Lights[0].Diffuse = Color.DarkTurquoise;
    myDevice.Lights[0].Direction = new Vector3(
       (float)Math.Cos(Environment.TickCount / 250.0f), 1.0f,
       (float)Math.Sin(Environment.TickCount / 250.0f));
    //Включаем освещение:
    myDevice.Lights[0].Enabled = true;
    //Включаем немного отраженного (Ambient)
    //равномерно рассеянного света:
    myDevice.RenderState.Ambient = Color.FromArgb(0x202020);
}
//Выполняем визуализацию преобразованных вершин:
public void myRendering()
{
    if (myPause) return;
    //Очищаем и заливаем форму Form1 белым цветом:
    myDevice.Clear(ClearFlags.Target | ClearFlags.ZBuffer,
        Color.White, 1.0f, 0);
    //Начинаем сцену:
    myDevice.BeginScene();
    //Устанавливаем освещение и матерал:
    SetupLights();
    //Задаем матрицы (world, view, projection):
    SetupMatrices();
    myDevice.SetStreamSource(0, myVertexBuffer, 0);
    myDevice.VertexFormat =
        CustomVertex.PositionNormal.Format;
    //Рисуем фигуру:
    myDevice.DrawPrimitives(
        PrimitiveType.TriangleStrip, 0, (4 * 25) - 2);
    //Заканчиваем сцену:
    myDevice.EndScene();
    //Обновляем экран:
    myDevice.Present();
}
//Останавливаем вращение фигуры
//во время изменения размеров формы Form1:   

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