我一直在尝试在OpenGL中制作一个ImageViewer。但我不知道如何在OpenGL中隐藏我的矢量/纹理的特定部分。
ImageViewer应该是启用了分页的UIScrollView的精确副本,其中图像填满整个屏幕。
UIScrollView中的优点是你可以设置UIScrollView的实际帧,并设置内容大小,所以当图像从框架中滑出时,你将无法再看到图像。
我需要一些指导方针,以便继续研究如何做。
答案 0 :(得分:1)
也许您可以设置片段着色器,以便在像素超出范围时使像素不可见。
您知道4个顶点的位置(左上角,右上角,左下角,右下角)和纹理的位置。然后,您可以将统一的vec4上传到片段着色器,其中包含窗口的最小和最大x和y大小。然后,您可以计算像素是在该区域内部还是外部。如果在里面:实际颜色,如果在外面:gl_fragcolor = vec4(1,1,1,0);
这有什么帮助吗?
答案 1 :(得分:0)
我自己找到了解决方案。
我放置了一个填充整个屏幕的UIScrollView,并使用该偏移来移动纹理坐标。
我不知道这是否是最佳解决方案,但我没有任何性能问题。所以现在已经足够了。
如果您有更好的解决方案,请随时提出建议。