C++ 尝试使用OpenGL着色器在场景中添加失真效果
我正在尝试构建一个着色器,该着色器会扭曲最终图像,更具体地说,它会产生波浪效果,有点像这样: 但当对象移动时,其“几何体”会移动 这个 是我想要应用失真的图像 现在,它不必是随机的,它不需要被定位在特定的区域。只是一个 整个渲染图像中的静态正弦模式就是我要寻找的 当我在谷歌上搜索这个问题时,我找到的最接近的是线程。但是OP想要在纹理上应用效果,这不是我想要的。 无论哪种方式,我尝试使用代码,我得到了以下结果: 如您所见,变形仅应用于纹理,它作为固定纹理而不是整个场景。如果我移动立方体,变形将充当纹理,并随立方体一起移动。不是真的像一面扭曲的镜子 我还指出,我不能更改片段着色器上像素的坐标,例如,使立方体所在的像素更多地位于顶部,或更多地位于底部(如正弦曲线)。片段着色器只选择片段光栅化的颜色C++ 尝试使用OpenGL着色器在场景中添加失真效果,c++,opengl,shader,fragment-shader,C++,Opengl,Shader,Fragment Shader,我正在尝试构建一个着色器,该着色器会扭曲最终图像,更具体地说,它会产生波浪效果,有点像这样: 但当对象移动时,其“几何体”会移动 这个 是我想要应用失真的图像 现在,它不必是随机的,它不需要被定位在特定的区域。只是一个 整个渲染图像中的静态正弦模式就是我要寻找的 当我在谷歌上搜索这个问题时,我找到的最接近的是线程。但是OP想要在纹理上应用效果,这不是我想要的。 无论哪种方式,我尝试使用代码,我得到了以下结果: 如您所见,变形仅应用于纹理,它作为固定纹理而不是整个场景。如果我移动立方体,变形
那么,是否可以使用GLSL着色器实现这种效果?如果是,如何进行?您需要两次渲染过程。第一种方法将场景渲染到绑定到纹理的帧缓冲区中。第二种方法获得均匀的纹理,并将要实现的后期效果渲染到默认帧缓冲区。因此,只需在片段着色器中对当前像素的纹理进行适当的查找和映射,就可以实现预期效果。教程:是的,两个通行证就是方法…@Scheff,太棒了,谢谢!我来看看:)