2014-07-15 32 views
4

GLSL着色器錯誤 錯誤:0:1:「(」:語法錯誤:構造函數調用可能沒有精確GLSL着色器錯誤「構造函數調用可能沒有精確」

我看到這個錯誤有基於GLPaint演示的是iOS 8應用的Xcode 6 ...(在iOS7正常工作)

我還注意到,他們不再使用「字符串」的事情在GLPaint演示的1.13版本。


.vsh

static const char* BaseVS = STRINGIFY 
(


attribute highp vec4 inVertex; 

uniform highp mat4 MVP; 
uniform highp float pointSize; 
uniform highp vec4 vertexColor; 
uniform highp float brushRotation; 

varying highp vec4 color; 


void main() 
{ 
    gl_Position = MVP * inVertex; 
    gl_PointSize = pointSize; 
    color = vertexColor; 
} 

); 

.fsh

static const char* BaseFS = STRINGIFY 
(


uniform sampler2D texture; 
uniform sampler2D normalMap; 
uniform highp float brushRotation; 

varying highp vec4 color; 
varying highp vec3 normal; 
varying highp vec3 lightDir; 
varying highp vec3 eyeVec; 

precision highp float; 

void main (void) 

{ 


highp float vRotation = (brushRotation/180.0)*3.14;; 
highp float mid = 0.5; 
highp vec2 rotated = vec2(cos(vRotation) * (gl_PointCoord.x - mid) + sin(vRotation) * (gl_PointCoord.y - mid) + mid, 
        cos(vRotation) * (gl_PointCoord.y - mid) - sin(vRotation) * (gl_PointCoord.x - mid) + mid); 
highp vec4 rotatedTexture = texture2D(texture, rotated); 


gl_FragColor = color * rotatedTexture; 

} 

); 

回答

3

的問題是在用於隨機生成的方法。我在vec2()構造之前刪除了「高」。 (嘆氣)

highp float rand(highp vec2 co) 
{ 
    return fract(sin(dot(co.xy ,highp vec2(12.9898,78.233))) * 43758.5453); 
} 
+1

該死!你一定得到了「高」才能得到這個。開玩笑 :) 。你是救世主。萬分感謝。 – instaable