2

次のエラーが表示されます。

WARNING: uniforms initializing is allowed from GLSL version 1.20
WARNING: Only GLSL version > 110 allows postfix "F" or "f" for float

私はそれを修正する方法を知っていますが、これが発生したマシンには OpenGL 3.1 があり、GLSL 1.4 があるため、なぜこれが発生するのだろうかと思います。

12:40:58 [INFO] Intel(R) HD Graphics Family
12:40:58 [INFO] OpenGL 3.1.0 - Build 8.15.10.2509

編集:問題のシェーダーはフラグメントシェーダーです(頂点シェーダーなし):

uniform sampler2D sampler;
uniform sampler2D bump;

uniform float imageSize;
uniform float range = 50;

void main() {
    vec2 pos = gl_TexCoord[0].xy;

    float height = texture2D(bump, gl_TexCoord[0].xy).r - 0.5;

    pos.y += height * range / imageSize;

    gl_FragColor = texture2D(sampler, pos);

            //gl_FragColor = texture2D(sampler, pos) *  (1 + (height - 0.3f) * 25);
}
4

1 に答える 1

6

#versionGLSL 仕様では、シェーダーがディレクティブを提供しない場合、バージョン 1.10 を前提としています。#versionシェーダーの上部に必ずディレクティブを指定してください。

于 2012-08-01T22:39:53.233 に答える