Я работаю над сравнительно небольшой демонстрацией 2D-игр (с видом сверху), используя OpenGL для моей графики.Он идет под основным углом, основанным на невидимости, и поэтому со всеми моими врагами я рисую дугу взгляда, чтобы игрок знал, куда они смотрят.
Пока что одна из моих проблем заключается в том, что когда я рисуюэта дуга взгляда (как заполненный многоугольник), естественно, проходит сквозь любые стены на экране, поскольку ничто не мешает ей:
http://tinyurl.com/43y4o5z
Мне интересно, как мне лучше всего это сделатьпредотвратить что-то подобноеУ меня уже есть код, позволяющий мне обнаруживать пересечения линий со стенами и т. Д. (Для обнаружения вражеского прицела), и я мог бы теоретически использовать его для обнаружения такого случая и соответственно рисовать многоугольник, но это, вероятно, будетдовольно неудобно и / или неэффективно, поэтому я полагаю, что если есть какие-либо встроенные системы OpenGL, которые могут сделать это для меня, то, вероятно, сделали бы это намного лучше.
Я пытался искать вопросы по таким темам, как отсечение /окклюзия, но я даже не уверен, что это именно то, что я должен искать;мои навыки OpenGL ограничены.Похоже, что-либо, использующее, скажем, glClipPlanes или glScissor, не подходит для этого из-за большого количества отдельных стен и т. Д.
Наконец, это просто демонстрация, которую я делаю в своем запасномвремя, так что графика не совсем мое главное беспокойство.Если есть (разумно) безболезненный способ сделать это, то я надеюсь, что кто-то может указать мне правильное направление;если нет простого способа, я могу просто оставить проблему или найти другие обходные пути.