OpenGL ES 2.0 是在一个项目中实现的,我一直在使用几个着色器组件来定义纹理在从位图修改后的外观。对于我的项目,SurfaceView 中只会有一个图像。
虽然在过去 24 小时内采用了几种不同的方法并查看了代码,但只希望能从社区中得到一两个快速响应。不寻找解决方案,我会进行研究。
这听起来好像因为我们正在使用着色器,为了根据触摸事件在纹理中进行缩放和移动,我将不得不使用 Matrix 实用程序和 OpenGL 平移或移动相机来获得与当前在 ImageView 中所做的效果相同。这是合适的方法吗?也许甚至修改着色器代码,以便我有一些额外的输入变量?
我不相信我可以在 Android 端使用任何东西来获得相同的效果,例如修改 SurfaceView 的 Canvas 或以其他方式改变 UI 的尺寸来获得相同的效果?
谢谢。同样,缩放和四处移动的解决方案不是必需的,只是试图掌握如何适本地混合 OpenGL 和 Android 来完成任务。
为什么1.0中有几个元素看起来比2.0容易;版本之间的易用性应该有所提高。
最佳答案
是的。您将需要使用正射投影并调整缩放范围。参见 this链接在这里。要平移,您可以简单地使用 glTranslatef。
如果您想完全在像素着色器中执行此操作,您可以使用带有 glScalef 和 glTranslatef 的纹理矩阵堆栈。
关于android - 使用 OpenGL ES 的 SurfaceView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16488055/