ich habe nen Fehler der mir total spanisch vorkommt aber eigentlich recht simpel sein müsste..
Ich habe als ersten Befehl in der Renderroutine einfach alles verschoben um quasi über die Karte zu scrollen aber irgendwie verschiebt sich nur das erste 6eck von dem ganzem Feld. Manchmal (wenn ich schnell drücke oder so) verschiebt sich der Rest ein Stück mit.
Ich verwende die routine die Sasha im Hexagon Tutorial geschrieben hat:
Render:
Code:
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
Ausserdem klappt es mit der Textur nicht wirklich, die Felder haben nur die Hauptfarbe der Textur und nicht das Muster, vielleicht liegt es dadran das ich 4eckige Texturen habe? Wie erstellt ihr 6eckige?
1. versuch mal das erste popMatrix nicht nach, sondern vor dem Aufruf von hexfield zu machen. Ich meine mich zu erinnern, wenn man mit push/popmatrix arbeitet erstmal nen dummy pushen zu müssen.
6eckige Texturen gibbet nich, und Deine Texturkoordinaten sehen gut aus. Hast Du im Texturmodus (also glMatrixMode(GL_TEXTURE)) irgendwelche Translationen/skalierungen drin? Isses ne POT Textur? Ist die Textur vielleicht 1x1?
[edit] ich nehm alles zurück: negative Texturkoordinaten gibts nicht!!! rechne das mal auf 0..1 um[/edit]
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
Registriert: Sa Aug 18, 2007 18:47 Beiträge: 694 Wohnort: Köln
Programmiersprache: Java
Ich denk mal mit den Texturkoordinaten kann das nichts zu tun haben.
Frage ist warum du vor dem SwapBuffers (A.d.R. dass dort das Ende der Renderroutine ist) noch ein glPushMatrix machst?
Alles was auf den Stapel gelegt wird, sollte man auch wieder runternehmen. Wenn man das innerhalb eines Renderdurchlaufs nicht macht, gibt es manchmal sehr interessante Phänomene.
_________________ Es werde Licht. glEnable(GL_LIGHTING); Und es ward Licht.
Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Zitat:
ich nehm alles zurück: negative Texturkoordinaten gibts nicht!!! rechne das mal auf 0..1 um
Jain. Das kommt auf den Wrapmodus an. Bei GL_CLAMP_* werden sie aber auf 0-1 beschränkt wodurch die Aussage stimmt. Bei GL_REPEAT spielt das aber keine Rolle. Nichts destro trotz wäre es wohl besser wenn du (gucky) wie sidorin schon sagte das besser auf 0-1 anpasst. Wenn ich mich nicht vertue dann siehst du deine Textur derzeit auch Horizontal gespiegelt.
damadmax: Gucky hatte eine versteckte zweite Frage zu den Texturen.
Registriert: Sa Aug 18, 2007 18:47 Beiträge: 694 Wohnort: Köln
Programmiersprache: Java
Muss man denn immer alle Fragen auf einmal beantworten?
Ne ernsthaft: Hab ich überlesen. Dann macht natürlich meine Antwort, es hätte nix mit den Koordinaten zu tun, so ohne direkten Zusammenhang keinen Sinn. Das stimmt wohl.
Also mir wäre es erstmal ziemlich schnuppe "wie" es aussieht, hauptsache die Bewegung funktioniert. Und da irritiert mich das einsame glPushMatrix sehr. Ich würde mal auf nen Stackoverflow tippen der dank fehlender Fehlerbehandlung nicht bemerkt wird
_________________ Es werde Licht. glEnable(GL_LIGHTING); Und es ward Licht.
Zitat aus einem Java Buch: "C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off"
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Sidorion hat geschrieben:
1. versuch mal das erste popMatrix nicht nach, sondern vor dem Aufruf von hexfield zu machen. Ich meine mich zu erinnern, wenn man mit push/popmatrix arbeitet erstmal nen dummy pushen zu müssen.
Nein. Das war mit glPushNames. (oder irre ich mich da jetz gewaltig?)
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Selection-Tutorial hat geschrieben:
Die nächsten markierten Zeilen sind "glInitNames;" und "glPushName(0);" Diese beiden Zeilen Quellcode bewirken, dass zunächst mal der Name-Stack initialisiert wird und danach der "Name" "0" auf diesen Stack gelegt wird. Die Null hat eine ganz einfache Funktion: Wird nicht vor dem Laden des ersten Namens mindestens eine Zahl auf den Stack gepusht, dann endet der Versuch, einen Namen zu laden mit einem netten Error... wer's nicht glaubt, kann es ja gerne mal ausprobieren
Im glPushName-Artikel steht es aber tatsächlich nicht drin, das sollte u.U. korrigiert werden.
Njoa, auf jeden fall scheint offensichtlich bei glPushMatrix/glPopMatrix sowas nicht nötig zu sein.
Gruß Lord Horazont
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Vielen Dank, es schlaucht mich schon ziemlich das es wegen sowas passiert ist.. wusste aber auch nicht das man alles pushes wieder poppen muss... Jetzt geht aber der erste Teil, also das Verschieben!
So und wenn ich bei den Texturen einfach immer 1 raufaddiere werden sie auch vernünftig angezeigt! Ist das vielleicht ein Fehler in diesem Tutorial ausdem ich den Code habe?
http://wiki.delphigl.com/index.php/Hexfeld
Auffallend .. dort isses auch falsch. Mach doch mal ein Feedbackeintrag, und wenn Du schon dabei bist, erwähne doch bitte, dass die Nachbarberechnung nur für gerade Y so richtig ist (die Graphik mit den roten Buchstaben). Für Ungerade gilt x-1 und x als nachbarn in den drüber- und drunterliegenden Zeilen (oder andersherum, jedenfalls muss entweder +(Y Mod 2) oder +((Y+1) Mod 2) ran).
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
Mitglieder in diesem Forum: 0 Mitglieder und 6 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.