Инструкции по 3D-моделям

    Очень важно, чтобы в SuperTuxKart был единый стиль объектов. Во многом эта страница аналогична Инструкции по текстурам.

    Содержимое

    Стиль

    Объекты в SuperTuxKart должны быть реалистичными по размеру, форме, общему виду. Однако объекты не должны быть такими же детализированными, как в реальной жизни. Возьмём, к примеру, пальму:

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

    Например, если вас попросили создать бетонный барьер, то все знают, как он выглядит — вы, наверное, видите его каждый день, когда идёте на работу. Поэтому вы открываете Blender и делаете что-то вроде этого:

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

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

    Правила

    • Все модели ДОЛЖНЫ быть ориентированы на детей. SuperTuxKart должен соответствовать рейтингу ESRB «Everyone».
    • Модели должны хорошо выглядеть как в одиночку, так и в группе.
    • Высокополигональные модели должны использовать Уровень детализации.
    • Если только ваша модель не неотделима от трека, объекты должны быть пригодны для использования во многих различных средах, чтобы их можно было превратить в библиотечные узлы.
      • Не добавляйте землю или растительность вокруг объектов (если только объект сам не является какой-то растительностью).
      • Как правило, люди должны носить одежду общего назначения, за исключением случаев, когда это не имеет смысла, например, на пляже.

    Число поверхностей

    Число поверхностей — это количество поверхностей или граней, которые имеют 3D-объекты. Старые версии Blender поддерживали только объекты, состоящие из «квадов» (четырёхугольников — многоугольников, состоящих из четырёх точек) и «трисов» (треугольников — многоугольников, состоящих из трёх точек). Под «поли» обычно понималось «количество квадов». Однако Blender теперь поддерживает n-гоны, или полигоны с неограниченным числом точек, и задаёт только число поверхностей и трисов. Таким образом, поскольку количество трисов всегда остаётся неизменным (треугольник никогда не получает больше точек!), то точнее считать трисы, а не полисы. Поэтому в этих рекомендациях речь идёт о трисах.

    Немного истории

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

    Но в современных движках используется попиксельное освещение. Поэтому наиболее сложной частью является не вершинный, а пиксельный шейдер. Возьмём для примера объект, состоящий из ~500 полигонов. Для ГП управление одной вершиной — это, возможно, ~10 инструкций (это не точное число, просто для примера). Для каждого полигона вашей модели компьютер выполнит ~10 инструкций, так что 500 × 10 = 5000 инструкций для всего меша.

    Теперь о пикселях. Это зависит от того, сколько пикселей будет занято вашим объектом, но давайте пойдём по наихудшему сценарию — предположим, что весь экран будет заполнен вашим объектом. Для вычисления каждого пикселя (свет, блеск, карта нормалей и т. д.) потребуется ~50 инструкций для ГП.

    Если у вас разрешение 800 × 600 (у большинства людей оно выше), то 800 × 600 × 50 = 24 000 000 инструкций. Так что даже если вы удвоите количество поверхностей, вы не сильно повлияете на большую часть затрачиваемой энергии. Теперь она рассчитывается по пикселям, а не по поверхностям.

    Таким образом, мы можем увеличить число поверхностей без особых проблем. Однако важно следить за ним.

    Измерение числа поверхностей

    Blender отображает число поверхностей в строке состояния. Смотрите на скриншот ниже, там показано, как включить Статистику сцены щелчком правой кнопкой мыши в строке состояния:

    Ищите число Трис. Это та информация, которая вам нужна. Также помните, что количество трисов во всей сцене отображается только в режиме объекта.

    Примеры чисел поверхностей

    • Грузовой самолёт: ~4000 треугольников
    • Пальма с уровнем детализации
      • Высокое: 843 полигона
      • Среднее: 465 полигонов
      • Низкое: 42 полигона
    • Обычное растение: 32 треугольников
    • Дерево средних размеров: 1380 треугольников
    • Тыква: 470 полигонов

    Пометка объектов как высокополигональных

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

    Масштаб

    Объекты должны иметь правильные пропорции, чтобы они не выглядели странно в игре.

    • Высота пальмы составляет около 27 единиц в Blender.
    • Деревянные здания на Северном курорте высотой около 8 единиц в Blender.
    • Высота флагов Лампона в Кандела-Сити составляет 10 единиц в Blender.