获取当前像素后面的像素 我在C++中用GLUT编码程序,在窗口中渲染3D模型。 我使用glReadPixels来获取窗口中显示的风景图像
我想知道,对于一个特定的像素(x,y),如何得到它的颜色,而不是直接得到它后面下一个物体的颜色 如果我渲染一个蓝色三角形,在它前面渲染一个红色三角形,glReadPixels会从红色三角形中生成红色获取当前像素后面的像素 我在C++中用GLUT编码程序,在窗口中渲染3D模型。 我使用glReadPixels来获取窗口中显示的风景图像,c++,opengl,glut,glreadpixels,C++,Opengl,Glut,Glreadpixels,我想知道,对于一个特定的像素(x,y),如何得到它的颜色,而不是直接得到它后面下一个物体的颜色 如果我渲染一个蓝色三角形,在它前面渲染一个红色三角形,glReadPixels会从红色三角形中生成红色 我想知道如何从蓝色三角形中获取颜色,如果红色三角形不在这里,我将从glReadPixels中获取颜色。默认帧缓冲区仅保留最上面的颜色。要获得您的建议,需要特定的渲染管道 例如,您可以: 创建与目标视口尺寸相同的屏幕外帧缓冲区 将仅深度过程渲染到屏幕外帧缓冲区,并将深度值存储在附加纹理中 使用特殊着色
我想知道如何从蓝色三角形中获取颜色,如果红色三角形不在这里,我将从glReadPixels中获取颜色。默认帧缓冲区仅保留最上面的颜色。要获得您的建议,需要特定的渲染管道 例如,您可以:
我可以通过摆弄渲染系统为屏幕上的特定点想出其他方法来完成相同的任务,但它们都比仅仅编写着色器复杂得多。默认帧缓冲区只保留最上面的颜色。要获得您的建议,需要特定的渲染管道 例如,您可以:
我可以通过摆弄渲染系统为屏幕上的特定点想出其他方法来完成同样的任务,但它们都比仅仅编写着色器复杂得多。谢谢你的回答。如果我理解正确,这将需要着色器编程(GLSL)、VBO等?没办法吗?事实上,我的实际渲染是使用glBegin/glEnd/glVertex完成的。我知道这很糟糕,而且几年前就被弃用了,因为我在重用旧代码。我很想学习着色器编程,但事实上我现在真的没有时间,而这段特定的代码是一次性的…@Jherico非常感谢你的回答。您是否有推荐的资源、教程或其他学习方法(如着色器编程)?再次感谢。:)谢谢你的回答。如果我理解正确,这将需要着色器编程(GLSL)、VBO等?没办法吗?事实上,我的实际渲染是使用glBegin/glEnd/glVertex完成的。我知道这很糟糕,而且几年前就被弃用了,因为我在重用旧代码。我很想学习着色器编程,但事实上我现在真的没有时间,而这段特定的代码是一次性的…@Jherico非常感谢你的回答。您是否有推荐的资源、教程或其他学习方法(如着色器编程)?再次感谢。:)