我对WebGL和OpenGL也相对较新,但是最近几天我已经把大部分时间都用来为它写一个小游戏了。然而,当我想要实现像热浪或任何类型的失真之类的东西时,我被卡住了。
现在,我可以使用片段着色器制作纹理波纹,但是当我想要扭曲对象背后的内容时,我觉得我错过了一些东西。有没有办法获取已经在片段着色器中渲染的像素的颜色?
我尝试渲染到纹理,然后让对象的纹理成为,但是如果你选择将场景渲染到纹理,则会出现,你也无法将它渲染到屏幕上。除此之外,如果你想渲染一个纹理,那个纹理必须是2的幂(许多屏幕分辨率不太适合)
任何帮助都将不胜感激。
答案 0 :(得分:1)
您必须渲染到纹理并将该纹理绘制到屏幕上,同时扭曲它。此外,在OpenGL ES 2.0(WebGL使用的图形API)中,不要求帧缓冲对象必须具有2的幂大小。但是,非二次幂纹理不能进行mipmapping或纹理包装。
答案 1 :(得分:0)
我相信你可以modify individual canvas pixels directly。可能是一个小区域波纹的好方法,但可能不会加速。