Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

08.10.2011, 15:51

OpenGL GLFW funktioniert nicht richtig???

Hallo, ich versuche OpenGL zu lernen. Ich bin mir nicht sicher, aber entweder tu ich "immer" etwas falsch oder das was ich benutze tut es nicht richtig. Ich verfolge auch ein Tutorial aber erziele nicht die selben Ergebnisse. Auch wenn ich angefangen habe sie abzuschreiben.
Ich benutze OpenGL GLFW version
http://www.glfw.org/

Das hier z.B. funktioniert bei mir:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <GL/glfw.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>

int main( void )
{
int running = GL_TRUE;
// Initialise GLFW
if( !glfwInit() )
{
printf("glfw Treiber konnte nicht gestartet werden");
    return 0;
}
 
if(!glfwOpenWindow(1440,900,0,0,0,0,32,0,GLFW_WINDOW)) {
printf("glsw Window konnte nicht gestartet werden.");
glfwTerminate();
return 0;
}


glfwSetWindowTitle( "Windowtest" );
// Main loop
float i = 0.f;

while( running )
{
int width = 1440;
int height = 900;
   
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glBegin(GL_POINTS); 
glVertex3f(i,0.0f,0.0f);
glEnd();

if( glfwGetKey( GLFW_KEY_LCTRL )) {
i -= 0.01f; // Um punkt zu verschieben
std::cout << i << std::endl;
}
glfwSwapBuffers();
running = !glfwGetKey( GLFW_KEY_ESC ) &&
glfwGetWindowParam( GLFW_OPENED );

}
// Close window and terminate GLFW
glfwTerminate();
// Exit program
return 0;
}

Ich seh ein Punkt und kann es mit linke STRG-Taste nach links bewegen.

Nun versuchte ich ein viereck nur als linien zu zeichnen..

das wäre so

C-/C++-Quelltext

1
2
3
4
5
6
        glBegin(GL_LINE_LOOP); 
            glVertex3f(-1.f,  1.0f,  0.0f);
            glVertex3f(-1.f, -1.0f,  0.0f);
            glVertex3f( 1.f, -1.0f,  0.0f);
            glVertex3f( 1.f,  1.0f,  0.0f);
        glEnd();

Das funktioniert nicht. auch wenn ich mit glTranslatef den Z achse auf -5 oder +5 stelle. Ich versteh das nicht. Laut Tutorial soll das gehen.

Was ist da falsch?
Nichts ist unmöglich.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »MaZy« (08.10.2011, 15:58)


2

08.10.2011, 18:16

Nun, einfach nur glTranslate aufrufen bringt es halt auch nicht. Da fehlt zum Beispiel vieles, wo im MOment einfach OpenGL Standardwerte benutzt werden, die man aber in der Regel anpassen möchte. Zum Beispiel setzt du keinen VIewport, keine ProjectionMatrix und keine Modelview Matrix.

Wenn die Grundlagen funktionieren, hast du ja schon viel gewonnen, du wirst einfach noch mehr über die Grundlagen von OpenGL lesen müssen. Am besten suchst du dir ein etwas komplexeres Tutorial, wo nicht nur 1 Punkt gezeichnet wird, schaust dir den Beispielcode an und versuchst zu verstehen, was welcher Teil macht.
Lieber dumm fragen, als dumm bleiben!

DarioFrodo

Treue Seele

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

3

09.10.2011, 09:11

Die besten Deutschen OpenGL-Einsteiger Tutorials die ich kenne findest du hier.
Sie stellen eine Übersetzung der berühmten Englischen OpenGL Tutorials von NeHe da.
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

09.10.2011, 09:52

NeHe ist nur leider total veraltet. Das sollte man wirklich nicht mehr lernen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

DarioFrodo

Treue Seele

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

5

09.10.2011, 17:17

Hm.. und was sollte man dann stattdessen lernen Blauer Kobold?
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

09.10.2011, 17:51

Das schaut mir nicht so schlecht aus.

7

09.10.2011, 18:45

Wenns um modernes OpenGL geht (3.0 aufwärts) finde ich das hier ganz gut, bis auf dass er in dem Tut nichts auf Funktionen/Klassen aufteilt: http://opengl-tutorial.org

MCP

Alter Hase

Beiträge: 513

Wohnort: Paderborn

Beruf: Software-Entwickler

  • Private Nachricht senden

8

09.10.2011, 20:23

Das von dot, das hier und das OpenGL Book haben mir sehr geholfen. :)
Da ist zwar keines dabei das perfekt ist, aber man lernt genug um zu verstehen wie es funktioniert und darauf aufzubauen.

9

10.10.2011, 12:08

Also der von Nehe hat bei mir auch wenig gebracht. Da hab ich eigentlich als erstes angefangen zu lernen. Ich sah da meist nichts komischerweise. obwohl ich width und height fenster größe genommen habe. Deswegen hab ich es auch dort sein gelassen zu lesen. Aber danke für die andern Links. Werd mir auf jeden Fall anschauen.
Nichts ist unmöglich.

10

13.10.2011, 15:07

Oh man wieso beziehen sich alle auf glut?!?! Das ist doch schon sehr veraltet :D
Aber danke.. mittlerweile hat es sehr weit gebracht. Nun muss ich Matrixberechnungen lernen. Darauf freue ich mich schon
Nichts ist unmöglich.

Werbeanzeige