Я хочу нарисовать много сфер (~ 100k) с помощью OpenGL. До сих пор, я делаю что-то вродеРисование многих сфер в OpenGL
for (int i=0; i<pnum; i++){
glPushMatrix();
glTranslatef(bpos[i].x, bpos[i].y, bpos[i].z);
glCallList(DListSPHERE);
glPopMatrix();
}
Перед использованием собственных сфер, я GL_POINTS
. Это позволило мне вызвать glDrawArrays
с массивом, содержащим все точки, которые были очень эффективными. Есть ли лучший способ, чем приведенный выше код, рисовать много одинаковых объектов?
как упоминал Грегори Пакосз, обычным способом это является установление. Тем не менее, я действительно не понимаю, что для реального мира потребует ~ 100 тыс. Сфер. Все, что я могу придумать, было бы лучше подавать с круглыми очками. Позаботьтесь о том, чтобы пролить свет на ваш прецедент? – Bahbar
Я имитирую кольца Сатурна, и я хочу визуализировать результаты в реальном времени. Визуальная обратная связь «глубина» жизненно важна, и поэтому простые точки не работают. См. Например: http://hanno-rein.de/examplespheres.png и http://hanno-rein.de/examplepoints.png – hanno
Хорошая иллюстрация. Вы можете имитировать внешний вид сферы, делая освещение в пиксельном шейдере. Даже просто применить базовую текстуру вам поможет. Точка, 100-килограммовые сферы неизбежно наносят ущерб перфомансу, в то время как очки не так много (как вы уже заметили). – Bahbar