- •Введение
- •1. Построение реалистичных изображений
- •1.1 Простая модель освещения.
- •1.2 Возможности программирования Maya
- •1.3 Mel
- •2 Построение реалистичных сцен и создание модуля освещения
- •2.1 Обзор интерфейсаMaya
- •2.2ИнтерфейсMaya
- •2.3 Построение сцен
- •2.4 Освещение, создание модуля
- •3. Технико-экономическое обоснование проекта
- •3.1 Методика оценки экономической эффективности проекта
- •3.2 Исходные данные, используемые для расчета
- •3.3 Расчет экономической эффективности
- •4. Охрана труда и безопасность жизнедеятельности
- •4.1 Надзор и контроль за соблюдением законодательства по охране труда
- •4.2 Организация условий труда на рабочем месте, условия труда
- •4.3 Производственная санитария микроклимат производственных помещений
- •4.4 Характеристика объекта исследования
- •Планировка помещения, размещение оборудования
- •Заключение
- •Список использованных источников
- •Приложение
Приложение
Листинг файла spot light_def.mel
// Создание спота
// название процедуры
// Procedure Name:
// defaultSpotLight
// описание
// Description:
// create a default spot light
// входные аргументы
// Input Arguments:
// None.
// возвратное значение
// Return Value:
// None.
//
global proc defaultSpotLight(
float $intensity,
float $colourR,
float $colourG,
float $colourB,
int $decay,
float $coneAngle,
float $dropOff,
float $penumbra,
int $shadows,
float $shadowColourR,
float $shadowColourG,
float $shadowColourB,
int $shadowSamples,
int $interactive
)
{
//получение выбранных объектов в случае, если пользователь предпримет интерактивное размещение
// создание света на объектах
string $selection[] = `ls -sl`;
string $lightName = `shadingNode -asLight spotLight`;
// выставление значения опции Vars(false);
if (!`optionVar -exists spotLightIntensity`) {
optionVar -floatValue spotLightIntensity 1;
}
if (!`optionVar -exists spotLightColor`) {
optionVar -floatValue spotLightColor 1
-floatValueAppend spotLightColor 1
-floatValueAppend spotLightColor 1;
}
if (!`optionVar -exists spotLightDecay`) {
optionVar -intValue spotLightDecay 0;
}
if (!`optionVar -exists spotLightConeAngle`) {
optionVar -floatValue spotLightConeAngle 40.0;
}
if (!`optionVar -exists spotLightDropoff`) {
optionVar -floatValue spotLightDropoff 0;
}
if (!`optionVar -exists spotLightPenumbra`) {
optionVar -floatValue spotLightPenumbra 0;
}
if (!`optionVar -exists spotLightShadows`) {
optionVar -intValue spotLightShadows false;
}
if (!`optionVar -exists spotLightShadowColor`) {
optionVar -floatValue spotLightShadowColor 0
-floatValueAppend spotLightShadowColor 0
-floatValueAppend spotLightShadowColor 0;
}
if (!`optionVar -exists spotLightInteractivePlacement`) {
optionVar -intValue spotLightInteractivePlacement 0;
}
string $cmd = ("setAttr " + $lightName + ".intensity " + `optionVar -query spotLightIntensity`);
eval $cmd;
float $rgb[3] = `optionVar -query spotLightColor`;
$cmd = ("setAttr " + $lightName + ".colorR " + $rgb[0]);
eval $cmd;
$cmd = ("setAttr " + $lightName + ".colorG " + $rgb[1]);
eval $cmd;
$cmd = ("setAttr " + $lightName + ".colorB " + $rgb[2]);
eval $cmd;
$cmd = ("setAttr " + $lightName + ".decayRate " + `optionVar -query spotLightDecay`);
eval $cmd;
$cmd = ("setAttr " + $lightName + ".coneAngle " + `optionVar -query spotLightConeAngle`);
eval $cmd;
$cmd = ("setAttr " + $lightName + ".dropoff " + `optionVar -query spotLightDropoff`);
eval $cmd;
$cmd = ("setAttr " + $lightName + ".penumbraAngle " + `optionVar -query spotLightPenumbra`);
eval $cmd;
$cmd = ("setAttr " + $lightName + ".useDepthMapShadows " + `optionVar -query spotLightShadows`);
eval $cmd;
$rgb = `optionVar -query spotLightShadowColor`;
$cmd = ("setAttr " + $lightName + ".shadColorR " + $rgb[0]);
eval $cmd;
$cmd = ("setAttr " + $lightName + ".shadColorG " + $rgb[1]);
eval $cmd;
$cmd = ("setAttr " + $lightName + ".shadColorB " + $rgb[2]);
eval $cmd;
select -r $lightName;
objectMoveCommand;
if ($interactive){
string $panel = `getPanel -withFocus`;
if (`getPanel -typeOf $panel` == "modelPanel"){
select -replace $lightName;
lookThroughSelected 0 $panel;
if (`size $selection`){
select -replace $selection;
fitPanel -selected;
} else {
fitPanel -all;
}
} else {
warning((uiRes("m_defaultSpotLight.kNotAModelingPanel")));
}
}
}
Листинг файла spot light_perf.mel
//
// Description:
// Настроййка и создание функций пучка света
//
//////////////////////////////////////////////////////////////////////
// Название процедуры
// Procedure Name:
// setOptionVars
// Описание
// Description:
// Настройка опций значений
//
// Input Arguments:
// Установка вариантов значений по умолчанию.
//
// Return Value:
// None.
//
proc setOptionVars(int $forceFactorySettings)
{
// Интенсивность (Intensity)
//
if ($forceFactorySettings || !`optionVar -exists spotLightIntensity`) {
optionVar -floatValue spotLightIntensity 1;
}
// Цвет (Color)
//
if ($forceFactorySettings || !`optionVar -exists spotLightColor`) {
optionVar -floatValue spotLightColor 1
-floatValueAppend spotLightColor 1
-floatValueAppend spotLightColor 1;
}
// Оценка распада (Decay Rate)
//
if ($forceFactorySettings || !`optionVar -exists spotLightDecay`) {
optionVar -intValue spotLightDecay 0;
}
// Угол наклона (ConeAngle)
//
if ($forceFactorySettings || !`optionVar -exists spotLightConeAngle`) {
optionVar -floatValue spotLightConeAngle 40.0;
}
// Постепенное уменьшение (Dropoff)
//
if ($forceFactorySettings || !`optionVar -exists spotLightDropoff`) {
optionVar -floatValue spotLightDropoff 0;
}
// Угол полутеней (Penumbra Angle)
//
if ($forceFactorySettings || !`optionVar -exists spotLightPenumbra`) {
optionVar -floatValue spotLightPenumbra 0;
}
// Тени (Shadows)
//
if ($forceFactorySettings || !`optionVar -exists spotLightShadows`) {
optionVar -intValue spotLightShadows false;
}
// Цвет теней (Shadow Color)
//
if ($forceFactorySettings || !`optionVar -exists spotLightShadowColor`) {
optionVar -floatValue spotLightShadowColor 0
-floatValueAppend spotLightShadowColor 0
-floatValueAppend spotLightShadowColor 0;
}
// Интерактивное размещение (Interactive Placement)
//
if ($forceFactorySettings || !`optionVar -exists spotLightInteractivePlacement`) {
optionVar -intValue spotLightInteractivePlacement 0;
}
}
// Название процедуры
// Procedure Name:
// spotLightSetup
// Описание
// Description:
// Обновление состояния вариантов окна пользовательского интерфейса с учетом значений // параметров.
// Input Arguments:
// родитель - Макет родителей в окне настроек пользовательского интерфейса.
// Обязательно что бы имена объектов интерфейса
// были максимально упрощены
//
// forceFactorySettings - Значения параметров установлены по умолчанию
//
//
// Return Value:
// None.
//
global proc spotLightSetup(string $parent, int $forceFactorySettings)
{
// Получение настроек параметров.
//
setOptionVars($forceFactorySettings);
setParent $parent;
float $rgb[3];
// Запрос типов и значений переменных в контрольной группе.
// Интенсивность (Intensity)
//
if (`floatSliderGrp -exists spotLightIntensity`) {
floatSliderGrp -edit
-value `optionVar -query spotLightIntensity`
spotLightIntensity;
}
// Цвет (Color)
//
if (`colorSliderGrp -exists spotLightColor`) {
$rgb = `optionVar -query spotLightColor`;
colorSliderGrp -edit
-rgb $rgb[0] $rgb[1] $rgb[2]
spotLightColor;
}
// Оценка распада (Decay Rate)
//
if (`optionMenuGrp -exists spotLightDecay`) {
optionMenuGrp -edit -sl (1+`optionVar -query spotLightDecay`)
spotLightDecay;
}
// Угол наклона (ConeAngle)
//
if (`floatSliderGrp -exists spotLightConeAngle`) {
floatSliderGrp -edit
-value `optionVar -query spotLightConeAngle`
spotLightConeAngle;
}
// Постепенное уменьшение (Dropoff)
//
if (`floatSliderGrp -exists spotLightDropoff`) {
floatSliderGrp -edit
-value `optionVar -query spotLightDropoff`
spotLightDropoff;
}
// Угол полутеней (Penumbra Angle)
//
if (`floatSliderGrp -exists spotLightPenumbra`) {
floatSliderGrp -edit
-value `optionVar -query spotLightPenumbra`
spotLightPenumbra;
}
// Тени (Shadows)
//
if (`checkBoxGrp -exists spotLightShadows`) {
checkBoxGrp -edit
-value1 `optionVar -query spotLightShadows`
spotLightShadows;
}
// Цвет теней (Shadow Color)
//
if (`colorSliderGrp -exists spotLightShadowColor`) {
$rgb = `optionVar -query spotLightShadowColor`;
colorSliderGrp -edit
-rgb $rgb[0] $rgb[1] $rgb[2]
spotLightShadowColor;
}
// Интерактивное размещение (Interactive Placement)
//
if (`checkBoxGrp -exists spotLightInteractivePlacement`) {
checkBoxGrp -edit
-value1 `optionVar -query spotLightInteractivePlacement`
spotLightInteractivePlacement;
}
}
// Название процедуры
// Procedure Name:
// spotLightCallback
//
// Description:
// Обновление значений параметров текущего состояния из опций окна польз.интерфейса
//
// Input Arguments:
// родитель - Макет родителей в окне пользов. интерфеса. Требуется для того что бы
// имена объектов
//
// doIt - Whether the command should execute.
//
// Return Value:
// None.
//
global proc spotLightCallback(string $parent, int $doIt)
{