opengl: как определить полигоны, которые видит камера?

NataNata

собственно, вопрос
начальные условия: полигонов не больше 100, поэтому годится какой-нибудь "тупой" вариант (типа, проверить каждый полигон для каждой точки экрана но чтобы средствами openGL. На всякий случай - прогаю под Win. Вдаваться в математику желания нет, тк не пишу движок для дума 3. Поиск по гуглу простого ответа не дал.

0000

Отображаться будут те, которые
1. Попали в выжедяемый объем, задаваемый матрицей перспективы (угол, расстояния до ближней и дальней стен)
2. Из них пользователь увидит те, у которых значение Z-буффера будет минимально (т.е. надо создавать OpenGL контекст с Z-буффером)
Как то так. OpenGL уже года три не трогал.

danilov

Сделай проективное преобразование видимой области камеры в прямоугольный параллелепипед, и отсекай покоординатно.
Задача построить матрицу перобразований 4x4. Все для этого уже написено, надо только величины вставить.
Вроде glOrtho этим занимается.

Devid

Рискну предположить, что вопрос не про это. Какие бы преобразования он ни сделал OpenGL определит видимые полигоны и отрисует их, вопрос в том, как программно узнать, какие именно полигоны нарисовались (и, следовательно, видимы)?

danilov

В смысле, полигоны уже отрисовны, и надо найти те, без которых картинка поменяется, так?

Devid

Нет, в смысле есть координаты полигонов и надо найти видимые (а не отрисовать). Средствами OpenGL. Но я не топикстартер :)

0000

Наверняка можно проще. Для того, чтобы понять, что не появилось достаточно: нарисовать каждый полигон своим цветом, а потом посмотреть каких цветов на экране не оказалось.

procenkotanya

Почитайте про OpenGL Feedback Buffers

danilov

Все равно не понял, в чем отличие.
Но если автора устраивает полный перебор точек экрана, то gl Picking поможет

NataNata

Рискну предположить, что вопрос не про это. Какие бы преобразования он ни сделал OpenGL определит видимые полигоны и отрисует их, вопрос в том, как программно узнать, какие именно полигоны нарисовались (и, следовательно, видимы)?
да, именно это
отрисовались хотя бы частично
Оставить комментарий
Имя или ник:
Комментарий: