【问题标题】:Is it possible to process a FBO's color attachement (texture) using a fragment/pixel shader without vertex shader?是否可以使用没有顶点着色器的片段/像素着色器来处理 FBO 的颜色附件(纹理)?
【发布时间】:2012-11-07 16:44:52
【问题描述】:

我目前在 iOS 设备上使用 OpenGL ES 2.0 玩一些地形生成的东西。我有一个纹理和一个高度图。我想要做的是使用片段着色器模糊地形的纹理,但不是在每次绘制调用时(仅在需要时和开始时)。这就是为什么我决定在 FBO 中处理屏幕外的模糊,然后将此 FBO 作为纹理附加到地形。现在我想知道是否可以将图像(纹理)作为颜色附件添加到新生成的 FBO 并使用片段着色器对其进行处理?还是有更好的方法?不需要投影、闪电等。

【问题讨论】:

  • 您问题的标题似乎与您最终所说的不一致。你能澄清一下吗?
  • 换句话说:是否可以在没有定义任何顶点的情况下在颜色附件上使用片段着色器?还是我真的必须上传一个由 4 个顶点组成的矩形,映射纹理坐标,然后最后在片段着色器中进行图像处理?
  • 好的,对不起,我的错。我完全误解了 FBO 的颜色依附感。 ^^ FBO 的颜色附件不接收可以映射或处理的纹理。是FBO渲染后输出的纹理。

标签: objective-c opengl-es opengl-es-2.0 glsl


【解决方案1】:

您不能绕过顶点着色器而让片段着色器做任何事情。有很多方法可以最小化顶点着色器的工作量——您可以将几何体直接传递给片段着色器。像这样的着色器通常被称为(毫不奇怪)“直通着色器”,因为它们只是将信息随机传送到管道的下一段,而不做很多事情。

【讨论】:

  • 只想在现代(桌面)OpenGL中添加它,您可以执行称为“顶点拉动”的操作,即使用纹理数组加载顶点数据,而不是使用标准顶点属性。但是,它仍然发生在顶点着色器。没有办法绕过这个阶段。
猜你喜欢
  • 1970-01-01
  • 2013-09-17
  • 2011-10-04
  • 2017-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
相关资源
最近更新 更多