#region OpenTK

OpenTKがGitHubで更新されるようになりました。NuGetから手に入れることができるようになりました。
現在は.NET Coreに対応する機運があるようです。

テクスチャの行列演算

テクスチャの指定も座標変換

テクスチャの座標を指定する点も、行列の演算によって移すことができます。

使われる場面は限られるかもしれませんが、使用すべき場面というものはあるでしょう。

今回はこの画像を使います。

Texture

テクスチャではなく点が動きます

Transform
テクスチャには手を加えない

ソースコードの見どころは少しだけ。

まず引数の比較のために、今まで使ってきたTexImage2Dを確認します。

			//行列演算モードをTextureに設定
			GL.MatrixMode(MatrixMode.Texture);
			GL.LoadIdentity();
			GL.Translate(-0.25f, -0.25f, 0.0f);
			GL.Rotate(30f, Vector3.UnitZ);
			GL.Scale(2.0f, 2.0f, 0.0f);

重要なのは一つだけ、GL.MatrixModeに、MatrixMode.Textureとすることです。

あとはGL.LoadIdentity、GL.Translate、GL.Rotate、GL.Scale、GL.MultMatrixなどを用いて行列を変えるだけです。

なお、動くのはテクスチャではないので、x軸に0.1動かしたらテクスチャが0.1だけx軸に沿って移動するわけではありません。あくまで、テクスチャを採集する点が動きます。

今回行っている座標変換を表すと、こんな感じになっています。

TransformFigure

記事

外部リンク

Thanks