Настоящая красота

Когда я работаю над проблемой, я никогда не думаю о красоте: Но когда я закончил работу, и мое решение проблемы получилось не очень красивым, я знаю, что где-то допустил ошибку. --R. Buckminster Fuller

Ваш компьютер - самой последней модели, и может выполнять 16,000 gigatexels в секунду. Ваш движок - это просто поэма. Он может обрабатывать миллионы освёщенных объёмно затуманенных полигонов на экране без малейших задержек. Ваша документация по разработке вылизана до такой степени, что Encyclopaedia Britannica по сравнению с ней выглядит как памфлет. У вас столько идей, что ими можно заполнить авиационный ангар средней величины.

Вы прекрасно выглядите. Ваш проект должен всех поразить своим совершенством и изяществом решения технических проблем. Сюжет игры просто потрясающий, и Вы уже начали писать речь для церемонии принятия Вас в Gaming Legends of the Twenty-First Century. Но существует одна маленькая проблемка: ваша графика настолько несвежа, как чемодан с влажными носками. К сожалению, публика, покупающая игры, предъявляет все больше и больше требований к визуальному качеству, и существует большая вероятность того, что все геймеры, кроме особо фанатичных, проигнорируют Вашу игру, открыв коробку и посмотрев на скриншоты, которые вызовут зевоту у вашей бабушки.

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

Сегодня, в мире "железа", выполняющего, bump-mapping, ray tracing, realtime refractive-index-calculating, над великолепной игрой, которая не может похвастаться потрясающей графикой, нависает угроза остаться игрой, о которой никто никогда не слышал. Вы скажете, что это несправедливо, и будете по-своему правы. Но попробуйте провести немного времени в магазине, в отделе продажи компьютерных игр, и понаблюдайте за четырнадцатилетним покупателем, который ищет для себя новую игру. Вы увидите, как быстро он теряет интерес, если игра не представляет ничего особенного в плане зрелищности.

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

Я воспеваю радугу

Если Вы прожили последние несколько лет не в монастыре, Вас уже не шокирует скорость эскалации Войны с Полигонами (War of the Polys). Будь это консольные приставки или видеокарты, крошащие полигоны, мускулы сегодняшнего "железа" растут не по дням, а по часам.

Конечно же, это чудесно. Мы никогда не сможем иметь достаточно треугольников, обрабатываемых нашим GPU, но существует одна вещь, которую мы не должны пропустить в нашей отчаянной попытке построить идеально точную модель Сиднейского Дома Оперы. Это - текстуры.
Не так давно те из нас, кому посчастливилось создавать текстуры для пейзажей и для персонажей видеоигр, воевали с двумя очень серьезными врагами - разрешением и палитрой. Попытка создать реалистически выглядящие текстуры для кучи камней, дерева, растения или метала с помощью всего лишь 256 цветов была подобна попытке сыграть музыку Баха с помощью марокасов и барабана.

На сегодняшний день, однако, разрешающая способность - одна из наименьших проблем, а глубина цвета - наш лучший друг. И если мы создадим неприметную текстуру - нет нам прощения. Сейчас, когда наша палитра огромна, мы просто обязаны ее использовать. Конечно же, я не считаю, что использование для раскраски сцены всех доступных цветов одновременно автоматически сделает ее привлекательной. Скорее, вариации цветовых тонов в текстуре, так же, как и диапазон цветов, перекрытый всем набором текстур, должны там, где это можно применить, быть как можно богаче. Рассмотрите следующие примеры:


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

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

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

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

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

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

    После раскраски вершин некоторые текстуры приобретают плоский вид
208 0 850 1
0
RENDER.RU