1

描画アプリを作成していて、定期的に色を変更する必要があります。したがって、1 つのポイントが緑で、別のポイントが赤である可能性があります。

私は次のようにしようとしています: -

プログラム

glBindAttribLocation(_program, ATTRIB_COLOR, "color");

頂点シェーダー

attribute vec4 position;
attribute float size;
attribute vec4 color;
varying vec4 fragColor;

void main()
{
    gl_Position = position;
    gl_PointSize = 30.0;
    fragColor = color;
}

フラグメントシェーダー

precision mediump float;
varying vec4 fragColor;

void main() {

    gl_FragColor = fragColor;

} 

問題は、ポイントが画面上のどこにあるかによって色が異なることです。アトリビュートの色として赤を設定した場合、ポイントが画面上に表示される場合は純粋な赤にする必要があります。

ここに画像の説明を入力

4

1 に答える 1

0

問題は上記のコードとは関係ありませんでした。プログラムによってシェーダーに送信される属性データの位置がずれていました。

于 2013-01-01T17:04:19.320 に答える