OpenGL:缩放主缓冲区的不规则部分

OpenGL:缩放主缓冲区的不规则部分,opengl,Opengl,如何缩放主缓冲区的不规则部分?我还需要将边界纹理应用于该部分 为了简单起见,我在模拟放大镜 更新: 让我们用最简单的例子试试: 1.2D渲染,全屏绘制图像(纹理)。 2.获取该区域的任何非正方形(圆形和多边形都可以)区域。 3.将其尺寸增加两倍。 4.应用另一个纹理,它将覆盖拍摄图像的边界区域。中间会是透明的。 5.把它拉回到主缓冲区 如果有帮助的话,我可以提供我的想法的屏幕截图。有像素着色器,可以在适当的位置渲染部分场景,或者如果需要在自定义位置渲染混合效果,可以使用带有两个纹理的FBO进行渲

如何缩放主缓冲区的不规则部分?我还需要将边界纹理应用于该部分

为了简单起见,我在模拟放大镜

更新: 让我们用最简单的例子试试: 1.2D渲染,全屏绘制图像(纹理)。 2.获取该区域的任何非正方形(圆形和多边形都可以)区域。 3.将其尺寸增加两倍。 4.应用另一个纹理,它将覆盖拍摄图像的边界区域。中间会是透明的。 5.把它拉回到主缓冲区


如果有帮助的话,我可以提供我的想法的屏幕截图。

有像素着色器,可以在适当的位置渲染部分场景,或者如果需要在自定义位置渲染混合效果,可以使用带有两个纹理的
FBO
进行渲染,一个用于整个场景,一个用于缩放部分。

可以使用模具和FBO来完成

  • 需要从主缓冲区缩放到临时FBO的复制区域
  • 如果需要在其上绘制任何图形,请应用
  • 切换回主缓冲区上的绘图
  • 创建模具遮罩以保护不需要的零件上的图形
  • 绘制由临时FBO创建的纹理
  • 清除模板缓冲区

  • 我认为这可能是有用的。但我仍然不知道这在我的情况下会起什么作用。你能说得更具体些吗?请提供关于你当前上下文的更多信息,我可以说得更精确。@Predrag Manojlovic:你需要掌握
    FBO
    来渲染纹理,这可能是让你困惑的地方。在谷歌搜索“使用fbo渲染到纹理”,这是第一步。混合化着色器不是很复杂。我曾在益智游戏中使用过一个directX着色器,但如果你愿意,我可以跳过它。这是我的directX着色器,它是rouded zoom。我错过了转换为glsl的时间,可能以后:float2 centerToPixel=uv-Center*dd;浮动距离=长度(中心像素/float2(1,dd.y/dd.x));浮动比率=平滑步长(内半径,最大值(内半径,外半径),距离);float2采样点=lerp(中心*dd+中心像素/放大率、紫外线、比率);返回tex2D(纹理采样器,采样点);通过使用模具解决。为什么你没有?如果你愿意,我当然可以删除这个答案,但它可能对其他人有用。在没有得到正确答案的情况下,经过数小时的实验,我发现了这一点。如果你说这不是一个答案,我会删除它:重复的答案。这看起来更像是答案吗?如果你们能回答,我会很乐意把你们的答案标记为正确的。谢谢,我没有答案,我只是说你最初试图回答的问题并不是真正的答案。这样好多了。