opengl: как определить полигоны, которые видит камера?
1. Попали в выжедяемый объем, задаваемый матрицей перспективы (угол, расстояния до ближней и дальней стен)
2. Из них пользователь увидит те, у которых значение Z-буффера будет минимально (т.е. надо создавать OpenGL контекст с Z-буффером)
Как то так. OpenGL уже года три не трогал.
Задача построить матрицу перобразований 4x4. Все для этого уже написено, надо только величины вставить.
Вроде glOrtho этим занимается.
Рискну предположить, что вопрос не про это. Какие бы преобразования он ни сделал OpenGL определит видимые полигоны и отрисует их, вопрос в том, как программно узнать, какие именно полигоны нарисовались (и, следовательно, видимы)?
В смысле, полигоны уже отрисовны, и надо найти те, без которых картинка поменяется, так?
Нет, в смысле есть координаты полигонов и надо найти видимые (а не отрисовать). Средствами OpenGL. Но я не топикстартер
Наверняка можно проще. Для того, чтобы понять, что не появилось достаточно: нарисовать каждый полигон своим цветом, а потом посмотреть каких цветов на экране не оказалось.
Почитайте про OpenGL Feedback Buffers
Но если автора устраивает полный перебор точек экрана, то gl Picking поможет
Рискну предположить, что вопрос не про это. Какие бы преобразования он ни сделал OpenGL определит видимые полигоны и отрисует их, вопрос в том, как программно узнать, какие именно полигоны нарисовались (и, следовательно, видимы)?да, именно это
отрисовались хотя бы частично
Оставить комментарий
NataNata
собственно, вопросначальные условия: полигонов не больше 100, поэтому годится какой-нибудь "тупой" вариант (типа, проверить каждый полигон для каждой точки экрана но чтобы средствами openGL. На всякий случай - прогаю под Win. Вдаваться в математику желания нет, тк не пишу движок для дума 3. Поиск по гуглу простого ответа не дал.