2017-03-09 10 views
-1

配列からピクセルをレンダリングしようとしています。0から1までの値の配列に基づいてグレイスケールピクセルをレンダリングします。

私はthisのようなデータ配列を持っています(はるかに大きいものを除く)。この配列から、配列の各数値が数値値に基づいてグレーの陰影を持つピクセルに対応するように、何とかレンダリングしたいと思います。開始する場所を私は知らない

example image of what I would like

(0.0は白になり、そして1.0は黒になります)。

答えて

-1

あなたが指定した配列に対して。あなたがレンダリングするイメージの幅と高さを知っている場合は、この操作を行うことができます。このため

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++; 
    } 
} 

これが役立ちます。

+0

これは単次元の配列だと仮定していますが、多次元の配列に適応するのは簡単です。 – EddisonKing

+0

2次元のデータ配列ですが、1dリストに色を格納できます。色データからの画像? –

+0

各ピクセルを個別に描画すると、パフォーマンスが低下します。データをシングルチャンネルテクスチャにアップロードし、線形フィルタリングを使用して1つのテクスチャ付きクワッドを描画してみませんか? – BDL

関連する問題