opengl - 在 OpenGL 中同时使用可编程和固定管道功能

标签 opengl glsl

我有一个顶点着色器,可以转换顶点以创建鱼眼效果。是否可以只使用顶点着色器并为片段部分使用固定管道。

所以基本上我有一个不使用着色器的应用程序。我想使用顶点着色器应用鱼眼效果来转换所有顶点,然后将其留给应用程序来处理照明、纹理等?

如果这是不可能的,是否有可能通过弄乱 gl 后台缓冲区的内容来获得鱼眼效果?

谢谢

最佳答案

如果您的代码具有固定功能,那么您所描述的就是一个问题 - 这就是为什么在着色器中使用图形代码是好的原因:它们让您可以轻松更改任何内容。请记住在您的下一个项目中使用它们。 :)

好的,但是对于这个特殊情况,我假设您现在不想从头开始将整个渲染重写为着色器......

你提到你想要一个“鱼眼效应”。看来你很幸运,因为我相信你这种效果不需要着色器 !如果我们说的是同样的效果,那么你只要把OpenGL的固定函数中的GL_PROJECTION矩阵换成视角更广的透视矩阵就可以实现了。

关于opengl - 在 OpenGL 中同时使用可编程和固定管道功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4246143/

相关文章:

java - 如何在 GLSL 中绑定(bind)统一位置?

opengl - 使用 std430 限定符进行内存分配

opengl - glsl 中的提取 mat3(mat4 矩阵)语句是做什么的?

c++ - 为什么使用程序会导致我的形状消失?

c++ - 如何从 GLSL 程序中获取 uvec4 输出

c++ - 如果我将片段着色器附加到程序,则会出现错误 1282

c++ - opengl 3.1 纹理未加载

c++ - 倒置几何图形 gBuffer 位置用于透视。正字还好吗?

c++ - 在 glutKeyboardFunc 中所做的 OpenGL 状态更改不会立即可见

opengl - 在 OpenGL 中采样 16 位高度图的正确方法是什么