Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

gluSphere

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
schildron



Anmeldungsdatum: 25.08.2008
Beiträge: 86

BeitragVerfasst am: 23.02.2010, 20:45    Titel: gluSphere Antworten mit Zitat

Ich habe ein Problem bei der Erstellung von Kugeln mit OpenGL.
Folgender Code ist für die Erzeugung der Bälle/Kugeln zuständig:
Code:
Sub Ball1()
glColor3f 8,0,2
gltranslatef P1x, P1y, -6
gluSphere(GluNewQuadric(), radius, 75, 75)  ''Radius ist 0.22
gltranslatef (P1x*(-1)), (P1y*(-1)), 6
End Sub

Sub Ball2()
glColor3f 0.0, 1.0, 0.0
gltranslatef P2x, P2y, -6
gluSphere(GluNewQuadric(), radius, 75, 75)
gltranslatef (P2x*(-1)),(P2y*(-1)),6
End Sub


Ich erzeuge die Bälle im Ursprung und verschiebe sie mit
Code:
gltranslatef

entsprechend.
Die Kamera blickt genau auf das Geschehen --> Das Spielfeld erscheint 2-Dimensional. Die Kugeln werden nicht beleuchtet.

Während des Spieles erscheinen die Kugeln allerdings leicht oval und nicht rund. Woran kann das liegen?

Eine Frage am Rande:
Außerdem ruckelt der Code manchmal bei 60 FPS, woran könnte das liegen. Kann ich die FPS-Begrenzung von 60 aufheben?

Mit freundlichen Grüßen
Schildron
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 23.02.2010, 23:58    Titel: Antworten mit Zitat

Zitat:
Während des Spieles erscheinen die Kugeln allerdings leicht oval und nicht rund. Woran kann das liegen?

Also wenn dein OpenGL-Fenster "richtig" initalisiert wurde, darf das nicht passieren. Wird das Programm im Vollbild gestartet? Wenn ja, in welcher Auflösung? Und welche Auflösung hat dein Desktop normalerweise?
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
schildron



Anmeldungsdatum: 25.08.2008
Beiträge: 86

BeitragVerfasst am: 24.02.2010, 08:46    Titel: Antworten mit Zitat



Wie man sehen kann sind die beiden Bälle oval. Ich initialisiere mein OpenGL-Fenster so, wie in Sebastians Tutorial.

Code:

Screen 19, 16, , 2

'-------------------------
' Open-GL Init
'-------------------------
glViewport 0, 0, 800, 600
glMatrixMode GL_PROJECTION
glLoadIdentity
gluPerspective 45.0, 800.0/600.0,0.1, 6.1 
glMatrixMode GL_MODELVIEW
glLoadIdentity
glClearColor 0.0, 0.35, 0.65, 0.0 ' Setze Farbe für löschen auf Blau
glClearDepth 1.0
glEnable GL_DEPTH_TEST
glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT


Da Programm läuft mit 800x600 Pixeln im Fenstermodus. Der Desktop hat 1280x1024 Pixel.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 24.02.2010, 09:59    Titel: Antworten mit Zitat

Zitat:

Wie man sehen kann sind die beiden Bälle oval. Ich initialisiere mein OpenGL-Fenster so, wie in Sebastians Tutorial.

Wohl eher Stormy, Sebastian interessiert sich nicht so für OpenGL. happy
Aber nein, das tust du nicht, denn du benutzt glProjection, ohne dir scheinbar darüber Gedanken zu machen, was der Befehl bzw seine Parameter überhaupt tun. Den Befehl hast du sicher nicht aus Stormys tut und für eine 2D-Draufsicht (wie du es scheinbar planst) brauchst du den auch gar nicht.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
schildron



Anmeldungsdatum: 25.08.2008
Beiträge: 86

BeitragVerfasst am: 24.02.2010, 21:48    Titel: Antworten mit Zitat

Das verstehe ich nur bedingt.
gluPerspective bestimmt das Sichtfeld der Kamera, das Seitenverhältnis und die min. bzw. max. Entfernung der anzeigbaren Objekte. In welchem Zusammenhang dies zu gluSphere hat ist mir auch schleierhaft. Ich sammele aber auch erst erste Erfahrung mit OpenGL.

OffTopic: Leider merke ich mir Namen nur sehr schwer, falls ich etwas vertausche ist das nicht persönlich zu nemehn.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 24.02.2010, 21:52    Titel: Antworten mit Zitat

das hat mit den kugeln an sich nichts zu tun, die bleiben schön rund. aber ne kugel im augenwinkel sieht halt verzerrt aus - und gluperspective sorgt dafür, dass es sowas wie "augenwinkel" gibt zwinkern
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
schildron



Anmeldungsdatum: 25.08.2008
Beiträge: 86

BeitragVerfasst am: 25.02.2010, 10:56    Titel: Antworten mit Zitat

So, ich habe das Problem jetzt mit der Benutzung von GluDisk behoben. Könnte es sein, dass das Problem mit der ovalen Kugel dadurch entsteht, dass man schräg auf die Kugel blickt?

Schlussendlich funktioniert es jetzt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz