Я пытаюсь нарисовать «целевое кольцо» на земле под «юнитом» в увлекательной 3d-игре, над которой я работаю. По сути, я хочу проецировать ярко-красное узорчатое кольцо на поверхность земли под отрядом.
Единственный подход, который я могу придумать, это -
Нарисуй мир один раз как обычно
Draw
мир во второй раз, но в моем
Вершинный шейдер У меня есть мир x, y, z
координаты вершины и я могу
передать в координатах
выделенный блок - так что я могу
рассчитать, что координаты u, v
в моем проекте текстура должна быть на
эта точка в мире для этого
вершина.
Затем я бы использовал пиксельный шейдер, чтобы выбрать пиксели из целевой текстуры кольца и смешать их с ранее нарисованным миром.
Я полагаю, что это должно быть легко и должно работать, но это требует от меня рисования всего видимого мира дважды, так как трудно точно определить, на какие полигоны может попасть целевое кольцо. Кажется, что это огромные накладные расходы: дважды нарисовать весь мир, один раз для нормальной освещенной текстурированной земли, а затем снова просто нарисовать целевое кольцо.
Есть ли лучший подход, который мне не хватает?