我正在从帧缓冲区读取像素数据,除了alpha值(总是1.0)之外,一切似乎都有效
GLfloat lebuf[areasize * 4];
glReadPixels(xstart, ystart, partw, parth, GL_RGBA, GL_FLOAT, lebuf);
Run Code Online (Sandbox Code Playgroud)
我设置了窗口创建代码以支持alpha通道:
SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 8);
Run Code Online (Sandbox Code Playgroud)
有没有其他地方我应该查看为什么alpha通道似乎一直是1.0?更好的是,是否有另一种方法(除了glReadPixels)从帧缓冲区获取纹理到客户端内存?
编辑:这是我清除缓冲区的方法:
glClearColor(0,0,0,0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
Run Code Online (Sandbox Code Playgroud)
你能检查一下:
glGetIntegerv(GL_ALPHA_BITS, bits))?glClearColor).如果在渲染之前清除0.5并检索缓冲区,该怎么办?你检索0.5吗?glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_TRUE))?| 归档时间: |
|
| 查看次数: |
2826 次 |
| 最近记录: |