OpenCV를 사용하여 웹캠 데이터를 캡쳐하고 GL 윈도우 용 텍스처로 표시합니다. 괜찮습니다.OpenGL의 텍스처 위에 2D 모양을 표시합니다.
gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB, image->width, image->height, GL_RGB, GL_UNSIGNED_BYTE, image->imageData);
은 그러나 나는 또한 백그라운드에서와 같은 창 자체의 질감을 유지,이 위에 몇 가지 기본적인 형태, (Md2)과 모델을 오버레이합니다. 새로운 질서와 좌표 :
glDisable(GL_TEXTURE_2D);
glBegin(GL_QUADS);
// Trapezoid to be displayed on top of texture
glVertex3f(0.2f, 0.3f, -0.6f);
glVertex3f(0.5f, -0.5f, -0.5f);
glVertex3f(0.4f, -0.5f, -0.5f);
glVertex3f(-0.4f, -0.5f, -0.5f);
glEnd(); //End quadrilateral coordinates
////
glEnable(GL_TEXTURE_2D); // start drawing the background texture
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f); glVertex2f(0.0f, 0.0f);
glTexCoord2f(1.0f, 0.0f); glVertex2f(VIEWPORT_WIDTH, 0.0f);
glTexCoord2f(1.0f, 1.0f); glVertex2f(VIEWPORT_WIDTH, VIEWPORT_HEIGHT);
glTexCoord2f(0.0f, 1.0f); glVertex2f(0.0f, VIEWPORT_HEIGHT);
glEnd();
이
은glutDisplayFunc()
void drawScene() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_TEXTURE_2D);
// Set Projection Matrix
glMatrixMode (GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0, VIEWPORT_WIDTH, VIEWPORT_HEIGHT, 0);
// Setup the view // Switch to Model View Matrix
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glBegin(GL_QUADS);
// Trapezoid
glVertex3f(-0.7f, -1.5f, -5.0f);
glVertex3f(0.7f, -1.5f, -5.0f);
glVertex3f(0.4f, -0.5f, -5.0f);
glVertex3f(-0.4f, -0.5f, -5.0f);
glEnd(); //End quadrilateral coordinates
// start drawing the Background texture
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f); glVertex2f(0.0f, 0.0f);
glTexCoord2f(1.0f, 0.0f); glVertex2f(VIEWPORT_WIDTH, 0.0f);
glTexCoord2f(1.0f, 1.0f); glVertex2f(VIEWPORT_WIDTH, VIEWPORT_HEIGHT);
glTexCoord2f(0.0f, 1.0f); glVertex2f(0.0f, VIEWPORT_HEIGHT);
glEnd();
glFlush();
glutSwapBuffers();
}
편집 새로운 질서
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f); glVertex2f(0.0f, 0.0f);
glTexCoord2f(1.0f, 0.0f); glVertex2f(VIEWPORT_WIDTH, 0.0f);
glTexCoord2f(1.0f, 1.0f); glVertex2f(VIEWPORT_WIDTH, VIEWPORT_HEIGHT);
glTexCoord2f(0.0f, 1.0f); glVertex2f(0.0f, VIEWPORT_HEIGHT);
glEnd();
glBegin(GL_QUADS); //Begin quadrilateral coordinates
// Trapezoid
glVertex3f(-0.7f, -1.5f, -5.0f);
glVertex3f(0.7f, -1.5f, -5.0f);
glVertex3f(0.4f, -0.5f, -5.0f);
glVertex3f(-0.4f, -0.5f, -5.0f);
glEnd(); //End quadrilateral coordinates
편집에 전달되어 제 기능입니다
결과 위의 일을하고 gluOrtho2D()
수 너 뭐가 잘못 됐는지 말해 줄거야? 내가보기에 모델을로드하고 표시하기 위해 몇 가지 추가 코드가 필요한 작업 프로그램이 있습니다. – NickLH
+1 즉시 답장. 얻을 수있는 것은 모두 배경 텍스처입니다. 2D 모양은 보이지 않습니다. 그게 다야. :) – coder9
아, 사다리꼴을 그린 후에 배경 텍스처를 그립니다. 그러므로 그것은 그것들을 이끌고 있습니다. 그리기 순서를 반대로하면 효과가 있습니다. – NickLH