Opengl_は_02_パイプライン(a)は、頂点入力を共有し、記録するために学ぶために始めました

今ナンセンスの前に:今までに最寄りの事!非常に満足!人生は本当に美しいです!

さて、今日は、特定のプロセスの頂点入力は、また詳細にパイプラインの最初のステージをレンダリングするプロセスを説明しているものを整理します。我々はまた、入力x、y、zの三の方向が含まれている必要があり、そしてそれらはアレイに配置されるように前に導入され、OpenGLの操作は、3Dのセット座標です。

次の表現を見て、三角形を描画するためにご参加ください

ここで各々について3つの座標の集合であり、OpenGLは、単純ではないことに留意されたい全てれるOpenGLの3Dは、三の軸(X、Y、及びZ)上の座標場合のみ- ; 3Dは画面上に2次元の画素に座標1.0から1.0の範囲内にそれを扱うとき。我々は1.0>> -1.0座標の範囲を与える理由です。この位置を越え場所なので、OpenGLは扱われません。もちろん、治療しなければ、グラフィックスを描画しません。

さて、今、私たちはの名前導入する必要があり、標準化されたデバイス座標を、当社の頂点シェーダ頂点が処理された後、彼らは正規化座標になったとき。いつもの画面で、新しい軸を軸に異なる、我々は通常中央画面の左上にある軸、およびこの画像全体の中心の中心座標を調整することをここで注意してください。図に示すように。

 

まあ、良い3つの頂点の位置を決定するために、その後、OpenGLは、私は三つの頂点それのアレイを形成することを知ってほしいですか?言い換えれば、我々が作成した現在の配列がしようとしている私たちの頂点シェーダー、頂点シェーダに導入され、我々は、特別GPU、OpenGLの上でそれらを格納するためのスペースを作成しますが、我々はこれらの点を説明する方法がわかりません効果は、アナロジーは台所にその材料である、料理人は、あなたが食べたい食べ物の種類がわからないので、彼は動きませんでした。

その前に、我々は新しい概念を紹介し、頂点バッファオブジェクト(頂点バッファオブジェクト、VBO)、すべての時間がちょうどポイントを通過した場合、これは効率の多くを無駄になりますので、私たちはこの場所にメモリを管理するためにVBOを使用します(ここで注意ない入力されたGPU)は、私たちは1回の複数の頂点メモリの伝送(だけでなく、経営VBOで)を入力してみましょう、と私たちの頂点シェーダは、内部に存在するからほぼ即時にデータを読み取ることができます。

多くのOpenGLバッファオブジェクトタイプ、バッファタイプの頂点バッファオブジェクトがあるありますGL_ARRAY_BUFFER。私たちは、新しく作成された使用glBindBuffer関数にバインドされた(VBO)をバッファリングすることができますGL_ARRAY_BUFFERターゲットに。ここでGL_ARRAY_BUFFERは、構造として見ることができるオブジェクトは、体が、我々はGL_ARRAY_BUFFERのすべての後、私たちとして理解することができる適応し、このオブジェクトにバインドする必要がある多くのものがありますされ、バッファ・コールは、それらを構成するために使用されますここで設定するバッファがVBOです。

まあ、我々はまだその配列それを覚えていますか?今、私たちはすぐに以前の内側に来て私たちのVBO内で定義されたの配列からデータをコピーします。本明細書で使用glBufferData(GL_ARRAY_BUFFER、はsizeof(頂点)、頂点、GL_STATIC_DRAW)として。 

最初のパラメータは、我々が直接操作固定小数点バッファオブジェクトのこのタイプを書きたいオブジェクトの種類を表し、2番目は、アレイ容量で、3番目はあなたがVBOの目標にコピーするということです、最後の一つは特別です。私たちは、VBOデータが頻繁に変更されないの内側に私たちは、その後、必ず合格し、多くのリソースを渡している場合ときビデオカードそしてここで、繰り返しメモリにリソースを転送VBOを実行している場合は、問題であることを知っています。だから、最後のセットGL_STATIC_DRAW、我々は唯一の固定されたイメージは、他の操作を表示したいので。これらのオプションもあります。

  • GL_STATIC_DRAW  :ほとんど、あるいはまったく変更したデータ。
  • GL_DYNAMIC_DRAW:データが大量に変更されます。
  • GL_STREAM_DRAW  :データは、あなたが描くたびに変更します。
    まあ、これは一時的に今日の結論します。次の更新のために来て!

 

おすすめ

転載: www.cnblogs.com/LuoRuidiLoveMiku/p/11305490.html