gpt4 book ai didi

ios - SpriteKit 着色器崩溃 iOS 9 : SKDefaultShading, gl_FragCoord

转载 作者:技术小花猫 更新时间:2023-10-29 10:49:33 26 4
gpt4 key购买 nike

刚刚安装了 iOS 9 公开测试版(第 3 版),现在我遇到了很多 SpriteKit 着色器问题。在 iOS 8 上,以下代码运行良好:

_fontShader = [SKShader shaderWithFileNamed:@"TheShader"]; // TODO: iOS9 compatibility issues here
_fontUniform = [SKUniform uniformWithName:@"labelBase" float:0];
[self.fontShader addUniform:self.fontUniform]; // TODO: iOS9 compatibility issues here

_fontEffects = [SKEffectNode node];
self.fontEffects.shader = self.fontShader; // TODO: iOS9 compatibility issues here
self.fontEffects.shouldEnableEffects = YES;
self.fontEffects.shouldCenterFilter = NO;
self.fontEffects.shouldRasterize = YES;
[self addChild:self.fontEffects];

编辑:文件“TheShader.fsh”如下所示:

float yPos = gl_FragCoord.y - labelBase; // iOS 9 Compatibility issues here
float gradient = 0.35*(yPos / u_sprite_size.y); // ranges from 0 at base to 0.35 at top

vec4 color = SKDefaultShading(); // the current label color (iOS 9 Compatibility issues here)
color = vec4(gradient + color.r, gradient + color.g, gradient + color.b, color.a);
color.rgb *= color.a; // set background to alpha 0

gl_FragColor = color;

在 iOS 9 上,控制台以这种格式喷出一堆警告:

2015-07-12 22:43:17.717 ReconInForce[599:110531] Jet: Error Domain=MTLLibraryErrorDomain Code=3 "Compilation failed: 

program_source:8:18: error: use of undeclared identifier 'gl_FragCoord'
float yPos = gl_FragCoord.y - labelBase[0];
^
program_source:11:18: error: use of undeclared identifier 'SKDefaultShading'
vec4 color = SKDefaultShading(); // the current label color
^
" UserInfo=0x158c084b0 {NSLocalizedDescription=Compilation failed:

program_source:8:18: error: use of undeclared identifier 'gl_FragCoord'
float yPos = gl_FragCoord.y - labelBase[0];
^
program_source:11:18: error: use of undeclared identifier 'SKDefaultShading'
vec4 color = SKDefaultShading(); // the current label color
^
}

似乎 iOS9 不支持 SKDefaultShading 和 gl_FragCoord。如何在不使用 gl_FragCoord 的情况下找到局部像素尺寸?

控制台会一直重复此操作,从而减慢设备速度。这是一个截图: enter image description here

如果我注释掉上面说“此处存在 iOS9 兼容性问题”的行,那么问题就会自行解决,但是我没有任何着色器。

还有其他人有这个问题吗?将不胜感激。

最佳答案

我是在看到消息use of undeclared identifier 'gl_FragCoord' 后来到这里的但最终我可以通过替换

来解决我的问题

gl_FragCoord.xy / u_sprite_size.xy

v_tex_coord

关于ios - SpriteKit 着色器崩溃 iOS 9 : SKDefaultShading, gl_FragCoord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31492404/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com