Для создания экструдированных стен:
Для каждой вершины a (с координатами a x , a y ) в вашем многоугольнике:
- вызвать следующую вершину 'b' (с координатами b x , b y )
- создать вытянутый прямоугольник, соответствующий линии от 'a' до 'b':
- Прямоугольник имеет вершины (a x , a y , z 0 ), (a x , a y , z 1 ), (b x , b y , z 0 ), (b x , B * * у тысячи тридцать три , г 1 * * одна тысяча тридцать шесть)
- Этот прямоугольник можно создать из двух треугольников:
- (a x , a y , z 0 ), (a x , a y , z 1 ), (b x , b y , z 0 ) и (a x , a y , z 1 ), (b x , b y , z 0 ), (b х * 1 068 *, B у , г * +1071 * 1 * * тысяча семьдесят два)
Если вы хотите вместо этого создать треугольную полосу, это еще проще. Для каждой вершины a просто добавьте (a x , a y , z 0 ) и (a x , a у * * тысяча восемьдесят пять, г * 1 086 * 1 * * тысяча восемьдесят-семь). Любую вершину, которую вы обработали первой, также необходимо будет обработать снова после зацикливания всех остальных вершин.
Чтобы создать заглушки:
Этот шаг, вероятно, не нужен для целей столкновения. Но здесь есть одна простая техника: http://www.siggraph.org/education/materials/HyperGraph/scanline/outprims/polygon1.htm
Каждый полученный треугольник должен быть добавлен на глубину z 0 и z 1 .