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