Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Источники света




Источники света и камеры

Источники света и камеры являются подклассами класса Node. Все, что было сказано в главе 4 в отношении наследования классов, распространяется и на ис­точники света, камеры и геометрические объекты.

В MAXScript можно создать любой тип источника света из тех, которые доступны в пользовательском интерфейсе 3dsMax. У каждого типа источника света имеется свой конструктор. Например, конструктор свободно направленного источника света выглядит следующим образом:

directionalLight()


Работа с объектами в MAXScript

 

 


Если ввести приведенную выше строку кода в окне приемника команд, в ответ появится результат, очень похожий на тот, который был получен для геометрического объекта:

$Free_Directional_Light:FDirectOl @ [0.000000, 0.000000, 0.000000]

В этом результате представлены класс объектов Free_Directional_Light (обозначаемый также как Directionallight), путевое имя объекта $FDirect01 и местоположение объекта в точке мирового пространства с координатами [0,0,0].

Полный перечень типов источников света, которые можно создавать средствами MAXScript, приведен в следующем разделе справочного руководства по MAXScript: MAXScript Language Reference ⇨ 3dsMax Objects ⇨ Node: MAXWrapper ⇨ Node Subclasses ⇨ Light: Node (Справочник по языку MAXScript ⇨ Объекгы 3dsMax ⇨ Класс Node: MAXWrapper ⇨ Подклассы класса Node ⇨ Класс Light: Node).

Все доступные типы источников света перечислены в книгах Standard Lights и Photometric Lights данного справочного руководства, посвященных стандартным и фотометрическим источникам света соответственно.

Многие свойства источников света являются общими для них. К ним относятся следующие свойства:

<light>.rgb- цвет RGB

<light>.excludeList - массив узлов, исключаемых из световых эффектов <light>.projectorMap - карта, хранящаяся в объекте textureMap

Полный перечень общих свойств источников света приведен в разделе "Light Common Properties, Operators, and Methods" (Общие свойства, операторы и методы источников света) справочного руководства по MAXScript.

Для того чтобы исключить объекты из сферы влияния источника света, выполните следующее упражнение.

1. Установите 3dsMax в исходное состояние.

2. Введите в новом окне редактора MAXScript Editor следующий фрагмент кода, чтобы создать на сцене несколько объектов:

for i = -1 to 1 do

(

box pos: [i*40, 0, 0]

sphere pos: [i*40, 0, 60]

)

myPlane = plane length:150 width:150


Глава 6

3. Создайте всенаправленный источник света с устанавливаемыми по

умолчанию свойствами и задайте его положение:

myLight = omnilight pos:[0, -100, 100] castshadows: on

 

 


Свойство excludeList воспринимает массив узлов. В данном упражнении необходимо исключить сферы из освещения всенаправленным источником света.

4. Создайте массив сферических узлов:

sphereArray = for obj in objects \

where (classof obj == sphere) collect obj

В приведенном выше цикле for возвращается массив сферических объектов. В данном случае использована специальная форма синтаксиса цикла for, в которой вместо ключевого слова do, указывающего тело цикла, введен оператор collect, предписывающий создать совокупность объектов, удовлетворяющих заданному условию. Это условие также указывается в специальной форме цикла for, где оно является частью определения данного цикла. Нетрудно заметить, в чем именно состоит проверка: если объект является сферой, возвращается логическое значение true. Это довольно компактная и удобочитаемая форма цикла for.

5. Установите свойство excludeList источника света следующим образом: myLight.excludeList = sphereArray

6. Вычислите сценарий.

7. Визуализируйте сцену.

Теперь на сцене видны только параллелепипеды.


Работа с объектами в MAXScript

 

 

 


Как упоминалось выше, каждый источник света имеет свойство.projectorMap. Далее вам предстоит присвоить этому свойству текстурную карту. Существует более 30 типов текстурных карт, в том числе карты планеты, мрамора и клетчатого рисунка. Как только будет создан объект textureMap, его можно присвоить свойству.projectorMapисточника света.

Примечание. В свойствах источников света можно также указывать растровые текстуры, но из-за большого числа свойств Объекта BitmapTexture с ними нелегко обращаться. Более подробные сведения об этом приведены в разделе "BitmapTexture: TextureMap", справочного руководства по MAXScript.

Для изучения свойства.projectorMap выполните следующее упражнение.

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

marbleMap = marble Vein_Width: 0.1 size: 12

myLight.projectorMap = marbleMap

В этих строках кода изменены свойства ширины и размера карты, чтобы сделать мраморный эффект более заметным. Все свойства объекта textureMap могут быть установлены по отдельности. В данном случае установлены только два из них, а остальные используются в том виде, в каком они установлены по умолчанию.

В видовом окне текстурная карта не наблюдается, но после визуализации сцены она должна выглядеть так, как показано на приведенном ниже рисунке.

С объектами textureMap вам еще предстоит поработать в этой главе, когда речь пойдет о материалах.


Глава 6





Поделиться с друзьями:


Дата добавления: 2014-10-15; Просмотров: 519; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.