Выбрать главу

Итак, какое увеличение скорости мы могли бы ожидать? Это трудно оценить, но достаточно легко измерить!  Просто рендерите кадр и отмечайте время, которое потребовалось, затем импортируйте psyco в ваш код, рендерите снова и отмечайте различие. Если оно значимое, оставляйте в коде, в противном случае, Вы можете снова его удалить.

На следующей таблице указаны некоторые результаты для тестовой сцены, приведенной в psyco.blend, но ваши данные могут отличаться. Также заметьте, что тестовая сцена является довольно оптимистическим сценарием, так как большая часть оказалась покрыта текстурой, генерируемой Pynode. Если бы её было меньше, прирост в скорости бы уменьшился, но это дает оценку того, что возможно с Psyco. Показатель в два раза для важного кода легко достижим. В следующей таблице перечислены некоторые иллюстрирующие примеры времени расчёта:

Время в секундах

Нетбук

Без Psyco 52.7

С Psyco 26.3

Стационарный компьютер

Без Psyco 14.01

С Psyco 6.98

Включение Psyco

Следующий код показывает дополнительные строки, которые нужны для включения psyco в нашем ранее встречавшемся Pynode raindrops (капли дождя). Изменения указаны жирным шрифтом.

<... все остальные строки остаются прежними ...>

__node__ = Raindrops

try:

   import psyco

   psyco.bind(Raindrops.__call__)

   print 'Psyco configured'

except ImportError:

   print 'Psycho not configured, continuing'

   pass  

Так что, по сути, было добавлено только несколько строк после определения Pynode. Убедитесь, что вы щелкнули на кнопке Update (обновить) на Pynode, иначе код не будет перекомпилирован, и изменения не будут видны.

Предшествующий код просто пытается импортировать модуль psyco. Если это терпит неудачу (по любой причине), в консоли выводится информационное сообщение, но, тем не менее, код будет работать правильно. Если он импортируется, мы указываем Psyco оптимизировать метод __call__(), вызывая функцию bind() со ссылкой на этот метод __call__  в качестве аргумента, и сообщаем пользователю в консоли, что мы успешно сконфигурировали Psyco.

Итог

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

• Как построить список активов, таких как карты изображений, и заархивировать их

• Как опубликовать отрендеренные изображения автоматически через FTP

• Как расширить функциональность встроенного редактора поиском с регулярными выражениями

• Как ускорить вычисления, используя Psyco - компилятор-на-лету

• Как добавить управление версиями к вашим скриптам с помощью Subversion