Читайте также:
|
|
Данный тип содержит два значения времени – начальное и конечное.
Литералы
Литералы для интервалов времени не предусмотрены
Конструкторы
Интервал задается обеими содержащимися в нем моментами
interval Время_1 Время_2
первое задает стартовое значение, второе – конечное.
Свойства
Можно получить стартовое значение интервала
Интервал. start
и конечное
Интервал. end
Операции
Для интервалов предусмотрены только две операции сравнения, равенство и неравенство.
Интервал_1 = = Интервал_2
Интервал_1! = Интервал_2
Методы
Для интервалов не предусмотрено методов.
Специальные значения
Undefined
Данное значение присваивается переменным, которые объявлены, но значение им не присвоено. Например, после такого скрипта
local Var
переменная Var будет иметь значение undefined. Это значение можно прямо присвоить переменной, например
Var = undefined
OK
Значение OK может применяться, например, для возврата признака успешного выполнения функции. Кроме того, это значение возвращают некоторые операторы MAXScript
Unsupplied
Это значение получают не указанные именованные параметры функции, если для них не определено значение по умолчанию. Например, при обращении к функции, определенной таким образом
fn MyFun x: = (print x)
параметр x получит значение unsupplied, если он не будет указан. Скрипт
MyFun ()
вернет именно это значение. Кроме того, это значение может быть присвоено любой переменной обычным образом.
Var = unsupplied
DontCollect
Это значение обычно применяется в цикле for … collect, для того чтобы не добавлять значение к результирующему массиву. Например, в результате работы такого скрипта
A = for i = 1 to 10 collect if i < 5 then dontCollect else i
в массиве A окажутся числа от пяти до десяти.
Битовая карта
Класс битовая карта или, другими словами, картинка, предоставляет удобный доступ к используемым 3ds max двумерным изображениям, в том числе и многокадровым. Битовые карты могут быть временными, размещенными в памяти, или объектами, ассоциированными с файлами. Ассоциированные с файлами карты имеют непустое свойство .filename. Карты могут быть предназначены либо только для чтения, либо только для записи, но не то и другое одновременно. Вы можете получить карту для чтения с помощью функций openBitmap или selectBitmap. Битовые карты для записи получаются с помощью конструктора bitmap() или как результат функций render, copy и getChannelAsMask. Чтобы иметь возможность сохранить полученную карту, необходимо задать имя файла при создании карты, или перед сохранением.
Конструкторы
Битовую карту можно создать с помощью конструктора
bitmap Целое_число_1 Целое_число_2 fileName: Символьная_строка
numFrames: Целое_число color: Цвет gamma: Вещественное_число
pixelAspect: Вещественное_число
Результатом такого конструктора будет битовая карта только для записи. Первые два параметра обязательны и представляют собой ширину и высоту карты в пикселях. Остальные параметры могут указываться в произвольном порядке или не указываться вообще.
Параметр filename задает имя файла, в который может быть записана полученная карта с помощью функции save. Если Вы задали имя существующего файла, то это не значит, что изображение оттуда будет загружено в созданную карту.
Параметр numFrames задает количество кадров при создании многокадровой битовой карты.
Параметр color задает цвет, который будут иметь все пиксели битовой карты после создания.
Параметр gamma устанавливает значение яркости для создаваемой битовой карты.
Параметр pixelAspect задает соотношение горизонтального и вертикального размера пикселя битовой карты. Имейте в виду, что после создания карты Вы не сможете установить новые значения для параметров gamma и pixelAspect. Можно обойти это правило, создав новую карту с нужными Вам значениями этих параметров, и скопировать в нее исходную.
Создать карту, ассоциированную с файлом можно с помощью функции
openBitmap Текстовая_строка
Текстовая строка должна задавать корректное имя файла, содержащего битовую карту. Если названного файла не существует, то генерируется ошибка. Полученная в результате карта предназначена только для чтения. Функция
selectBitmap caption: Текстовая_строка
делает то же самое другим способом. После ее вызова открывается диалог, заголовок которого задан необязательным параметром caption. Если пользователь закрыл диалог, не выбрав файла, то функция возвратит значение undefined. В противном случае результатом будет битовая карта только для чтения, созданная из выбранного файла.
Можно создать копию существующей карты с помощью функции
copy Битовая_карта
Если исходная битовая карта предназначена только для чтения, то результатом копирования будет карта только для записи с пустым именем файла и только одним кадром. В качестве копируемого будет выбран текущий кадр.
Свойства
Имя файла ассоциированного с картой может быть получено или установлено с помощью свойства
Битовая_карта. filename
которое представлено символьной строкой.
Свойство
Битовая_карта. palette
представляет собой палитру – массив из 256 цветов (на текущий момент 3ds max не позволяет работать с палитрами другой размерности). При работе с картами, имеющими палитру, надо соблюдать некоторую осторожность. Дело в том, что описанная ниже функция getIndexedPixels возвращает индексы, начиная с нуля, а массивы в MAXScript индексируются с единицы. В текущей версии 3ds max Вы не можете создать битовую карту, использующую палитру, но можете читать и записывать карты такого типа, хранящиеся в файле.
Прочитать или установить номер текущего кадра можно с помощью свойства
Битовая_карта. frame
но установка этого свойства допускается, только если карта предназначена для чтения. Нумерация кадров начинается с нуля.
Количество кадров хранится в свойстве
Битовая_карта. numframes
Высота и ширина битовой карты
Битовая_карта. height
Битовая_карта. width
могут быть только прочитаны, но не изменены. Только для чтения могут быть использованы и свойство яркости
Битовая_карта. gamma
и соотношение высоты и ширины пикселя
Битовая_карта. aspect
Методы
Функция
display Битовая_карта
открывает окно, в которое выводится виртуальный кадровый буфер (Virtual Frame Buffer или VFB). Изменение битовой карты не приводят к автоматическому обновлению информации в VFB. Для этого нужно еще раз вызвать функцию display. Автоматическое обновление информации в VFB происходит при изменении свойства .frame. Поскольку каждая битовая карта имеет свой VFB, обращение к функции display для нескольких карт приводит к открытию такого же количества окон. Закрыть открытое окно можно с помощью функции
undisplay Битовая_карта
Для сохранения битовой карты на диск предназначена функция
save Битовая_карта frame: Число
Второй параметр задает номер кадра. Перед сохранением полезно бывает убедиться, что свойство .filename задано корректно. Параметр frame действует по разному в зависимости от типа сохраняемого файла. При записи многокадрового файла (.avi или.mov) он попросту игнорируется. В этом случае в выходной файл записывается следующий кадр при каждом вызове функции save. Вы не сможете записывать данные в произвольно указанный кадр или перезаписывать уже записанный кадр. При сохранении последовательности кадров в файлы (такие как.bmp,.jpg,.tga) номер кадра добавляется к имени файла
Функция save может быть вызвана только для файлов, которые созданы для записи. Попытка сохранить карту только для чтения приведет к ошибке.
Функция
close Битовая_карта
закрывает файл, ассоциированный с битовой картой. Файл открывается после того, как Вы вызвали функцию save в первый раз. Если VFB для указанной карты открыт, то он закрывается. Кроме того, эта функция освобождает рабочие участки памяти, используемые для поддержки битовых карт. Если Вы генерируете и записываете много битовых карт, например при рендеринге, то вызов функции close весьма желателен.
Копирование одной битовой карты в другую осуществляется с помощью функции
copy Битовая_карта_1 Битовая_карта_2
Первая карта копируется во вторую. Если размеры исходной карты не равны размерам результирующей, то проводится масштабирование.
Номер текущего кадра устанавливается вызовом функции
gotoFrame Битовая_карта Целое_число
Указанное число задает номер текущего кадра. Данный метод может вызываться для карт, предназначенных только для чтения. Если VFB для указанной карты открыт, то он обновляется.
Для получения цвета пикселей карты используется функция
getPixels Битовая_карта Точка_в_2D_пространстве Число
Результатом вызова этой функции будет массив цветовых значений из строки битовой карты. Второй параметр задает точку карты, начиная с которой выдаются пиксели. При этом координата X точки задает номер колонки, а Y – строки. Начало координат расположено в левом верхнем углу карты и имеет координаты [ 0, 0 ]. Третий параметр задает количество пикселей. Следует отметить, что пиксели читаются только из одной строки, поэтому следует следить за тем, чтобы координаты начальной точки и количество пикселей были согласованы между собой.
Функция
setPixels Битовая_карта Точка_в_2D_пространстве Массив_цветов
производит обратную операцию – записывает в битовую карту цвета из указанного массива. При этом надо так же тщательно следить, чтобы количество элементов в указанном массиве не приводило к записи за границу битовой карты.
При работе с пикселями битовых карт, имеющих палитру, используются функции
getIndexedPixels Битовая_карта Точка_в_2D_пространстве Число
и
setIndexedPixels Битовая_карта Точка_в_2D_пространстве
Массив_чисел
Они действуют полностью аналогично, но используют не массив цветов, а массив индексов цветов. Цвета при этом хранятся в свойстве .palette, которое описано выше.
Дата добавления: 2015-10-31; просмотров: 79 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Прямоугольник | | | Методы для работы с g-буфером |