【VB.NET+OpenTK】によるOpenGLテストプログラム

記事
IT・テクノロジー

■はじめに

以前、OpenGLのライブラリーを用いて、C#でプログラミングしたことあるが、それが、使い勝手のよさで、DirectXの開発ツールを使って、VB.Netでブログミングするようになって、それを使った販促用のシミュレーションプログラムを作ったこともあった。しかし、DirectXはバージョンアップするも、その開発ツールは公開されず、販促用のシミュレーションプログラムも継続されず、筆者自身、3D表示プログラムから、すっかり遠のいてしまった。そして、この間、OpenTKというツールキットで、OpenGLのプログラムが作れるということで、やってみた。

■作成環境


OS:Windows10
言語:Microsoft Visual Studio2022 Visual Basic 

パッケージ : OpenTK 3.3.3 / OpenTK.GLControl 3.3.3
     = 作成者;The Open Toolkit Team

 なお、ターゲットフレームワークを.net5.0にすると、ビルド時、エラーが発生するので、2019のテンプレートで、ターゲットフレームワークを.NET Framework4.7.2で、プログラムを作成している。(2023年3月17日現在)
■参考
以前のOpenGLのライブラリーには、基本的な形のメッシュモデルが用意されていて便利だったが、どうもOpenTKには、それが無いので、自分でルーチンを作らなければならないようだ。なので、その部分は、ネット上の某サイトに公開されているC#のコードを参考に、VB.NETでプログラミングした。

■表示サンプル

テストプログラムなので、雑です。
HC230317A.png

HC230317B.png

HC230317C.png

HC230317D.png

HC230317E.png



■図形表示部分のコード

    Public Sub DrawShape()
        GL.Rotate(45, 0, 1, 0)
        GL.Scale(1.0F, 1.0F, 1.0F)
        GL.Translate(0F, 0.3F, 0F)
        Call DrawCube(0.3, 0.3, 0.3, Color.Lime)
        GL.Translate(-0.6F, -0.0F, 0.6F)
        Call DrawCube(0.3, 0.3, 0.3, Color.Red)
        '
        GL.Translate(0F, 0.5F, 0F)
        Call DrawBall(0.12, Color.Yellow)
        GL.Translate(0.5F, 0F, 0.3F)
        Call DrawBall(0.1, Color.Blue)
        '
        GL.Translate(0.2F, -0.3F, 0F)
        Call DrawTaurus(0.3, 0.1, Color.White)
        '
        GL.Translate(-0.2F, -0.5F, -2.0F)
        GL.Rotate(-90, 1, 0, 0)
        Call DrawCone(0.2, 0.5, Color.Green)
        GL.Translate(0.3F, -0.5F, 0.1F)
        Call DrawCylinder(0.2, 0.2, Color.Magenta)
    End Sub

■最後に
 あくまで、これはテストプログラムで、これから、以前、作成したシミュレーションプログラムのようなものを作りたいと思っている。でも、それには、かなり時間かかかりそうである。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す