КАТЕГОРИИ: Архитектура-(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; Просмотров: 552; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |