gpt4 book ai didi

ios - 将统一颜色传递给片段着色器 (openGL ES 2.0)

转载 作者:可可西里 更新时间:2023-11-01 04:39:46 25 4
gpt4 key购买 nike

这是一个奇怪的问题。如果我尝试将统一颜色传递给片段着色器,则会出现编译错误

uniform vec4 uniformColor;

void main(){
gl_FragColor = uniformColor;
}

但是如果我将相同的统一颜色传递给顶点着色器,然后通过 varying 将它传递给片段着色器,那么它工作正常..

    attribute vec4 position;
uniform mat4 matrix;
uniform vec4 uniformColor;
varying vec4 fragmentColor;
void main()
{
gl_Position = matrix * position;
fragmentColor = uniformColor;
}

varying lowp vec4 fragmentColor;
void main()
{
gl_FragColor = fragmentColor;
}

这是在 iOS 上。

我有点困惑,因为从网上复制和粘贴示例会出错。

最佳答案

OpenGL ES 中的片段着色器没有默认的浮点精度限定符。使用任何浮点指针变量都需要精度限定符——无论它是统一变量、变化变量还是局部变量都没有关系。顶点着色器有一个默认精度,因此您不需要在那里添加任何限定符。

在 OpenGL 中不需要精度限定符,这就是为什么您指向的示例不包含它们。

尝试将它添加到着色器的顶部,应该没问题:

precision mediump float;

关于ios - 将统一颜色传递给片段着色器 (openGL ES 2.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17290806/

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