我第一次尝试在 iOS 下使用 OpenGL,试图通过将 YUV 图像转换为 RGB 来渲染它们。我环顾四周,在这里和那里找到了一些示例,并且我计划使用 Apple 的 GLCameraRipple 示例代码中提供的顶点/片段着色器。我了解执行转换所需的数学运算。我无法理解 OpenGL API 以及如何在屏幕上简单地绘制 2D 纹理。
有人可以说明使用 OpenGL 绘制纹理所需的高级步骤吗?如果我理解概念上需要做什么,我希望我能够弄清楚细节。
据我目前了解,顶点着色器在片段着色器之前触发,顶点着色器对顶点进行操作,片段着色器对介于两者之间的所有内容进行操作。可变关键字用于将在顶点之间插值的数据发送到片段着色器。
这会产生一些问题:
- 我是否需要传递一组代表纹理的 2D 帧的顶点?
- 在传递顶点之前,我是否需要将 YUV 数据传递给片段着色器?
- 片段着色器如何使用插值坐标来访问适当的 YUV 样本?
- 如何访问最终结果?
- 将适当的数据传递给着色器后如何触发操作?
谢谢你的时间。