Показать объект только в определенном окне просмотра - PullRequest
0 голосов
/ 23 декабря 2010

Привет, у меня есть 4 видовых экрана и одно большое, между которыми я могу переключаться, теперь у меня есть объект, а именно камера и целевое положение камер, которое я показываю с рендерингом сферы в этих местах.Я хочу показать положение камер в 3 из моих окон просмотра, но не в последнем, который является дисплеем камеры, но в данный момент у меня есть сценарий «все или ничего».

void display(int what)
{
 if(what==5){
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 camControll();}

 if(what==1){
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 gluLookAt(75,15,-5,0,5,-5,0,1,0);}

 if(what==2){
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 gluLookAt(0,110,0,0,0,0,1,0,0);}

 if(what==3){
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 gluPerspective(45.0f, float(320) / float(240), 0.1f, 100.0f); 
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 camControll();}

 if(what==4){
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 gluLookAt(185,75,25,0,28,0,0,1,0);}


 //glMatrixMode(GL_MODELVIEW);
 //glLoadIdentity();
 ////gluLookAt(cos(shared.time) * shared.distance, 10, sin(shared.time) * shared.distance, 0, 0, 0, 0, 1, 0);  
 ////ca.orbitYaw(0.05);
 //ca.lookAt();

 glClearColor(0, 0, 0, 1);
 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
 drawScene(); // scene that all views should render
 drawCamera(); / camera position that only certain views should render
 glutSwapBuffers();
}

Я думаю, что, возможно, ямог бы сделать одну зачистку для первых 3 видовых экранов, а затем вызвать glutSwapBuffers (), а затем сделать другой видовой экран без положения камеры, но некоторое заикание, которое я ранее имел, было прослежено до вызова glutSwapBuffers () для каждого видового экрана, поэтому я предполагаю, что должен быть другойтолько, что я не могу понять это.

1 Ответ

0 голосов
/ 23 декабря 2010

Вы должны отрендерить все, прежде чем менять буферы.

Пока вы это делаете - это не сработает. На самом деле, это будет работать, но не так, как вы хотите.

EDIT

Чтобы отобразить текстуру, взгляните на одну из ссылок здесь .

После изменения вида визуализируйте изображение для определенного вида в текстуру. Затем для окончательного изображения установите окончательный вид и визуализируйте все 3 текстуры. Поменяйте буферы только при окончательном рендеринге изображения.

Во 2-й мысли было бы гораздо лучше, если бы вы могли установить вершины всех объектов для рендеринга и рендеринга всего изображения за один проход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...