0

私はいくつかの線をプロットしていて、それらをフェードアウトさせたいと思っています。シェーダーコーディングは初めてで、何が問題なのかわかりません。線のベクトル配列と変換行列、均一な色とフェードの開始点を渡します。可変を使用して、頂点シェーダーからフラグメント シェーダーへのライン上の位置を渡します。コードは、フラグメント シェーダーがコンパイルされていないことを示しています。

頂点シェーダー

attribute vec4 position;
uniform mat4 matrix;
varying vec4 pointLocation;

void main() { 
    gl_Position = matrix * position;
    pointLocation = gl_Position;
}

フラグメント シェーダー

precision mediump float;

uniform vec4 uniformColor;
uniform vec1 fadeStart;
varying vec4 pointLocation;

void main() {
   lowp vec1 distance;
   lowp vec4 color;

   color = uniformColor;
   distance = pointLocation.x - fadeStart;

   if (distance < 30) {
        color.w = distance / 30;
   }

   gl_FragColor = color;
}
4

1 に答える 1

1

vec1 はありません。ただのフロートです。また、OpenGL でコンパイラ エラーが発生する可能性があり、どのような構文エラーが発生しているかの手がかりが得られます。

于 2013-07-10T21:06:05.073 に答える