如何从openGL代码中的当前窗口加载图像

时间:2012-04-03 14:25:11

标签: opengl

我有一个openGL代码渲染图像,我需要在代码上重新加载这个图像以循环重新编写它。如何在代码中加载它?

glutInit (&argc, argv);
 glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGB);     
 //
 glClearColor(1.0, 0.0, 0.0, 0.0); 

 glutInitWindowPosition(0,0);
     glutInitWindowSize(800,800);
     glutCreateWindow("Model");


 //glDisable(GL_CULL_FACE);
 glEnable(GL_CULL_FACE);
 glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
     //glFrontFace(GL_CCW);
 //      
 glFrontFace(GL_CW);
 // 
 glEnable(GL_DEPTH_TEST);

 float near =  10000;
 float far = (131943+500000);

 int f = 80000;

 //glFrustum(-f, f, -f, f, near, far);

 //
glOrtho(-f, f, -f, f, near, far);

float s = 1;
glScalef(s,s,.125); 
glTranslated(0,0, -200000);


glutDisplayFunc(display);  
glutMouseFunc(mouse);
glutMotionFunc(rotation);

glutMainLoop();

在Display()函数中加载了一个模型,我需要加载这个渲染的模型,然后再次编辑它。也许我需要从窗口加载像素,因为循环将编辑模型,直到得到想要的形状

1 个答案:

答案 0 :(得分:0)

您应该将其渲染为纹理,然后处理分配的纹理缓冲区以最终在屏幕上渲染它。

您可以删除代码,因为除了您不使用着色器之外,它不会提供任何有价值的信息。这也应该被考虑,因为它是正确的和最快的方式来做你想要的。

谷歌的另一个好关键词可能是“多次渲染”。