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

nurbsSpherel .translateY=(pCube1. translate Y*0.25+pCube2.translateY*0.75)

Надо думать, что в случае использования нод вам придется туго (посмотрите результат в файле noExpressionMulti.ma).

С другой стороны, при разработке материалов для рендеринга никто не запрещает вам использовать expressions. Можете создавать собственные текстуры, материалы (и даже модели освещения) с помощью expressions, однако работать они будут неэффективно по сравнению с процедурными текстурами, требуя гораздо больше времени для обсчета.

Например, создайте цилиндр.

Потом откройте Hypershade и создайте ноду samplerlnfo: Create=>General Utilities=>Sampler Info. В сцене появится новый объект samplerlnfol, отвечающий за доступ к информации об объектах непосредственно в процессе рендеринга. Обычно его соединяют с другими утилитами для анализа и вычисления цвета или других свойств в каждой точке поверхности.

Но вы можете открыть Expression Editor и просто создать expression типа:

if (samplerlnfol .pointWorldY>0)lambert1 .diffuse= noise(samplerlnfo1.pointWorldY*10)+1; Смысл его заключается в том, что все точки на поверхностях с материалом lambertl будут окрашиваться в некий рисунок, если их вертикальная координата положительна. Иными словами, таким образом вы кладете, некую текстуру на канал diffuse, причем рисунок этой текстуры определяете по формуле в своем expression. (Пример сохранен в materialWithExpression.ma.)

Для взрослых. Отсутствие возможности скомпилировать текстуру или материал, определенный с помощью expression, всегда вызывало у меня чувство горечи и досады. Сейчас, когда на смену «родному» рендереру программы MAYA пришел великий mental ray со своим языком описания шейдеров, эта горечь немного смягчилась. Однако идея использовать expression для написания материалов, согласитесь, неплохая.

После таких экстремальных рассуждений, дадим волю рукам и «поковыряемся» во внутренностях MAYA ради обнаружения секретных или недокументированных нод, которые могут принести пользу. Но сначала обсудим еще один секретный атрибут любой ноды, встречающейся в MAYA.

Загадочный атрибут Node State. Состояние ноды.

Блокировка действия некоторых нод. Обновление экрана и оптимизация интерактивной производительности Если вы не очень любопытны, этот раздел можно и не читать, однако не исключено, что здоровое любопытство и желание «во всем дойти до самой сути» не дает вам спокойно спать, пока вы не узнаете, для чего же предназначен совершенно мистический атрибут Node State, встречающийся у каждой ноды и мозолящий глаза в каждой закладке Attribute Editor в разделе Node Behavior.

Раз мы договорились рассматривать любую ноду в MAYA как некоторый вычислитель, было бы логично иметь возможность временно выключать и включать этот вычислитель.


⇐ вернуться назад | | далее ⇒