-1

タイトルが示すように、赤、緑、青の値が異なるスロットに配置され、画面に赤、緑、青のストライプが表示されます。コードはほとんどです:(wそしてh幅と高さです...)

unsigned int pixels[w * h * 3];
for (unsigned int i = 0; i < w * h * 3; i+=3) {
    pixels[i + 0] = 0xff // Red
    pixels[i + 1] = 0xff // Green
    pixels[i + 2] = 0xff // Blue
}
while(windowIsOpen()) {
    glClear(GL_COLOR_BUFFER_BIT);
    glDrawPixels(w, h, GL_RGB, GL_UNSIGNED_BYTE, pixels);
    glSwapBuffers();
}

しかし、これは、すべて白でなければならないときに、次のような画像を生成します。 私が欲しいものではない

どんな助けでも素晴らしいでしょう!非推奨であることはわかっglDrawPixelsていますが、画面にピクセルを簡単に描画する方法が必要です。このプロジェクトではパフォーマンスは問題になりません。

4

1 に答える 1

2

UNSIGNED_BYTE (sizeof(char) = 1) を送信していることを opengl に伝えている間、int (sizeof(int) = 4) のバッファーを使用していることに注意してください。

バッファーを int から char に変更し、すべてがうまくいくかどうかを確認します。

于 2015-02-09T09:23:13.257 に答える