Листинг 5.9. SDL-файл для создания сцены с рис 5.56
l-myScenel.dat
light 20 60 30 .7 .7 .7
! put a light at (20.60.30). color:(.7..7..7)
! помещаем источник света в точку (20.60.30). цвет: (.7..7..7)
ambient .7 .7 .7
! set material properties for all of the objects ! задаем свойства материала для всех объектов diffuse .6 .6 .6 specular 111 specularExponent 50
def jackPart{ push scale .2 .2 1 sphere pop push translate 0 0 1.2 scale .2 .2 .2 sphere pop push translate 0 0 -1.2 scale .2 .2 .2 sphere pop }
def jack{ push use jackPart rotate 90 0 1 0 use jackPart rotate 90 1 0 0 use jackPart pop
продолжением
Преобразования объектов
Листинг 5.9 (продолжение)
def wall{push translate 1 .01 1 scale 1 .02 1 cube pop} def leg {push translate 0 .15 0 scale .01 .15 .01 cube pop}
def table{
push translate 0 .3 0 scale .3 .01 .3 cube pop .'table top ! верх стола push
translate .275 0 .275 use leg translate 0 0 -.55 use leg translate -.55 0 .55 use leg translate 0 0 -.55 use leg pop }
! now add the objects themselves ! теперь добавляем сами объекты
push translate .4 .4 .6 rotate 45 0 0 1 scale .08 .08 .08 use jack pop push translate .25 .42 .35 scale .1 .1 .1 sphere pop push translate .6 .38 .5 rotate 30 0 1 0 scale .08 .08 .08 teapot pop push translate 0.4 0 0.4 use table pop
use wall
push rotate 90 0 0 1 use wall pop push rotate -90 1 0 0 use wall pop
SDL-файл, описывающий сцену с рис. 5.56, приведен в листинге 5.9. Этот файл задает форму переключателя, состоящего из девяти сфер, следующим образом: вначале определяет jackPart (часть переключателя) и затем использует ее трижды, как объясняется в приложении Д. Ножка стола тоже вначале определяется как элемент (модуль) и затем используется четыре раза.
Теперь, когда доступны язык описания сцен (типа SDL), а также инструменты для чтения и анализа этих описаний, разработчик может сосредоточиться на создании сложных сцен, без необходимости работать на уровне кода приложений. Сцена в процессе разработки может редактироваться и тестироваться снова и снова, до полной ее готовности. Разработчик кода вкладывает основное усилие в разработку приложения, способного визуализировать любую сцену, которая может быть описана на SDL.