Scene sen:
// create a scene object

// создаем объект класса scene

Для чтения файлов сцены вызывается метод readO данного класса посредством функции

scn.readCsimple.dat "):
// read the scene file & build an object list

// читаем файл сцены и строим список объектов

На рис. 5.58 приведена структура данных для объекта sen, созданного путем чтения следующего простого SDL-файла:

! simple.dat:a simple scene having one light and four shapes

! simple.dat: простая сцена с одним источником света и четырьмя формами

background 0 0 1
! give the scene a blue background

! придаем сцене синий фон

light 2 9 8 1 1 1
! put a white light at (9.9.9)

! помещаем белый источник света в точку (9.9.9)

diffuse .9 .1 .1
! make the following objects reddish

! придаем следующим объектам красноватый цвет

translate 3 5-2 sphere
! put a sphere at 3 5 -2

! помещаем сферу в точку 3 5-2

translate -4 -б 8 cone

! put a cone in the scene

! помещаем на сцену конус

translate 111 cube
! add a cube

! добавляем куб

5.6. Рисование трехмерных сцен с применением OpenGL

.diffuse 0 10

! make the following objects green ! делаем следующие объекты зелеными translate 40 5 2 scale .2 .2 .2 sphere ! add a tiny sphere ! добавляем маленькую сферу

Первая строка является комментарием, каждый комментарий продолжается до конца строки. Данная сцена имеет ярко-синий цвет фона (red, green, blue) - (О, 0, 1), ярко-белый источник света, расположенный в точке (2,9,8), и четыре объекта: две сферы, конус и куб. Поле light указывает на список источников света, а поле obj - на список объектов. Каждый объект определенной формы имеет свое собственное аффинное преобразование М, описывающее, как он масштабирован, повернут и позиционирован на сцене. Кроме того, каждый из перечисленных объектов имеет различные поля данных (data fields), задающие свойства его материала, существенные для реалистичной визуализации объекта (этот вопрос рассматривается в главе 8). На рисунке показано только диффузное (diffuse), то есть рассеивающее луч поле.

После того как созданы списки источников света и объектов, приложение может приступить к визуализации сцены посредством следующего кода:


⇐ Предыдущая| |Следующая ⇒