MaxScript |
Обращение к другим объектам V-Ray из MaxScript
Обзор
В 3ds Max, при условии, что текущим рендерером является V-Ray, вы можете ссылаться на него из MaxScript, используя структуру renderers:
vr=renderers.current
V_Ray_Adv_2_00_03:V_Ray_Adv_2_00_03
Свойства визуализатора
При условии что переменная vr содержит экземпляр объекта V-Ray renderer, вы можете работать с настройками рендерера также, как с любым другим объектом MaxScript:
showproperties vr
.imageSampler_type : integer
.fixedRate_subdivs : integer
.fixedRate_rand : boolean
...............
...............
...............
.options_maxDepth : integer
.options_maps : boolean
.options_filterMaps : boolean
.output_on : boolean
.output_width : integer
.output_height : integer
.output_fileOnly : boolean
.output_saveFile : boolean
.output_fileName : string
.output_saveRawFile : boolean
.output_rawFileName : string
false
Доступ к параметрам достаточно прост. Например:
vr.gi_on=true
true
Методы визуализатора
Вы можете также использовать следующие методы для сохранения/загрузки карт отсвещенности и фотонных карт (предполагаем, что переменная vr содержит экземпляр рендерера V-Ray):
Метод визуализатора Описание vr.saveCausticsPhotonMap <filename>
сохраняет текущую фотонную карту каустики в указанном файле vr.saveGlobalPhotonMap <filename> сохраняет текущую глобальную фотонную карту в указанном файле vr.saveIrradianceMap <filename> сохраняет текущую карту освещенности в указанном файле vr.saveLightCache <filename> сохраняет текущий световой кэш в указанном файле vr.loadIrradianceMap <filename> загружает карту освещенности из указанного файла vr.clearIrradianceMap() очищает карту освещенности, находящуюся в данный момент в памяти vr.clearLightCache() очищает световой кэш, находящийся в данный момент в памяти vr.showLastVFB() показывает окно V-Ray VFB с последним визуализированным изображением
Глобальные функции
В дополнение к этому, глобально доступны в MaxScript следующие функции:
Глобальная функция Описание doVRayObjectProperties() вызывает диалог V-Ray Object Properties doVRayMeshExport() вызывает диалог V-Ray Mesh Export vrayMeshExport
[meshFile:"<mesh file>"]
[autoCreateProxies:true|false]
[exportMultiple:true|false]
[animation:on|off]
[animationRange:#scene|#explicit]
[animationStart:<integer>]
[animationEnd:<integer>]
[animationRedrawViews:true|false]
[maxPreviewFaces:<integer>]
[nodes:<object/array of objects/ objectset>]производит экспорт в файл .vrmesh без показа окна диалога.
Возвращает массив созданных объектов VRayProxy, если таковые имеются.
vrayMeshImport
[proxy: <proxy mesh object(s)>]
[explicitNormals: true|false]
[weldVertices: true|false]импортирует геометрию из указанных объектов VRayProxy как редактируемый меш (editable mesh). registerVRayMenus() Регистрирует (добавляет) в стандартных меню 3ds Max пункты, специфичные для V-Ray. unregisterVRayMenus() Удаляет из стандартных меню 3ds Max пункты, специфичные для V-Ray. updateVRayMenus() Обновляет в стандартных меню 3ds Max все пункты, специфичные для V-Ray. setVRaySilentMode() запрещает любые диалоги V-Ray, которые могут появляться при загрузке сцены (например уведомление о различиях с более ранними версиями и т.п.)
Прим. перев.: для более ранних версий V-Ray было сделано нижеследующее примечание. Поведение V-Ray 2.0 в данной ситуации НЕ ПРОВЕРЯЛОСЬ.
Обнаружилась не совсем корректная работа V-Ray: в файле сцены то ли не сохраняются установки совместимости (VRay::Global switches: Legacy sun/sky/camera models и Use 3ds Max photometric scale), то ли эти настройки переустанавливаются при загрузке сцены в зависимости от ответа на вопрос об использовании новых моделей просчета VRaySun, VRaySky, VRayPhysicalCamera и VRayLight: при утвердительном ответе настройки будут установлены в
- Legacy sun/sky/camera models = off
- Use 3ds Max photometric scale = on
при отрицательном ответе -
- Legacy sun/sky/camera models = on
- Use 3ds Max photometric scale = off
Другие комбинации состояний этих опций после загрузки файла получить невозможно.
При использовании функции setVRaySilentMode() диалоги подавляются, но настройки совместимости устанавливаются в состояния, как при отрицательном ответе (т.е. VRay будет использовать старые модели расчета). Для использования новых моделей расчета необходимо установить эти параметры вручную. (прим. переводчика)
vrayEditDRSettings() Открывает окно настройки параметров распределённой визуализации V-Ray DR.
Функции V-Ray VFB
Следующие глобальные функции MaxScript реализуют доступ к виртуальному буферу кадра V-Ray (V-Ray VFB).
Глобальная функция VFB Описание vrayVFBGetRegionEnabled() Функция возвращает true, если в V-Ray VFB включен режим визуализации области (render region), иначе false. vrayVFBGetRegion() Функция возвращает массив из четырёх целых чисел, представляющих координаты (в пикселях) области визуализации VFB (границы: левая, верхняя, правая, нижняя). Левая и верхняя координаты включаются в область, а правая и нижняя - нет. vrayVFBSetRegionEnabled true|false
Функция включает или выключает режим визуализации области VFB.
vrayVFBSetRegion left top right bottom Функция устанавливает указанные координаты области визуализации VFB. vrayVFBGetNumChannels() Функция возвращает количество каналов (элементов визуализации - render elements) в V-Ray VFB. Функция возвращает 0, если VFB не инициализирован или не содержит данных. vrayVFBGetChannelName i Функция возвращает имя i-того Канала. Нумерация индексов начинается с 1. vrayVFBGetChannelType i Функция возвращает тип данных, хранящихся в i-том канале. Индексы начинаются с 1. Возвращаемое значение указывает тип данных для каждого пикселя в данном канале:
0 - неправильный индекс или VFB не содержит изображения;
1 - одно число в формате с плавающей точкой (используется, например, для канала z-depth);
2 - три числа с плавающей точкой (используется для обычных цветовых каналов);
3 - два числа с плавающей точкой;
4 - одно целое число (используется, например, для каналов render ID и material ID);
5 - три числа с плавающей точкой со знаком (используется, например, для каналов нормалей и мировых координат).vrayVFBGetChannelAlias i Функция возвращает альтернативное имя для i-того канала. Индексы начинаются с 1. См. перечисление (enum) RegionChannelAlias в файле "pixelbuffer.h" из V-Ray SDK. vrayVFBGetChannelBitmap i Функция возвращает содержимое указанного канала как растровое изображение (bitmap) 3ds Max. Индексы начинаются с 1. Функция возвращает undefined, если указан неправильный индекс или VFB не содержит данных.
Перевод © Black Sphinx, 2008-2012. All rights reserved.
Хостинг от uCoz