|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Mindmover Mini JLI'ler
Alter: 41 Anmeldedatum: 28.02.2005 Beiträge: 25
Medaillen: Keine
|
Verfasst am: 14.05.2005, 12:10 Titel: OpenGL + Glut !? *verzweifel* |
|
|
Soderle ich muß schonwieder Nerven, ich habe wie immer das Suchen benutzt aber es ist wieder nix gescheites dabei rausgekommen (außer das ich Patrick seine Schnippsel nicht downloaden/anschauen kann)
Also hier die Frage:
Ich besuche derzeitig, der Erfahrungswillen, neben dem Studium noch eine Vorlesung in Computergraphik. Dort Programmieren wir unter Linux mit "Kate" + Mesa und OpenGL + Glut verwenden wir für den Code. In Linux kann man dolle sachen mit machen, nur dummerweise bin ich nur ein Windows-User und so stellt sich mir das Problem das ich das ganze zuhause nicht nachprogrammiere kann. Allerdings nur bei mir ... den bei meinen Kommiltonen funzt es, die haben sich mein Problem schon angeschaut und konnten es auch nicht lösen und ich verzweifle langsam wirklich.
Ganz einfach also OpenGL unter VC6 installiert (dll in Systemordner; Lib in Lib und glut.h in include - Verzeichnis)
=>
Ich kann NICHT die Datein von Linux verwenden. Da er mir immer einen "Klammerfehler" in der gl.h moniert (was so ungefähr mehrere 100 Fehler nach sich zieht und der Compiler wegen zu vieler Fehler abbricht).
Jetzt habe ich versucht einfach mal selbst eine Win32 - Consolen Anwendung zu programmieren. Ich öffne also die Anwendung schreibe den Code komplett rein und Sage Kompilieren+ausführen ... wieder der Fehler aus der GL.h zwischenzeitig hatte ich den Compiler im Visier aber der Code funktioniert auch in Dev C++ und MinGW nicht.
Durch die vielen Englischen Beschreibungen wie ich mir die Dateien von Mesa raussuche und bei VC6 installiere gingen mir Zeit und Nerven verloren aber gebracht hat es nichts.
Daraufhin habe ich Unter "Projekt -> Einstellung" die lib's gelinkt (wäre ja nicht dumm) aber keine besserung noch immer wird mir vom Compiler beim compilieren die Gl.h auf den Bildschirm geworfen und ein Fehler direkt nach den #Define-Befehlen moniert.
Also meine mageren Improvisationskünste neigen sich dem Ende zu nicht nur ich sondern auch meine Komiltonen (die teilweise mehr Ahnung haben als ich) sind ratlos und ich komme in der Vorlesung nicht mehr mit weil ich zuhause nicht testen und ausprobieren kann.
Reines OpenGL als Win32-Anwendung hilft mir nur wenig weiter da wir halt sehr stark mit Glut arbeiten.
So und jetzt hoffe ich so als letzte Möglichkeit das vielleicht einer von euch ne Ahnung hat. ICh hoffe das euch das zutexten nicht zu sehr Nervt.
Solong Greets Mindmover
(der erst am Montag wieder online kommen kann)
Btw hier mal die Datei frisch aus der Linux Werkstatt ^^:
(die Datei ist noch aus den Ersten Vorlesungen ich habe erst Später ausführliche Kommentare ergänzt, ich hoffe dennoch das es zu verstehen ist.)
CPP: | #include <stdlib.h>
#include <stdio.h>
#include <GL/gl.h>
#include <GL/glut.h>
int main (int argc, char **argv)
{
void myinit ();
void display ();
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (500,500);
glutInitWindowPosition (0,0);
glutCreateWindow ("Praktikum Computergraphik SS 2005");
glutDisplayFunc (display);
myinit();
glutMainLoop();
return 0;
}
void myinit (void)
{
/* Attributes */
glClearColor (1.0,1.0,1.0,0.0); // white background
/* Viewing */
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glOrtho (-500.0,500.0, -500.0,500.0, -500.0,500.0);
glMatrixMode (GL_MODELVIEW);
}
void display (void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f ((200.0)/750.0,(200.)/600.0,500.0);
glTranslated(-150,0,0);
glutSolidSphere(65,50,50);
glColor3f ((200.0)/750.0,(200.)/600.0,500.0);
glTranslated(300,0,0);
glutSolidSphere(65,50,50);
glColor3f ((200.0)/750.0,(200.)/600.0,500.0);
glTranslated(0,-300,0);
glutSolidSphere(65,50,50);
glColor3f ((200.0)/750.0,(200.)/600.0,500.0);
glScalef(3,1,1);
glTranslated(-50,300,0);
glutSolidCube(100);
glColor3f ((200.0)/750.0,(200.)/600.0,500.0);
glLoadIdentity();
glRotatef(270,0,0,1);
glTranslated(150,150,0);
glScalef(3,1,1);
glutSolidCube(100);
glColor3f ((200.0)/750.0,(200.)/600.0,500.0);
glLoadIdentity();
glRotatef(260,0,0,1);
glScalef(4,1,1);
glTranslated(90,165,0);
glutSolidCube(30);
glColor3f ((200.0)/750.0,(200.)/600.0,500.0);
glLoadIdentity();
glRotatef(270,0,0,1);
glScalef(4,1,1);
glTranslated(100,160,0);
glutSolidCube(30);
glColor3f ((200.0)/750.0,(200.)/600.0,500.0);
glLoadIdentity();
glRotatef(280,0,0,1);
glScalef(4,1,1);
glTranslated(100,140,0);
glutSolidCube(30);
glFlush (); // start processing OpenGL routines
}
|
|
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 14.05.2005, 12:54 Titel: |
|
|
normalerweise werden die gl.h usw vom compiler mitgeliefert, daher brauchst du die linux dateien garnicht.
ansonsten versuch doch einfach mal VC neu zu installieren, vielleicht hast du die vorhandenen header dateien kaputt gemacht.
Glut kannst ud hier finden:
http://www.opengl.org/resources/libraries/glut.html |
|
Nach oben |
|
|
Mindmover Mini JLI'ler
Alter: 41 Anmeldedatum: 28.02.2005 Beiträge: 25
Medaillen: Keine
|
Verfasst am: 15.05.2005, 08:07 Titel: |
|
|
Auch mit einer Neuinstallation hat es auch nicht funktioniert. |
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 15.05.2005, 09:05 Titel: |
|
|
nochmal schritt für schritt, damit ichs kapier *g*
wenn du obiges programm in eine konsolenanwendung einbastelst, ohne vorher an den header dateien rumgebastelt zu haben. welche fehlermeldungen kommen dann? |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 15.05.2005, 09:13 Titel: |
|
|
Ganz einfach, du musst die 'windows.h' mit einbinden, bevor du die 'gl.h' einbindest...
Um das ganze plattformunabhängig zu halten, mache ich das z.B. immer so:
CPP: | #if defined(_WIN32)
#include <windows.h>
#endif
#include <gl/gl.h>
#include <gl/glext.h> |
Außerdem müssen die ganzen Funktionen der Glu-Library gluFunktionsName heißen, nicht glutFunktionsname.
Zuletzt bearbeitet von GreveN am 15.05.2005, 10:21, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 15.05.2005, 09:56 Titel: |
|
|
es gitb eine glu library UND eine glut library. es gibt also beide prefixe |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 15.05.2005, 10:20 Titel: |
|
|
Ok, ich muss zugeben, das hab ich nicht gewusst, ich benutz eigentlich auch nie Glut, Glu, Glaux oder wie sie noch alle heißen. Höchtens hin und wieder mal die SDL.
Funktioniert das Programm denn jetzt, nachdem du die Windows.h mit eingebunden hast? |
|
Nach oben |
|
|
Patrick Dark JLI Master
Anmeldedatum: 25.10.2004 Beiträge: 1895 Wohnort: Düren Medaillen: Keine
|
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 15.05.2005, 11:04 Titel: |
|
|
und glut ist uralt.. es wird nicht mehr weiter entwickelt. |
|
Nach oben |
|
|
Mindmover Mini JLI'ler
Alter: 41 Anmeldedatum: 28.02.2005 Beiträge: 25
Medaillen: Keine
|
Verfasst am: 17.05.2005, 08:37 Titel: |
|
|
Dann habe ich zwei Probleme.
1. Da glut in meiner Vorlesung genutzt wird werde ich mehr oder weniger gezwungen dies zu verwenden, ganz gleich ob uralt oder aktuell.
2. Selfmade...gerne und jederzeit aber dazu fehlen mir a) Programmierkenntnisse und b) die nötigen Vorlesungen in dennen mir oetwas näher gebracht werden kann.
Ich werde euren Vorschlag mit der Header initialisierung mal versuchen. Dazu fahr ich dann gleich nachhause und probier es mal. Ansonsten erstmal danke für eure Tips.
Btw. Warum ist glut lame und Buggy? Klärt mich mal auf dann kann ich wenigstens lernen es zu verstehen udn vielleicht es einmal besser versuchen.
Solong Greets Mindmover |
|
Nach oben |
|
|
Mindmover Mini JLI'ler
Alter: 41 Anmeldedatum: 28.02.2005 Beiträge: 25
Medaillen: Keine
|
Verfasst am: 18.05.2005, 11:30 Titel: |
|
|
Sorry wegen dem Doppelpost erstmal. Also die Anwtort ist, ja, auf den ersten Blick scheint es mit dem
#if defined ...
zu funktionieren, jetzt kommt allerdings der Hacken. So funktioniert die
glBegin(GL_TRIANGLES)
...
glEnd();
allerdings funktionieren die Aufrufe "GL_LINE_LOOP" ; "GL_LINE_STRIP";"GL_TRIANGLE_FAN" ... nicht. Dann hab ich es aufgegeben weil ich keine Lust mehr hatte. Bei den vor genannten Objekten startete er zwar das Fenster aber das Fenster ist "Durschsichtig", d.h. er nimmt den Hintergrund an dem Punkt wo dasFenster erscheint(Linke obere Ecke) und behält diesen bei. Nichts zu sehen von Linien oder Dreiecken. Kennt jemand dieses Problem!?
Greets Mindmover |
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 18.05.2005, 13:33 Titel: |
|
|
das hört sich sehr verwirrend an. vielleicht zeigst du uns einen screenshot von dem was da falsch/oder garnicht dargestellt wird |
|
Nach oben |
|
|
|
|
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.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|