Готовьтесь к неожиданностям



Готовьтесь к неожиданностям

Вы садитесь за графику для новой игры, думая, что знаете, как ее делать и сколько времени это займет, но обстоятельства могут сложиться самым неожиданным образом! Предположим, вам необходимо создать шесть спортивных автомобилей для очередной трехмерной гоночной игры. Работа знакомая: для предыдущей игры вы сделали 10 машин, на каждую ушло 15 дней (пять дней на 3D-модель, восемь на текстуру и два дня на сборку и исправления). Но! Вашего босса не устраивают старые модели, отныне ему надо «больше полигонов, больше жизни в модели и больше текстуры». Не беда, вы опытный компьютерный художник, вы и так знаете, что и как предстоит делать, и даже готовы предложить для новых задач лучшие решения. Исходя из опыта, вы выделяете на создание каждой машины те же 15 дней.

А потом... потом к вашему удивлению вдруг обнаруживается, что требование «больше полигонов» отнюдь не упростило определение формы - потребовался более аккуратный подход к моделированию (итого по четыре дополнительных дня на машину). «Больше жизни» вылилось в появление у автомобиля дверей. На то, чтобы двери должным образом открывались и закрывались, пришлось потратить лишних восемь дней. В конечном счете, вы добавили объект «закрытая дверь», который исчезает, когда дверь открывается, и объект «открытая дверь», прячущийся, когда дверь закрыта (еще по два дня на машину). Кроме того, в новой версии игры появились деформации от удара. При этом во внутриигровой 3D-системе применяется простой Z-буфер (массив, в котором хранится информация о глубине расположения точки на экране. Иными словами, Z-буфер отвечает за разрешение сцен по «оси глубины». - Примеч. ред.), в результате чего шины и крылья машин весьма несимпатично проникают друг в друга. Что делать? Надо идти к программистам, предлагающим новую, ни на что не похожую группировку этих объектов (крыла и шины), которую нужно применить ко всем автомобилям, включая те, что уже сделаны (а это плюс 10 дней). Наконец, «больше текстуры» означает, что отныне текстуру автомобилей приходится хранить не в одной, а в двух страницах памяти, поскольку автомобиль теперь имеет длину 500 пикселей, а максимальный размер текстуры - 256x256. «Тетрис с текстурами» (вырезание и перекомпоновка кусочков для максимально эффективного заполнения памяти, отведенной под хранение общей текстуры) существенно осложняется (плюс пара дней на каждое авто!).

Кроме того, начальник не желает, чтобы для обеих сторон машины использовалась одна и та же текстура. «Все замечательно, когда машина новая, - говорит он, - но когда бока помяты, они не могут выглядеть одинаково». Это так, но памяти, отведенной под текстуры, для таких новшеств не хватает, поэтому вам приходится сжимать текстуры и садиться за повторную партию в «тетрис» с тремя уже завершенными машинами (плюс 7 дней). Затем к списку заданий добавляется прорисовка дополнительных сторон (еще день на каждую машину). Вам остается лишь поблагодарить босса за столь «своевременную» постановку задачи.

Таким образом, задача, на выполнение которой изначально отводилось 90 дней, разрослась до 150 с лишним. Три незапланированных человеко-месяца! Хотите верьте, хотите нет, но подобное происходит сплошь и рядом. Некоторые из возникших затруднений, конечно, можно было предусмотреть, а другие - никак. (По-хорошему, вы могли догадаться о правилах вроде «больше полигонов = больше времени» и «больше текстуры = деление страниц памяти».)

Короче говоря, планируя работы с компьютерной графикой, постарайтесь предусмотреть все и вся. Создайте детальный перечень работ по каждому направлению, которое приходит в голову. Не забывайте и о времени на сборку моделей и экспорт графики в игру. После чего добавьте еще 20-40% на непредвиденные потери времени. Чем непривычней задача, тем больше времени следует отвести под «сюрпризы».



Содержание Назад Вперед