! помещаем базовый куб в начало координат

emissive 0 10
! put a glowing ellpsoid at (2. 0. 0)

! помещаем светящийся эллипсоид в точку (2. 0. 0)

push translate 2 0 0 rotate 45 0 0 1 scale .5 .5 2 sphere pop
push translate -2 0 0 cone pop
land a cone at (-2. 0. 0)

! помещаем конус в точку (-2. 0. 0)

Логические (Булевы) объекты

SDL также поддерживает спецификацию логических объектов с помощью следующих ключевых слов:

union

! объединение intersection ! пересечение difference ! разность

Каждая из этих команд создает логический объект специального типа и помещает его в список объектов. В SDL-файле за каждым таким объектом должно следовать два объекта (каждый из которых может быть геометрическим либо логическим объектом), которые становятся левым и правым потомками созданного вначале логического объекта.

Ниже приводится SDL-код, описывающий сцену, в которой содержится два логических объекта. Первый из них является пересечением (intersection) куба с объединением (union) тетраэдра и бакибо-ла. Второй объект является разностью (difference) тетраэдра и пересечения плоскости с объединением тора и додекаэдра.

Д2. Макросы в SDL

1043
light 1 2 3 0.2 0.3 0.4
intersection
cube

! left child of intersection ! левый потомок пересечения union

! right child of intersection ! правый потомок пересечения . diffuse .2 .5 .7 tetrahedron ! left child of union ! левый потомок объединения rotate 180 3 4 5 buckyball ! right child of union ! правый потомок объединения difference ! another boolean ! другой логический объект tetrahedron intersection plane union torus dodecahedron

Команда

makePixmap <value> <fname>

определяет пиксельную карту, которая будет использоваться для нанесения текстуры. Первый ее аргумент является целым и используется для идентификации пиксельной карты; второй параметр - это имя BMP-файла, содержащего текстурное изображение. К примеру, следующий SDL-код

makePixmap 5 clouds.bmp makePixmap 2 stone.bmp texture 5
parameters 4 0 110 push scale 3 4 2 cube pop texture 2
parameters 3 .2 .8 2 sphere

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