私の遭遇したエラーを列挙していきます
error C1068: too much data in type constructor
vec3なのに引数に4個も渡していたり,またはドットとカンマを間違えて書いてしまったり。した時に起きる。
✖vec3(0.0,0,0,0,0);
○vec3(0.0,0.0,0.0); or vec4(0.0,0.0,0.0,0.0)
out can't be used with non-varying texCoord
outにはvarying修飾子をつけないとだめ。
一字一句間違えてないのにユニフォーム変数が取得できない!!??
uniform vec3 cam;
のように宣言していても、main()の中で使用してなければ、取得できなくなる。
たとえ、main()の中で書いてあっても、最終的な出力にその変数が反映されていなければ、取得できなくなる。
コンパイラ賢すぎ?
assignment of incompatible type
vec3とvec4をごっちゃにしてるとこうなる。明示的にvec4(vec3,1.0);という風に書くこと。
Warning
warning C7502: OpenGL does not allow type suffix 'f' on constant literals
0.0fはダメ。0.0と書く。
warning C7503: OpenGL does not allow C-style casts
Cスタイルのキャストはダメ
ダメなコード
int n=1;
float f=(int)n;
良いコード
int n=1;
float f=int(n);