标签: gldrawpixels

将纹理数据写入深度缓冲区

我正在尝试实现下面描述的技术:用深度合成图像.

我们的想法是使用现有纹理(从图像加载)作为深度蒙版,基本上伪造3D.

我面临的问题是在openglES中没有glDrawPixels.有没有办法在iPhone上完成同样的事情?

opengl-es gldrawpixels depth-buffer ios

6
推荐指数
1
解决办法
4901
查看次数

如何扩大glDrawPixels?

我需要缩放glDrawPixels图像的结果.

我正在Qt QGLWidget中使用glDrawPixels绘制一个640x480像素的图像缓冲区.

我尝试在PaintGL中执行以下操作:

glScalef(windowWidth/640, windowHeight/480, 0);
glDrawPixels(640,480,GL_RGB,GL_UNSIGNED_BYTE,frame);
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

我正在使用小部件的大小设置OpenGL视口和glOrtho:

void WdtRGB::paintGL() {

         glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

         // Setup the OpenGL viewpoint
         glMatrixMode(GL_PROJECTION);
         glLoadIdentity();
         glOrtho(0, windowWidth, windowHeight, 0, -1.0, 1.0);

    glDepthMask(0);
        //glRasterPos2i(0, 0);
        glScalef(windowWidth/640, windowHeight/480, 0);
        glDrawPixels(640,480,GL_RGB,GL_UNSIGNED_BYTE,frame);
    }

    //where windowWidth and windowHeight corresponds to the widget size.
    /the init functions are:

    void WdtRGB::initializeGL() {

        glClearColor ( 0.8, 0.8, 0.8, 0.0); // Background to a grey tone

        /* initialize viewing values  */
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();

        glOrtho(0, windowWidth, windowHeight, 0, -1.0, 1.0);

        glEnable …
Run Code Online (Sandbox Code Playgroud)

opengl gldrawpixels scale qglwidget

5
推荐指数
1
解决办法
4859
查看次数

使用gldrawpixels进行opengl旋转

我的团队目前仅限于在opengl 1.4平台上绘制图像,这意味着我们不能使用任何漂亮的纹理映射来绘制图像(是的,我们仅限于使用intel集成图形平台,这非常烦人).到目前为止,我们能够绘制,缩放和翻转图像,但是做图形的人声称在使用glDrawPixels时无法通过glRotate进行旋转,我们必须转到纹理等等,哪些不适用于英特尔平台.

我敢打赌他午餐时有一个旋转功能,比如glRotate,它可以用于直接位图.这样的功能存在吗?glRotate会工作吗?我对这个图形事物有点新手,但是除了通过纹理旋转之外,库不允许位图旋转似乎很荒谬.

谢谢.

opengl rotation gldrawpixels

4
推荐指数
1
解决办法
2886
查看次数

为什么glDrawPixels不能在这里工作?

这是代码.输出是一个灰色的正方形 - 无论输入是什么,它显然是错误的.我的目标是能够将所有像素存储在某处并显示它们,以便我可以继续使用简单的光线跟踪器,而我似乎无法弄清楚这个glDrawPixels的事情.

#include <stdlib.h>
#include <GL/glut.h >

using namespace std;

struct RGBType {

    float r;
    float g;
    float b;
    //float a;
};


void display(void)
{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    RGBType *pixels = new RGBType[250*250];

    for (int x = 0; x < 250; x++) {
        for (int y = 0; y < 250; y++) {

               pixels->r = 0;
               pixels->g = 1;
               pixels->b = 1;
               //pixels->a = 200;
          }
     }


    glTexSubImage2D(GL_TEXTURE_2D,0,0,0,250,250,GL_RGB,GL_UNSIGNED_BYTE,pixels);


    //glColor3f(1.0,1.0,1.0);
    glBegin(GL_POLYGON);
        glVertex3f(0.0, 0.0, 0.0);
        glVertex3f(1.0, 0.0, 0.0);
        glVertex3f(1.0, 1.0, 0.0); …
Run Code Online (Sandbox Code Playgroud)

c++ opengl trace pixels gldrawpixels

1
推荐指数
1
解决办法
1491
查看次数