Hi,
wo zur Hölle übersehe ich was beim Setzen der Materialeigenschaften? Mein Cube hier bleibt einfach stumpf weiß...
(Sry, C++, kein Delphi...)
Ich aktiviere Materialien in einem Init-Teil:
Code:
qglClearColor(Qt::black);
initLists();
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
glEnable(GL_COLOR_MATERIAL);
Setze in jedem Frame das Material (Hier noch testweise blau, um irgendwas zu bekommen):
Mein Licht wird so erzeugt dann: [code CGColorf amb = {0.1f, 0.1f, 0.1f, 1.0f}; CGColorf diff = {1.0f, 1.0f, 1.0f, 1.0f}; CGColorf spec = {1.0f, 1.0f, 1.0f, 1.0f}; CGPoint3Df dir = {0.3f, 1.0f, 0.5f}; this->logic = logic; light = new DirectedLight(GL_LIGHT0, amb, diff, spec); light->setDirection(dir); [/code]
Das Licht scheint soweit auach gut zu funktionieren. Bloß die Materialeigenschaften vom Cube... Die funktionieren partout nicht. :/
Sry für die Listings. Denke aber, das ist so besser, als wenn ich die Dateien anhänge.
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Hi,
versuch mal glEnable(GL_COLOR_MATERIAL); beim Init-Teil wegzulassen.
Wenn es aktiviert ist, wird nämlich die aktuell mit glColor3x gesetzte Farbe als Material benutzt.
Bei dir ist die wahrscheinlich weiss (standard).
Die übergebenen Werte mit glMaterial werden dann, glaub ich, von OpenGL ignoriert.
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Achso, was ich jetzt erst sehe:
Dein Rendervorgang deines Cubes ist "etwas" unperformant geschrieben...
Für jede Seite die Matrix pushen und popen mit gltranslate und glrotate drin Und was wenn der Würfel größer sein soll? Scalen???
Nee, ich würde den Würfel anders zeichnen.
Der Wiki-Artikel könnte ein erster Anhaltspunkt sein. Ist zwar in Pascal, aber ich denke, damit kommst du klar... Sieht am Anfang ziemlich komplex aus, man kann aber auch Teile weglassen, z.B. die Option inverted, falls du deinen Würfel immer von aussen sehen willst. Evtl kannst du dir auch die tscale und toffset sparen, falls du ohne texturen arbeitest, oder deine texturen immer eine würfelfläche komplett ausfüllen sollen.
Jo, danke, ich weiß. Das sind noch Überbleibsel der Computergrafik-Übung des Studiums. Da sollte alles schön aus Grundformen aufgebaut und zusammengesetzt werden. Passt schon soweit auch noch, als das in der Szene nur maximal 20-30 Cubes zu sehen sind.
Skalieren usw. geht damit übrigens wunderbar.
Registriert: Mo Jan 31, 2005 11:02 Beiträge: 432 Wohnort: Rheinlandpfalz
Alibi hat geschrieben:
Das sind noch Überbleibsel der Computergrafik-Übung des Studiums. Da sollte alles schön aus Grundformen aufgebaut und zusammengesetzt werden.
Na dann kann man das ja verzeihen
Alibi hat geschrieben:
Skalieren usw. geht damit übrigens wunderbar. Smile
Hatte ich auch erwartet, jedoch versuche ich glScalef() zu vermeiden, da es performance Verlust gibt und die Normalen mit-gescalet werden, was die Lichtberechnung ändert.
Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.