LoginSignup
9
8

More than 5 years have passed since last update.

GLSLエラーの例と対処法

Posted at

私の遭遇したエラーを列挙していきます

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);
9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8