Seite 1 von 1

Hilfe, Anfänger! Variablen in OpenGL

Verfasst: Dienstag 22. Mai 2018, 14:40
von SL08
Hey,

ich muss eine Variable in Python mit OpenGL erstellen.

Ich habe drei Quader, die aneinander gereiht sind. Mein Ziel ist es, den 1. und 3. Quader seperat bewegen zu könnnen. Dafür benötige ich zwei Variablen.
Wie man grundsätzlich in Python Variablen erstellt, habe ich bereits herausgefunden, allerdings nicht im Zusammenhang mit OpenGL und den Koordinaten der einzelnen Quader.

Kann mir dabei jemand helfen oder kennt Ihr gute Beispiele dafür?

Vielen Dank schonmal,

SL

Re: Hilfe, Anfänger! Variablen in OpenGL

Verfasst: Dienstag 22. Mai 2018, 14:56
von __deets__
Die Variablen existieren nicht "in" OpenGL. Fuer jeden Quader hast du eine Model-Matrix. Die musst du fuer jeden Quader entsprechend seiner Koordinaten aufsetzen und anwenden, bevor der Quader selbst gezeichnet wird.

Re: Hilfe, Anfänger! Variablen in OpenGL

Verfasst: Dienstag 22. Mai 2018, 15:57
von bwbg
OpenGL ist kein triviales Thema. "Mal eben" was zeichnen ist mit modernem OpenGL nicht möglich.

Wenn die Quader die gleichen Geometrien besitzen, genügt ein (Vertex) Buffer und entsprechend drei (Uniform) Buffer mit den MVP-Matrizen.

Einen entsprechenden Shader benötigst Du ebenfalls.

Genug Anforderungen, um sich ein Wochenende damit zu beschäftigen 8)

P.S.: Wenn in Deiner Anleitung Dinge wie glBegin, glVertex etc. auftauchen, entsorge diese!

Re: Hilfe, Anfänger! Variablen in OpenGL

Verfasst: Dienstag 22. Mai 2018, 17:07
von ThomasL
Wenn du die englische Sprache verstehst, kann das dir helfen.

https://www.youtube.com/watch?v=R4n4NyD ... rKuf6r80KO

Re: Hilfe, Anfänger! Variablen in OpenGL

Verfasst: Dienstag 22. Mai 2018, 20:33
von bwbg
Das Video zeigt veraltetes OpenGL und sollte daher nicht verwendet werden.

https://learnopengl.com/Getting-started/Hello-Triangle

Dies ist zwar C, die Funktionen unterscheiden sich jedoch nicht wesentlich. Ggf. gibt PyOpenGL einige Hilfstypen mit. Bislang hatte ich OpenGL lediglich mit pyglet und ctypes angetestet.