我想做的是在平移、旋转、缩放后获取顶点的Position
,并在平移、旋转、缩放后获取Normal
方向,然后将值传递给我的 C++ 应用程序,这可能吗?
最佳答案
可能是,但最优雅的方法取决于可用的 OpenGL 版本配置文件。最优雅的解决方案是顶点变换反馈 https://www.opengl.org/wiki/Transform_Feedback
如果您没有 VTF,则必须将信息写入帧缓冲区(在片段缓冲区对象中)以进行回读(这当然会阻止您看到“图像”,但只会为您提供颜色编码信息).在 GL_POINTS 模式下渲染,使用 gl_VertexID
设置片段位置,将转换后的数据传递给片段着色器并让片段着色器将其写入正确的颜色 channel 。
关于c++ - 是否可以从着色器获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27340975/