-1
配列からピクセルをレンダリングしようとしています。0から1までの値の配列に基づいてグレイスケールピクセルをレンダリングします。
私はthisのようなデータ配列を持っています(はるかに大きいものを除く)。この配列から、配列の各数値が数値値に基づいてグレーの陰影を持つピクセルに対応するように、何とかレンダリングしたいと思います。開始する場所を私は知らない
(0.0は白になり、そして1.0は黒になります)。
配列からピクセルをレンダリングしようとしています。0から1までの値の配列に基づいてグレイスケールピクセルをレンダリングします。
私はthisのようなデータ配列を持っています(はるかに大きいものを除く)。この配列から、配列の各数値が数値値に基づいてグレーの陰影を持つピクセルに対応するように、何とかレンダリングしたいと思います。開始する場所を私は知らない
(0.0は白になり、そして1.0は黒になります)。
あなたが指定した配列に対して。あなたがレンダリングするイメージの幅と高さを知っている場合は、この操作を行うことができます。このため
int indx = 0;
for(int x = 0; x < width; x++) {
for(int y = 0; y < height; y++) {
glColor3d(data[indx],data[indx],data[indx]);
//drawing of it goes here; assuming glVertex2d(x,y);
indx++;
}
}
は、それがその幅*高さ< data.lengthが知られている必要があります動作するように。描画された各ピクセルのインデックスを増やして、配列の次の番号に移動し、それに応じて描画します。
xとyを変更して、必要な場所を描画できるようにします。 locX = locY = 10とすると、すでに設定しておく必要があるビューポートによっては、イメージは左上または左下のいずれかから(おそらく)10ピクセル離れたレンダリングを開始します。 OpenGlおよび/またはLWJGLをどのように描画するかを既に学んだら、この部分は簡単な数学です。
int locX, locY;
int indx = 0;
for(int x = 0; x < width; x++) {
for(int y = 0; y < height; y++) {
glColor3d(data[indx],data[indx],data[indx]);
glVertex2d(locX + x, locY + y);
indx++;
}
}
これが役立ちます。
これは単次元の配列だと仮定していますが、多次元の配列に適応するのは簡単です。 – EddisonKing
2次元のデータ配列ですが、1dリストに色を格納できます。色データからの画像? –
各ピクセルを個別に描画すると、パフォーマンスが低下します。データをシングルチャンネルテクスチャにアップロードし、線形フィルタリングを使用して1つのテクスチャ付きクワッドを描画してみませんか? – BDL