Для нашей батальной сцены даже на машинах с несколькими гигабайтами оперативной памяти prman вылетает из-за нехватки оной - просто потому, что кэш становится слишком большим. GRUNT этого недостатка лишен - он поддерживает в памяти только A-buffer (то есть, Z-buffer, набор нормалей, координаты точки на поверхности, цвет и некоторую другую информацию для каждого пикселя картинки) и обходится без кэша моделей, просто подгружая каждого нового орка, рендеря его, обновляя A-buffer и затем выгружая орка. Чтобы упростить понимание системы - представьте себе композитинг по Z-буферу - если у вас есть что-то, что находится дальше Z-координаты - вы его не рендерите и вас слабо интересует, что именно изображено на соответствующем пикселе - если это не стекло, конечно. Но поскольку орки и эльфы в трилогии Толкиена не ходят в стеклянных доспехах - считайте, что вам очень сильно повезло.

Любопытно, 4TOGRUNT начинался в 1992 году как универсальный рендерер (и анимационная система) для операционной системы OS/2 и активно использовался при производстве мультфильмов и телевизионной рекламы. В 1992-м году 32 мегабайта памяти на персональном компьютере были огромным размером - и выбор технологии A-буфера дал возможность даже на таком маленьком объеме памяти рендерить очень большие сцены. Позднее, когда Джон присоединился к Weta Digital, ему пришло в голову, что массовые батальные эпизоды - отличное поле деятельности для его прежде универсального рендерера.

Итак, основное преимущество специального рендерера - это используемая в его ядре технология, которая позволяет рендерить удивительно сложные сцены. Что еще дает для студии обладание таким инструментом?

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

Во-вторых, возможность серьезной оптимизации под свои задачи. От продукта никто не требует расширяемой модели освещения и поддержки Renderman-шейдеров - и шейдеры для него пишутся на C++ и оптимизируются «по самое немогу». Программой часто пользуются на этапе настройки сцены - и поэтому встроен специальный механизм, который позволяет сбрасывать промежуточные результаты рендеринга и сразу же их просматривать. Pipeline компании заточен под композитинг при помощи Shake - и GRUNT умеет считать в слои. Почти все кадры рассчитываются с использованием “фермы” - и рендерер умеет делить сложную сцену на несколько простых для такого просчета.

Основным поставщиком информации и моделей для GRUNT является другой специальный продукт - Massive, который отвечает за правдоподобное поведение компьютерных персонажей на поле боя. Massive посредством простых текстовых файлов передает в рендерер как обычную (для рендерера) информацию (например, направление движения каждого объекта, его размер и положение), так и необычные вещи - например, в какую одежду нужно одеть того или иного персонажа. Если бы для всего этого использовались RIB'bi, объем занимаемого дискового пространства был бы огромным. В данном случае, все необходимые алгоритмы и схемы встроены непосредственно в рендерер, который анализирует входные данные и на лету собирает необходимую модель, которую затем рендерит. Ту же самую текстовую начинку умеет генерировать посредством простых MEL-скриптов и MAYA - и на этом этапе разница между prman и GRUNT для TD, работающих в Weta Digital, стирается.


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