ビリトンの魔法のグラフィックス技術者の教育マニュアル(第4講座)| Yiziyiziは、OpenGLのチュートリアルをノック

最終講義では、コンテンツの知識およびOpenGLベースのレンダリングの側面を導入しました。サンプルコードは、私たちのGithubに記載されています。Githubの検索Tillusoryを見ることができます。コードは、注釈付きのXcodeのマックOSX動作環境です。、次のダウン後に実行環境に多くの情報を設定することができますVSに子供用の靴のバージョンを獲得し、問題できます非公開手紙マイクロ手紙公衆数。

  1. テクスチャマッピング
    の4.1基本概念
    話す言及ドローに太陽系、これだけ学んだ最後の講義、どのようにソーラーシステムである、ように、いくつかのボールまで描く位置を移動、回転運動のすべての種類を行うとしています。太陽や惑星は、これらのパターンは、球の表面にそれをカバーするために、次にどのように、それの少なくとも表面パターンを持っている必要がありますか?

テクスチャを理解することは最初に、白は実際にマップされたテクスチャは、このマップは、リアリズムを高め、3Dモデルアップにマップされます。これらの画像のピクセルのグラフィックスハードウェアの要件は、すべてではないことの安全性を確保するために必要なハードウェアの、2の整数乗でなければなりません。

そして、ここで私は混乱、明確なコンセプトを恐れています。我々はすべて知っているように、画面上のすべての点は、我々は、画素(ピクセル)が、我々はピクセルを言っていないテクスチャ上の各点が、呼ばれるテクセル(テクセル)を呼び出します。この用語はなく、画素の表示素子を用いたテクセルは、主にテクスチャ・オブジェクトのアプリケーションの方法を強調するために、物体の質感を表現します。テクスチャ・オブジェクトは、通常、テクスチャ画像によって読み取られ、テクセル色値とアルファ値を含む、二次元アレイ、アレイ素子と呼ばれるテクセル(テクセル)にデータを保存します。私は、アルファ値がRGB色パラメータがそれを覚えていることをここで言及したいと思いますか?実際には、第四パラメータがあり、この値は、透明度を制御する、アルファあります。実際には、この1は私の後ろに詳細に入る必要がある、新しいものではないまた、デプステストああの多くを話すことができている、ああZバッファ、情報バーを見てU3Dの開発に従事しています。

テクセルは、我々はXを持っていない座標、Yが表現され、我々はSを使用し、Tを表現しました。STテクスチャテクセルのテクスチャオブジェクトを得るために、組成座標、テクスチャ座標(テクスチャ座標)を指定する必要があります。Sは、Tは、テクスチャが時々 UV座標を座標としてUは、Vが発現することができます。問い合わせ3Dモデルの事の無い他人のUV図の種類、UV図に対する設計のようなUVビューマップに対応した各モデル。UVは、私たちがテクスチャ座標である、stは座標ここで言うという事実を調整します。以下に示すように座標:
ビリトンの魔法のグラフィックス技術者の教育マニュアル(第4講座)| Yiziyiziは、OpenGLのチュートリアルをノック
ビリトンの魔法のグラフィックス技術者の教育マニュアル(第4講座)| Yiziyiziは、OpenGLのチュートリアルをノック
左下隅が(0,0)であり、右上(1,1)。S Tは、数1よりも大きいかまたは0に等しいと以下です。テクスチャ座標を指定することにより、テクセルにマッピングすることができます。例えば、256×256サイズの二次元テクスチャは、対応するテクセル(128、256)である(0.5、1.0)座標。(256x0.5 = 128、256x1.0 = 256 )。テクスチャマッピングは、オブジェクトに頂点テクスチャ座標を指定する必要があり、残りは補間フラグメントシェーダによって行われる場合。

4.2テクスチャ画像を読み取ります

どのように我々は、サンプルコードでテクスチャ画像を読み取るためのコードを追加します、そしてここで私は、テクスチャマップBMPファイルのメソッドからの読み出しを与えます。この方法でGitHubのあなたが、その後で見つかったbmptotexture.cppという名前のファイルを見ることができます。この方法は、BmpToTextureと呼ばれています。次のように使用します。

幅と高さの要件は、2の累乗です。ないBMPファイルでも使用できる場合は、いくつかのツールは、PS、または他のツールとして、BMPに変換されます。

4.3 WRAPパラメーター

テクスチャ座標は0-1であるため、より0-1場合はどのように行うために。例えばだけ正確にテクスチャ座標(0.5、1.0)テクセルのマッピング、(128、256)と述べました。テクスチャは[1,1]の範囲に[0,0]外の座標がどのようにそれを処理するには?

そして、このような状況と特異的に対処するため、WRAPと呼ばれるパラメータを使用します。

ラップコードを設定し、特定のパラメータを見てください:

glTexParameteri(GL_TEXTURE_2D、GL_TEXTURE_WRAP_S、ラップ)。

glTexParameteri(GL_TEXTURE_2D、GL_TEXTURE_WRAP_T、ラップ)。

ラップは、次の2つに分割されている場合は:

GL_REPEAT:整数部分の座標は、OpenGLのテクスチャが処理され、デフォルトで繰り返しテクスチャを、無視されます。

GL_CLAMP:座標は[0,1]に切り捨てられます。結果は、大きな座標値が延伸エッジ(棒パターン)で形成されたテクスチャの縁部に切り捨てられています。

以下は、左側にGL_CLAMP、右の絵GL_REPEATです。
ビリトンの魔法のグラフィックス技術者の教育マニュアル(第4講座)| Yiziyiziは、OpenGLのチュートリアルをノック

おすすめ

転載: blog.51cto.com/14528075/2437646