OpenTK (OpenGL) in VB .NET
Ich versuche zu lernen, wie man openGL in VB .NET-Umgebung, und es scheint, dass das Tao-framework oder OpenTK wird empfohlen, mit OpenTK, die eine höhere Empfehlung, so dass ist, was ich beschloss zu versuchen, mit.
Da bin ich ganz neu in diesem, ich bin versucht, ziehen Sie einfach eine einfache box, Dreieck, oder etwas wirklich so ist, dass ich es alle verstehen können, bevor Sie mehr komplexe Dinge. Ich habe schon erfolglos auf diese so weit, so werde ich die Liste in der Reihenfolge, was ich bisher getan habe und ich hoffe jemand hier kann mir helfen, korrigieren Sie oder geben Sie ein neues Beispiel nur so kann ich zeichnen Sie eine einfache Form.
1) habe ich installiert, OpenTK mit opentk-2010-10-06.exe
2) In einem neuen Projekt Hinzugefügt habe ich die Verweise auf OpenTK.dll und OpenTK.Compatibility.dll
3) ich habe die control - (opentk.glcontrol.dll)
4) ich habe die eigentliche Kontrolle auf meiner form.
Anhand einiger Beispiele online habe ich den rest:
5) schrieb ich meine Referenzen in:
Imports OpenTK
Imports OpenTK.GLControl
Imports OpenTK.Platform
Imports OpenTK.Graphics.OpenGL
Imports System.Math
6) Meine Globale variable:
Dim _STARTED As Boolean = False
7) schrieb ich meine events:
Private Sub GlControl1_Resize(ByVal sender As Object, ByVal e Als System.EventArgs) Griffe GlControl1.Größe
_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) Schließlich versuchte ich, Sie zu nennen:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ViewOrtho()
End Sub
Die oben genannten Ergebnisse keine Anzeige, so dass jede Hilfe wäre sehr geschätzt werden.
Selbst wenn Sie nicht wissen, eine vollwertige Lösung, jede Antwort, möglichen schön.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte posten Sie Ihre rendering-code zu (D. H. Sie Paint-event-handler). Der code, den Sie geschrieben legt die OpenGL-viewport-und Projektions-matrix, aber nicht wirklich Rendern nichts.
Habe ich gelöst, meine eigene Frage :p habe ich eine wrapper-Klasse, so dass ich zeichnen kann, einige primatives basierend auf Eingaben, die es mir erlauben sollten, zeichnen viele Dinge aus: ein Kreis, polygon, Dreieck -, und text.