从OpenGL渲染输出中获取常规信息

时间:2010-06-11 21:54:19

标签: opengl fragment-shader normals

我会尽量保持这一点。

我想要一种从Frame Buffer输出(或类似)访问场景的正常信息的方法。可以使用glGetTexImage和GL_DEPTH_COMPONENT访问深度缓冲区。

我知道我可以设置一个片段着色器,它输出RGB色彩空间中的法线信息,然后可以从渲染图像中读取。我想知道是否有办法在openGL API中执行此操作。

我会尽可能地根据要求澄清任何事情, 谢谢

1 个答案:

答案 0 :(得分:1)

您已经知道解决方案:将法线渲染为RGB。您可以使用没有内置的普通缓冲区。如果您不想渲染场景两次,请使用具有多个渲染目标(MRT)的帧缓冲对象(FBO)。然后,您可以在片段着色器中将颜色和法线都写入单独的纹理中。