Я пытался узнать, как делать openGL в среде VB .NET, и кажется, что OpenTK рекомендуется использовать с помощью OpenTK с более высокой рекомендацией, так что это то, что я выбрал попробуйте использовать.OpenTK (OpenGL) в VB .NET
Поскольку я совершенно новичок в этом, я стараюсь просто нарисовать простую коробку, треугольник или что-нибудь действительно, чтобы я мог все понять, прежде чем создавать более сложные вещи. Я до сих пор не увенчался успехом, поэтому я перечислил в порядке, что я сделал до сих пор, и, надеюсь, кто-то здесь может помочь мне исправить это или представить новый пример, чтобы я мог нарисовать простую форму.
1) Я установил OpenTK используя opentk-2010-10-06.exe
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 как объект, ByVal e As System.EventArgs) H andles 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
Вышеуказанные результаты в без дисплея, так что любая помощь будет будем очень благодарны.
Даже если вы не знаете полного решения, любой ответ будет приятным.