Название: работа с несколькими объектами
Отправлено: BuRn от Декабрь 24, 2011, 12:02
Не пойму как, вроде бы сделал, но как - то криво все это работает , если выбрать 1 объект, то старый остается на своем месте, тут все ок, а мой первый поворачивается, но ... , почему - то картинка под ним не обновляется , т.е. старый вариант ее остается, если потом выбираю все объекты, то у них сбиваются координаты все ... в чем дело ? void Display() { if(current_object==-1) { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); for(int i=0;i<=object;i++) { glPushMatrix(); glTranslatef(tx, ty, tz); glRotatef(rx, 1, 0, 0); glRotatef(ry, 0, 0, 1); glScaled(Scale, Scale, Scale); glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glColor3f(0.0f, 1.0f, 0.0f); glBindTexture(GL_TEXTURE_2D, num_texture); glBegin(GL_TRIANGLES); for (int j = 0; j < Obj[i].nTriangles; j++) { glVertex3fv(&Obj[i].Vertexs[Obj[i].Triangles[j].v0].r0); glVertex3fv(&Obj[i].Vertexs[Obj[i].Triangles[j].v1].r0); glVertex3fv(&Obj[i].Vertexs[Obj[i].Triangles[j].v2].r0); } glEnd(); glPopMatrix(); } glutSwapBuffers(); } else { glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef(tx, ty, tz); glRotatef(rx, 1, 0, 0); glRotatef(ry, 0, 0, 1); glScaled(Scale, Scale, Scale); glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glColor3f(0.0f, 1.0f, 0.0f); glBindTexture(GL_TEXTURE_2D, num_texture); glBegin(GL_TRIANGLES); for (int j = 0; j < Obj[current_object].nTriangles; j++) { glVertex3fv(&Obj[current_object].Vertexs[Obj[current_object].Triangles[j].v0].r0); glVertex3fv(&Obj[current_object].Vertexs[Obj[current_object].Triangles[j].v1].r0); glVertex3fv(&Obj[current_object].Vertexs[Obj[current_object].Triangles[j].v2].r0); } glEnd(); glutSwapBuffers();
} }
Название: Re: работа с несколькими объектами
Отправлено: BuRn от Декабрь 24, 2011, 13:48
разобрался, проблема была в том что у каждого объекта должны были быть отдельные координаты
|