从普通图像创建鱼眼效果的算法
Posted
技术标签:
【中文标题】从普通图像创建鱼眼效果的算法【英文标题】:Algorithm for creating fisheye effect from a normal image 【发布时间】:2010-11-25 18:25:16 【问题描述】:我正在尝试创建一个 OpenGL 片段着色器,它将普通图像转换为包含鱼眼效果的图像。这就是我所说的鱼眼效果 (http://www.marcofolio.net/photoshop/create_a_fish_eye_lens_effect_in_photoshop.html)。
我所说的普通图像是指在 3D 交互式环境中从虚拟相机拍摄的渲染图像,而不是从真实相机拍摄的图像,但我想这在这个问题上并没有太大的区别。
有谁知道 Photoshop 是如何做到的,或者我在哪里可以找到解释算法的材料?
谢谢
【问题讨论】:
【参考方案1】:在这种情况下,您甚至不需要着色器。从事物的声音来看,您将原始图像作为某种位图。如果是这样,只需将其用作纹理,并将其附加到球体上。
当然,您可以使用一个着色器(或一对着色器,真的),但除非您打算做的比您描述的更多,否则这样做不会给您带来太多好处(如果有的话)。
【讨论】:
源图像不是位图,而是帧缓冲区(FBO)的输出。这有什么不同吗? @Adham:它简化了一些事情。使用 FBO 渲染到纹理,因此不必将位图加载到纹理中,您只需使用 FBO 中的纹理。 (从技术上讲,您也可以使用 FBO 渲染到 renderBuffer,但在这种情况下您可能不想这样做)。 好的,现在我想让图像填满屏幕,而不仅仅是圆形,例如(idea.hosting.lv/a/gfx/quakeshots.html) @Adham:同样的基本想法——只是你的球体比视口大,所以它在边缘被剪裁了。以上是关于从普通图像创建鱼眼效果的算法的主要内容,如果未能解决你的问题,请参考以下文章