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), то есть рассеивающее луч поле.
После того как созданы списки источников света и объектов, приложение может приступить к визуализации сцены посредством следующего кода: