【发布时间】:2015-05-18 22:42:07
【问题描述】:
我从 SceneKit 和着色器开始,我创建了一个 swift 文件,将其名称更改为 myFragment.shader,然后添加了这个:
uniform sampler2D RTBlurH; // this should hold the texture rendered by the horizontal blur pass
varying vec2 vTexCoord;
const float blurSize = 1.0/512.0;
sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y - 4.0*blurSize)) * 0.05;
sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y - 3.0*blurSize)) * 0.09;
sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y - 2.0*blurSize)) * 0.12;
sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y - blurSize)) * 0.15;
sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y)) * 0.16;
sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y + blurSize)) * 0.15;
sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y + 2.0*blurSize)) * 0.12;
sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y + 3.0*blurSize)) * 0.09;
sum += texture2D(RTBlurH, vec2(vTexCoord.x, vTexCoord.y + 4.0*blurSize)) * 0.05;
gl_FragColor = sum;
来自模糊教程here
但我在前 3 行出现 3 个错误:它要求我添加 ;:
我不明白这个问题。
谢谢
【问题讨论】:
-
顺便说一句,这是在移动 GPU 上进行模糊的一种非常糟糕的方法。每个片段 8 次依赖纹理读取会影响您在某些设备上的性能(并且只会影响其他设备)。 Here's a good writeup 在移动 GPU 上进行模糊处理。另请注意,在 SceneKit 中,您只需将 Core Image 过滤器分配给节点并让 Apple 处理模糊实现。
标签: ios compiler-errors shader scenekit