OpenTKOpenTKがGitHubで更新されるようになりました。NuGetから手に入れることができるようになりました。Coreに対応する機運があるようです。テクスチャをポリゴンに貼るテクスチャとはテクスチャ(Texture)の意味は、表面の質感や手触りを指す概念のようです(Wikipediaより)。3DCGでも、意味通りに質感を表現することに使います。物体の模様の表現など、ゲームなどでは必ずと言っていいほど使われている技術です。模様の表現に使われるテクスチャですが、実際にはテクスチャはさまざまな用途に用いられます。通常のテクスチャにはRGBAの色情報が格納されていることが多いのですが、これに法線情報と高さ情報を格納してライティングで使用することで、表面のざらつきや凸凹を表現することができます。テクスチャに物体周辺の景色を格納してライティングでそれを参照することで、ガラスによる屈折や金属による反射を表現することができます。テクスチャが受け渡すことができる量が大きいことを利用して、汎用のデータコンテナとして利用することもあります。テクスチャの技術は、3DCGのいたるところに用いられています。使い方を覚えましょうこれでもポリゴンは一枚ですソースコードは、テクスチャを扱うための最低限のコードにしています(カメラ操作除く)。//ウィンドウの起動時に実行される。colors);}テクスチャの利用手順はVBOのそれと似ていて、最初にテクスチャの使用を許可します(128行目)。次にGenTetureでテクスチャを格納する領域を確保して、識別番号を取っておきます(131行目)。テクスチャに対して操作を行うときは、BindTextureで対象のテクスチャをひも付けをしてから行います(134行目)。ここでは、2次元のテクスチャとしてひも付けしていますが、対象ごとに違うテクスチャをひも付けしておけます。137行目と138行目はテクスチャの設定なのですが、ここではテクスチャ拡大や縮小したときにどう扱うかを指定します。テクスチャ設定の中でもこれは必須の設定です。これが必要だと言うことだけ覚えておいてください。色情報の生成については特に書きませんが、多くの場合は画像(または画像化したデータ)を外部ファイルから読み込んで使います。TexImage2Dで対象のテクスチャに情報を流し込みます(155行目)。//ウィンドウの終了時に実行される。e){base.OnUnload(e);//使用したテクスチャを削除GL.DeleteTexture(texture);}VBOと同じように、終了時はテクスチャを格納する領域を削除します。0);GL.End();ここはポリゴンを一つ描画している単純なコードです。テクスチャをポリゴンに対して適応する場合、TexCoord?を用います(今回は2次元テクスチャのためTexCoord2)。TexCoordで指定する数字は、頂点に対応するテクスチャ座標です。色を指定したのと同じように、頂点に属性を持たせます。テクスチャの座標さて、テクスチャの座標とは何でしょうか。2次元の場合s軸とt軸テクスチャの座標は上のように1.0四方の正方形の中に圧縮されて入っています。TexCoordではこの座標を指定します。指定する場合は0.0から1.0以外の値でもよくて、はみ出している場所は指定した方法で補完されます(テクスチャの繰り返しや、終端の色で塗りつぶすなど)。すべての領域を使わなければいけないわけでもありませんし、複数のポリゴンに適応しても構いません。歪んでいても大丈夫です。両面表示する場合は裏側にも適応されています。表裏の同じ位置なら同じ色です。MasuqaT.NET。