我试图学习如何在 VB .NET 环境中执行 openGL,似乎建议使用 Tao 框架或 OpenTK,而 OpenTK 具有更高的推荐,所以这就是我选择尝试使用的。
因为我是新手,所以我试着画一个简单的盒子、三角形或任何真正的东西,这样我就可以在制作更复杂的东西之前理解它们。到目前为止我一直没有成功,所以我将按顺序列出我到目前为止所做的事情,希望这里有人可以帮助我纠正它或提供一个新示例,以便我可以绘制一个简单的形状。
1) 我使用 opentk-2010-10-06.exe 安装了 OpenTK
2) 在一个新项目中,我添加了对 OpenTK.dll 和 OpenTK.Compatibility.dll 的引用
3)我添加了控件(opentk.glcontrol.dll)
4)我将实际控件添加到我的表单中。
使用一些在线示例,我添加了其余部分:
5)我在以下位置写了我的参考资料:
Imports OpenTK
Imports OpenTK.GLControl
Imports OpenTK.Platform
Imports OpenTK.Graphics.OpenGL
Imports System.Math
6)我的全局变量:
Dim _STARTED As Boolean = False
7)我写了我的事件:
Private Sub GlControl1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles GlControl1.Resize _STARTED = True ResizeGL() End Sub
Private Sub ResizeGL()
GL.Viewport(0, 0, GlControl1.Width, GlControl1.Height)
GL.MatrixMode(MatrixMode.Projection) ' Select The Projection Matrix
GL.MatrixMode(MatrixMode.Modelview) ' Select The Modelview Matrix
GL.LoadIdentity() ' Reset The Modelview Matrix
End Sub
Public Sub ViewPerspective() ' Set Up A Perspective View
GL.MatrixMode(MatrixMode.Projection) ' Select Projection
GL.LoadIdentity() ';
Dim perspective1 As Matrix4 = OpenTK.Matrix4.CreatePerspectiveFieldOfView(MathHelper.PiOver4, _
CSng((GlControl1.Width) / (GlControl1.Height)), 0.1, 1000)
GL.LoadMatrix(perspective1)
GL.MatrixMode(MatrixMode.Modelview) ' Select The Modelview Matrix
GL.LoadIdentity() ' Reset The Matrix
GL.Enable(EnableCap.DepthTest) ' This doesnt need to be here but.. If your using the Z buffer.. It dont hurt.
End Sub
Public Sub ViewOrtho()
GL.MatrixMode(MatrixMode.Projection) 'Select Projection
GL.LoadIdentity() ' Reset The Matrix
GL.Ortho(0, GlControl1.Width, -GlControl1.Height, 0, 0.1, 100.0) ' Select Ortho Mode
GL.MatrixMode(MatrixMode.Modelview) ' Select Modelview Matrix
GL.LoadIdentity() ' Reset The Matrix
End Sub
8)最后,我试着给他们打电话:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ViewOrtho()
End Sub
以上结果没有显示,所以任何帮助将不胜感激。
即使您不知道完整的解决方案,任何回应都会很好。