具有太少多边形的OpenGL扭曲效果

时间:2017-10-24 21:42:38

标签: opengl glsl fbo render-to-texture

我正在进行一个小型的2D游戏,我的巫师会施放一个咒语,我想创建一个效果,在这个世界变形,就好像咒语弯曲一样,光就像火周围的热空气一样。现在我有一个顶点着色器扭曲我用来绘制世界的矩形点。有两个问题。首先是我的简单2D游戏中没有足够的多边形,因此无法正常工作。第二个是我的地形由十六进制格子组成,如六角网格。因为4点矩形多边形不代表六角网格的6个点连接在一起的位置,所以多边形的扭曲会导致世界分裂并且下方出现间隙。现在我可以改变世界使用6点十六进制多边形而不是带有十六进制纹理的矩形,但这将超出范围。

是否有可能在屏幕外的某处渲染我的世界然后抓取屏幕外的帧作为纹理,然后再次使用更高的多边形数量渲染它?那时我会使用我的warp顶点着色器。

还有另一种方法吗?

1 个答案:

答案 0 :(得分:2)

您希望在像素着色器中将其作为后期处理效果执行此操作。获取之前的渲染目标,然后将其用作此后期处理效果的输入。

渲染到纹理的指南 http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-14-render-to-texture/

Fire会折射,但我会从代码中学习这种漩涡并修改它以使屏幕更像你想要的那样。做折射有点困难,但你可以用这里的想法来模仿它,并操纵你如何用噪音对紫外线进行采样。

http://www.geeks3d.com/20110428/shader-library-swirl-post-processing-filter-in-glsl/

这应该让你指出一些正确的方向。