OpenGL ImageViewer

时间:2013-06-03 12:18:53

标签: ios opengl-es opengl-es-2.0

我一直在尝试在OpenGL中制作一个ImageViewer。但我不知道如何在OpenGL中隐藏我的矢量/纹理的特定部分。

ImageViewer应该是启用了分页的UIScrollView的精确副本,其中图像填满整个屏幕。

UIScrollView中的优点是你可以设置UIScrollView的实际帧,并设置内容大小,所以当图像从框架中滑出时,你将无法再看到图像。

我需要一些指导方针,以便继续研究如何做。

2 个答案:

答案 0 :(得分:1)

也许您可以设置片段着色器,以便在像素超出范围时使像素不可见。

您知道4个顶点的位置(左上角,右上角,左下角,右下角)和纹理的位置。然后,您可以将统一的vec4上传到片段着色器,其中包含窗口的最小和最大x和y大小。然后,您可以计算像素是在该区域内部还是外部。如果在里面:实际颜色,如果在外面:gl_fragcolor = vec4(1,1,1,0);

这有什么帮助吗?

答案 1 :(得分:0)

我自己找到了解决方案。

我放置了一个填充整个屏幕的UIScrollView,并使用该偏移来移动纹理坐标。

我不知道这是否是最佳解决方案,但我没有任何性能问题。所以现在已经足够了。

如果您有更好的解决方案,请随时提出建议。