Основы построения 3-х мерных сцен с использованием библиотеки DirectX. Макушкина Л.А - 24 стр.

UptoLike

26
ЛАБОРАТОРНАЯ РАБОТА 5
Тема: «СМЕШЕНИЕ ЦВЕТОВ И ПРОЗРАЧНОСТЬ»
Цель лабораторной работы: изучить функцию смешения цветов и факторы
смешения.
Теоретическая часть.
Одним из эффектов, способных положительно повлиять на восприятие
пользователем сцены, является прозрачность. Давайте попробуем создать два
вращающихся объекта: треугольник и квадрат, при этом цвет их будет
смешиваться в тех областях, где фигуры перекрывают друг друга.
Создайте новое приложение и добавьте инициализацию Direct3D. Сцену
мы будем формировать через буфер вершин, поэтому нам понадобится структура,
описывающая формат вершины, массив вершин и буфер:
IDirect3DVertexBuffer9:
struct sVertex
(
float x, у, z;
DWORD color;
);
sVertex Triangle[7];
IDirect3DVertexBuffer9 * vTriangleBuffer;
Обе фигуры будем хранить в одном буфере. Для отображения
треугольника нам понадобятся три вершины, а для прямоугольника достаточно
четырех вершин, из которых можно будет сформировать два треугольника.
После инициализации Direct3D заполняем вершины значениями, создаем
интерфейс iDirect3DVertexBuffer9 и переносим значения вершин в созданный
буфер. Код инициализации буфера показан в листинге 5.1.
Листинг 5.1 - Инициализация и заполнение буфера вершин
// Заполняем массив вершин значениями
// Первые три вершины - треугольник
Triangle[0].x=0.7f;
Triangle[0].y=-0.3f;
Triangle[0].z=0.1f;
Triangle[1].x=-0.7f;
Triangle[1].y=-0.3f;
Triangle[1].z=0.1f;
Triangle[2].x=0.0f;
Triangle[2].y=0.7f;
Triangle[2].z=0.If;
// Следующие четыре вершины - прямоугольник
Triangle[3].x=-0.5f;
Triangle[3].y=-0.5f;
Triangle[3].z=0.1f;
Triangle[4].x=-0.5f;
                       ЛАБОРАТОРНАЯ РАБОТА №5

            Тема: «СМЕШЕНИЕ ЦВЕТОВ И ПРОЗРАЧНОСТЬ»
    Цель лабораторной работы: изучить функцию смешения цветов и факторы
смешения.
      Теоретическая часть.
      Одним из эффектов, способных положительно повлиять на восприятие
пользователем сцены, является прозрачность. Давайте попробуем создать два
вращающихся объекта: треугольник и квадрат, при этом цвет их будет
смешиваться в тех областях, где фигуры перекрывают друг друга.
      Создайте новое приложение и добавьте инициализацию Direct3D. Сцену
мы будем формировать через буфер вершин, поэтому нам понадобится структура,
описывающая формат вершины, массив вершин и буфер:
IDirect3DVertexBuffer9:
struct sVertex
(
  float x, у, z;
  DWORD color;
);
sVertex Triangle[7];
IDirect3DVertexBuffer9 * vTriangleBuffer;
       Обе фигуры будем хранить в одном буфере. Для отображения
треугольника нам понадобятся три вершины, а для прямоугольника достаточно
четырех вершин, из которых можно будет сформировать два треугольника.
       После инициализации Direct3D заполняем вершины значениями, создаем
интерфейс iDirect3DVertexBuffer9 и переносим значения вершин в созданный
буфер. Код инициализации буфера показан в листинге 5.1.
       Листинг 5.1 - Инициализация и заполнение буфера вершин
// Заполняем массив вершин значениями
// Первые три вершины - треугольник
Triangle[0].x=0.7f;
Triangle[0].y=-0.3f;
Triangle[0].z=0.1f;

Triangle[1].x=-0.7f;
Triangle[1].y=-0.3f;
Triangle[1].z=0.1f;

Triangle[2].x=0.0f;
Triangle[2].y=0.7f;
Triangle[2].z=0.If;
// Следующие четыре вершины - прямоугольник
Triangle[3].x=-0.5f;
Triangle[3].y=-0.5f;
Triangle[3].z=0.1f;

Triangle[4].x=-0.5f;
                                       26