Registriert: Do Aug 25, 2005 16:00 Beiträge: 189
Programmiersprache: Java, C#
Und genau da ist nascheinend mein Problem:
Wenn ich die Code-Zeile
Code:
[...]
fTexture := gluNewQuadric;
end;
einfüge verändert sich gar nix(außer das noch ne Fehlermeldung dazu kommt - wieder:
Inkompatible Typen: 'TglBitmap2D' und 'PGLUQuadric'
Hab ich ganz am Anfang ausprobiert - ich hab nämlich ausnahmsweise mal zuerst ins Wiki geschaut und versucht mienen eigenen Kopf zu benutzen(gewöhnt euch ja nit dran ).
Nur bin ich dummerweise nit viel weiter gekommen...
cya
Deathball
PS: Schonmal ein Danke im Vorraus für die Antworten die schon gegeben wurden/nochn kommen werden...
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Oh ja... da hast du dich richtig verhaun Deathball. Das du Quadriken mit Texturen gleichgesetzt hast war ne Variante auf die man so leicht nicht kommt. Respeckt
Wenn du's genauer mit den Quadriken wissen willst schau mal hier: http://wiki.delphigl.com/index.php/Quadrik Ich geb zu, es war nicht überall verlinkt. Aber das korrigier ich gerade.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Aug 25, 2005 16:00 Beiträge: 189
Programmiersprache: Java, C#
Hm...
jetzt könnte ich ein Problem haben...
ich hab keinen Peil auf wem ich die Schuld in die Schuhe schieben soll...
(Schul-)Lehrer geht ausnahmsweise mal nit, weil keiner dran beteiligt war(wo sind die eigentlich wenn man die mal wirklich braucht?)
Aber das löst ja immer noch nicht mein Problem mit der Schuldzuweisung...
Hm... *angestrengt nachdenk*
Ich habs!!! Flash ist der Schuldige!!! Weil ihm nit früher aufgefallen ist, dass teilweise Links auf den Quadrik-Artikel fehlen... Ja genau, der wars!!! Schäm dich!!!
Aber noch ne Frage zum Code von Grizzly: Müsste
Code:
myQuadric := gluNewQuadric;
nicht
Code:
quad := gluNewQuadric;
heißen? Und
Code:
gluQuadricTexture(myQuadric, True);
nicht
Code:
gluQuadricTexture(quad, True);
heißen?
Zumindest funktioniert es bei mir nur so, und es wäre für mich auch irgendwie logisch(wobei wir meine Logik bereits sehr schön zur Schau gestellt hab ^^° ), da ja auch die Variable quad heißt. Und was noch hinzu kommt das es funktioniert, wenn ich nur den Variablennamen nehme und nicht das myQuadric ^^ .
cya
Deathball
PS: Ach, und danke nochma für eure Geduld und natürlich auch eure Hife!
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ich !? Is ja nicht mein Wiki...hätte ja auch jemand anderes merken und beheben können...
Ja da hast du recht...sowas passiert wenn Leute onTheFly Quellcodeschnippselschreiben und im Kopf schon wieder andere Lösungsmöglichkeiten durchdenken...
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Aug 25, 2005 16:00 Beiträge: 189
Programmiersprache: Java, C#
Hi!
So wies aussieht hab ich heut mal wieder einen der Tage, an denen bei mir jegliche Logik und Intelligenz sich im hintersten Stübchen meines Kopfes versteckt haben...
Also, ich bin versuche gerade mit dem Tutorial Lektion 8: Das Wesen von hell und dunkel zu verstehen wie man mit OpenGL Lichtquellen realisieren kann(mal abgesehen von den Lightmaps aus dem vorherigen Tutorial).
So, und da herrscht bei mir einfach nur Bahnhof...
Also einfach mal den Code angeschat und ausprobiert...
und jetzt herrscht bei mir noch größere Ratlosigkeit als vorher...
Warum bewirkt dieser Code:
Code:
procedure Licht;
const
mat_specular : Array[0..3] of GlFloat = (1.0, 1.0, 1.0, 1.0);
mat_shininess : Array[0..0] of GlFloat = (50.0);
mat_ambient : Array[0..3] of GlFloat = (0.4, 0.4, 0.4, 1.0);
mat_diffuse : Array[0..3] of GlFloat = (0.4, 0.8, 0.4, 1.0);
light_position : Array[0..3] of GlFloat = (10.0, 10.0, 0.0, 1.0);
light_ambient : Array[0..3] of GlFloat = (0.8, 0.8, 0.8, 1.0);
light_diffuse : Array[0..3] of GlFloat = (0.8, 0.8, 0.8, 1.0);
Die Variable light_position[0] besitzt doch aber nur einen einzigen Wert, oder? Ich dachte eigentlich das da Raumkoordinaten hingehören, was dann ja 3 Werte sein müssten, oder?
2. Warum sind bei dem Beispiel oben(zumindest so wie ich es verstanden hab) in einer Lichtquelle ein Wert für ambientes Licht und ein Wert für diffuses Licht in ein und derselben Lichtquelle? Widerspricht sich das nicht?
3. Die Eigenschaften die man gesetzt hat, beispielsweise Materialeigenschaften, gelten solange für alle gezeichneten Objekte bis sie wieder verändert werden, oder?
so, das sind die Fragen die mir derzeit auf der Seele liegen...
cya und schonmal Danke für die Antworten,
Deathball
Registriert: Di Nov 26, 2002 22:12 Beiträge: 259 Wohnort: Dresden
Nun. Wenn du dir den Code genau anschaust so übergibst du nicht den Wert in den Variablen selbst sondern die Adresse (@) der Variable und die Funktion glLightfv holt sich dann die benötigten Werte aus der Adresse. Dies hat den Vorteil, dass du ganze Strukturen oder Arrays übergeben kannst egal welchen Typs diese sind. Hauptsache ist, dass deren Aufbau gleich ist.
Der Aufbau der Strukturen ist jedoch vorgeschrieben. Es werden also an einigen Stellen 4 Singles verlangt. Das bei Werten für GL_AMBIENT auch absolut sinnvoll, denn irgendwie musst du ja deine Farbwerte übergeben. In einem Single macht sich das schlecht. Und genau das ist wiederum der Grund, warum dein Code nicht funktioniert, denn du erfüllst nicht die Voraussetzungen, da du nur einen Single übergibst.
@2:
Eine Lichtquelle kann mehrere Eigenschaften haben. Darum kann sie auch einen ambienten Teil und einen diffusen Teil haben. Spiel’ am besten mit den Werten etwas umher und diese Frage wird sich von allein beantworten.
@3:
Ganz genau. Das ist im übrigen bei allen OpenGL-States der Fall, denn OpenGL ist ein Zustandsautomat. Die Werte bleiben immer beibehalten, bis du den jeweiligen Zustand änderst.
_________________ Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jederman ist überzeugt, dass er genug davon habe.
Rene Descartes, frz. Mathematiker u. Philosoph, 1596-1650
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Nein. Weil vorallem Anfänger das Wiki nicht als Infoquelle ansehen. Viele denken vermutlich, dass dort eh nichts zu ihren Fragen steht. Außerdem ist das Wiki ja zu 75% eine Doko-/Spezifikationssammlung.
Man muss den Leuten erst zeigen, was es im Wiki alles gibt...
(Das Wiki wird aber schon recht häufig besucht. Mein letztes Tut z.B. hat so täglich um die 25-30 Aufrufe.)
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Grizzly hat geschrieben:
nicht zu vergessen, dass man beim wiki idR schon ziemlich genau wissen muss, wonach man sucht, was bei Anfängern nicht zwingend gegeben ist.
Genau das sollte eigentlich vermieden werden. Ziel beim Wikiausbau sollte nämlich auch sein, die Artikel so mitenander zu verlinken, dass es ausreicht einen Artikel aus der gewünschten Richtung auszuwählen, und man von ganz alleine dann nach maximal 4 Artikeln zum Ziel findet.
Wer z.B. wissen will wie die Beleuchtung funktioniert kann glLight suchen und findet dort den Beleuchtungsartikel under "Siehe Auch".
Ich gebe zu, dass das momentan noch nicht sehr weit ausgebaut ist. Aber auch da hoffe ich auf die Mitarbeit der Community und der Wikinutzer. Wer also einen "versteckten" Artikel findet und meint "Hey der passt wunderbar zu Artikel XYZ" dann verlinkt die Sachen einfach untereinander. Es muss im Wiki ein richtiger "Fitz" entstehen.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Aug 25, 2005 16:00 Beiträge: 189
Programmiersprache: Java, C#
Bei mir ist noch eine Frage aufgetaucht...
Im Wiki heißt es ja:
Zitat:
glRotate - Multipliziert die aktuelle Matrix mit einer Rotationsmatrix.
Das bedeutet, wenn ich es richtig verstanden hab, das man die aktuelle Position eines Objekts ausrechnen kann(natürlich vorraussetzung das man die "Startposition" und den Winkel sowie die Achse kennt).
Wie kann ich das?
Denn ich möchte die Sicht auf eine Kugel die um einen bestimmten Punkt rotiert zentrieren(also zum Mittelpunkt machen), egal wo sie sich gerade befindent...
Und im Wiki hab ich bisher noch keine Formel gefunden, was mir in dem Punkt weiterhilft...
Mitglieder in diesem Forum: Bing [Bot] und 4 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.