Частицы обычно представлены в виде квадратных полигонов, которые визуализируются, используя небольшой набор текстур. Используя текстурированные квадратные полигоны, вы можете обманывать людей, заставляя их думать, что частицы на самом деле являются трехмерным мешем; этот эффект создает карта текстуры. Это очень важно, потому что если вы собираетесь показывать только одну сторону меша, то вы можете визуализировать его в карту текстуры, а потом наложить ее на квадрат.
Т. к. частица визуализируется при использовании двух треугольников (образующих квадрат), как показано на рис. 12.2, необходимо основываться на визуализации биллборда, чтобы убедиться, что многоугольники всегда направлены к смотрящему.
Рис. 12.2. Два треугольника соединены вместе, образуя квадрат. Смотря сверху вниз, вы можете видеть, что использование биллбординга позволяет увериться, что многоугольники всегда направлены к зрителю
В случае, если вы не слышали этого термина ранее, биллбординг это технология ориентирования объекта (такого как многоугольник) таким образом, чтобы он всегда был направлен на смотрящего. Сначала объект биллбординга создается направленным в отрицательном направлении оси z (как показано на рис. 12.3). По мере того, как смотрящий двигается, объект биллбординга вращается таким образом, чтобы быть всегда направленным к смотрящему.
Рис. 12.3. Квадратный полигон слева, который используется как биллборд, изначально ориентирован в отрицательном направлении оси z, и при визуализации он просто поворачивается в направлении смотрящего
Квадратный полигон слева, который используется как биллборд, изначально ориентирован в отрицательном направлении оси z, и при визуализации он просто поворачивается в направлении смотрящего.
Причины использования биллбордов очень просты - экономия памяти и ускорение визуализации. Для биллбордов обычно используется растровая картинка того, как должны выглядеть частицы (например, клуб дыма для частицы дыма), и эта картинка рисуется на многоугольник частицы. Далее, вместо визуализации трехмерного меша, представляющего дым, вы можете нарисовать многоугольник частицы, используя картинку дыма в качестве текстуры.
Однако стоит сказать, что визуализации трехмерного меша частицы не является плохой мыслью. На самом деле, частица может состоять из любого типа примитива, от пикселей и линий до многоугольников и целого трехмерного меша. Можно полагать, что бывают случаи, когда простого квадратного полигона недостаточно и придется использовать трехмерные меши.
Возвращаясь к игре с монстрами, можно использовать частицы для представления маленьких машин, движущихся по улицам города. Простого текстурированного (с использование биллбординга) квадратного полигона будет достаточно для этих машин, а что если вместо этого использовался бы трехмерный меш? Он просто бы потребовал визуализации нескольких дополнительных многоугольников в каждом кадре, и, поверьте мне, эффект от этих маленьких машин, движущихся по городу, стоил бы дополнительного времени визуализации.
Хорошо, если не касаться визуализации мешей, то большая часть рисуемых частиц будет состоять из квадратных полигонов. Вы можете рисовать их различными способами, но в этой книге я покажу вам три. Первый метод рисования частиц, наверное, является самым простым, но как вы скоро увидите, он имеет свои недостатки.
12 июля 2010