gpt4 book ai didi

ios - gl_PointCoord 在 Mac 上不可用?

转载 作者:行者123 更新时间:2023-12-01 15:53:44 24 4
gpt4 key购买 nike

我想为点 Sprite 制作一个着色器 - 到目前为止一切都在 iOS 上运行。但在 Mac OS X 上不行。我的顶点着色器:

attribute vec4 position;
attribute vec4 color;
attribute vec2 texcoord;

varying vec4 colorVarying;

uniform mat4 modelViewProjectionMatrix;
uniform float pointSize;

void main()
{
gl_Position = modelViewProjectionMatrix * position;
colorVarying = color;
gl_PointSize = pointSize;
}

我的片段着色器:

varying lowp vec4 colorVarying;
uniform lowp float textureFlag;
uniform sampler2D texture;

void main()
{
gl_FragColor = textureFlag * texture2D(texture, gl_PointCoord) * colorVarying +
(1.0 - textureFlag) * colorVarying;

}

片段着色器无法在 mac 上编译,因为“gl_PointCoord”。在 Mac 上,我在着色器中添加了一个“#define lowp”作为预处理器。

如果我在着色器顶部添加一个“#version 120\n”,它在 Mac 上编译正常,但不显示任何内容(但是在 iOS 上,如果我使用#version 标签,它就不起作用在着色器之上——也许吧,因为 1.2 版会错过“lowp”)。

那么,原因可能是什么?我的 Mac 说,它使用 GLSL 1.2(我认为添加了 gl_PointCoord)。有什么想法吗?!?

最佳答案

顶部没有 #version 指令的 GLSL 着色器假定为 1.10。这可能永远不是您真正想要的,因此始终使用#version 指令。

桌面 OpenGL 和 OpenGL ES 不是一回事。尝试通过桌面 GL 实现提供 ES 着色器不能保证有效。所以你必须相应地修改着色器。

关于ios - gl_PointCoord 在 Mac 上不可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7859848/

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