ios如何用纹理替换相机预览中的颜色

时间:2016-01-06 11:53:18

标签: ios opengl-es

我想做这样的事情: 打开相机并点击屏幕以获得该区域的颜色,然后用纹理替换该颜色。我做了类似的事情,用另一种颜色替换了屏幕上的颜色(虽然仍然不能正常工作),但我认为用纹理替换更复杂。 所以,请问有人能给我一个如何做到这一点的暗示吗? 另外,关于如何创建纹理。 谢谢, 亚历

1 个答案:

答案 0 :(得分:1)

基本上你会想要在片段着色器中使用布尔操作。

您需要将两个纹理输入到着色器,一个是相机图像,另一个是替换图像。那么你需要一个函数来确定相机纹理中的每片段颜色是否在某个颜色范围内(你选择的颜色),并根据它显示相机纹理或其他纹理。

你的问题有点模糊,你应该试着把它分解成更小的问题。棘手的部分,如果你之前没有这样做,那就是正确获取OpenGL样板代码。

你需要知道:

  • 如何编写,编译和使用基本的GLSL着色器
  • 如何将图像加载到OpenGL纹理中并在着色器中使用它们(搜索sampler2d)

良好的第一步是执行以下操作: 弄清楚如何使用2D几何体将纹理显示为平面全屏图像。您需要渲染两个三角形,并将纹理的坐标(UV)映射到三角形点上。

如果您按照本教程操作,您将能够完成您想要的任务: http://www.raywenderlich.com/70208/opengl-es-pixel-shaders-tutorial