Natürlich habe ich ein problem mitgebracht! Ich habe nähmlich vor eine Matrix an den Shader zu übergeben und wollte das per GlUniformMatrize3x3fv(); bla tun. Irgendwie so, dass ich die richtige Funktion erwischt hab bin ich mir sicher. Allerdings hab ich keine Ahnung, wie ich die 9floats da rein bekomme, so dass sie im Shader ankommen.
Der Aufbau meiner Matrix ist ein Array[0..2,0..2] of Real. so gehts nicht. Aber wie? pGlFloats will die Funktion haben und der Deklaration nach sind das Zeiger auf Singles... Hab schon einiges Ausprobiert, aber nicht das richtige.
_________________ ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Also, du musst der Funktion einen Pointer auf das erste Element deines Single-Arrays übergeben (es muss Single sein).
Als Funktion würde ich allerdings glUniformMatrix3fv nehmen, ich weiss aber nicht, ob das besser oder richtiger ist.
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
herlich komisch... Ich habe die inverse TBN-Matrix berechnet und versuche diese dem Shader zuübergeben (bumpmapping) um die Normalen damit zu multiplizieren, um sie in den Worldspace zu konvertieren. Jetzt sehe ich nichts außer schwarz.
Mit der normalen TBN-Matrix den Lichtvektor zu multiplizieren um ihn in den Normalspace zu bringen war einfacher, aber ich hab gelesen, dass es weniger Sinn macht, außerdem machte mein Licht dann merkwürdige(anders als geplante) Bewegungen.
Wie machst du das, wenn du bumpmapping haben willst? Wie erstellst du die Matrix, oder konvertierst was nach was? Ich habe nähmlich die komische Erfahrung gemacht, dass kein einziges Shadertut bei mir funktioniert, außer simples Texturenzeichnen und einfärben.
nebenbei.. was heißt "stack underflow" als GluError?
_________________ ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Der Zerhackte hat geschrieben:
nebenbei.. was heißt "stack underflow" als GluError?
Overflow ist ein Überlauf. Also zu viele Elemente auf dem Stack.
Underflow ist ein Unterlauf. Das Gegenteil. Also wenn du versuchst ein Element vom Stack zu nehmen obwohl keines drauf ist.
Das klingt sehr logisch... Aber was kann der Grund sein für einen "underflow" und was kann er anrichten?
Denn diese Meldung habe ich eigentlich immer dann, wenn ich nen shader benutze, ohne nicht. Mit meinem shader hab ich ebenfalls Probleme,
bezüglich der Koordinaten und der World/Tangent/blaspace konvertierung... kann man das in Verbindung setzen?
Die einzigen uniforms, die ich im moment benutze sind 2 sampler2d für die texturen und die kommen beide richtig an.
_________________ ist Ihnen schon mal aufgefallen, dass wenn Sie beim Wort Schlagersängerinnen die ersten 6 Buchstaben streichen, das 'e' durch ein 'f' ersetzen, die nächsten 7 Buchstaben rückwärts lesen und dann ebenfalls elemenieren und zusätzlich die beiden nebeneinanderstehenden n's durch ck ersetzen, das Wort 'ficken' ergibt?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
So etwas kann sich durchaus auf die Weltkoordinaten von einigen Objekten auswirken. Je nachdem wie es verschachtelt ist.
Klassischer Fall für einen Underflow ist so etwas.
Code:
glPushMatrix;
glPopMatrix;
glPopMatrix;
Und wie gesagt je nachdem wie sie verschachtelt sind kann sich das durchaus auswirken. Es kann aber auch sein, dass es sich gar nicht auswirkt. Wenn du zum Beispiel nur eine Natrix auf den Stack packst und diese dann doppelt vom Stack nimmst. Wenn der Stack leer ist bekommst du keine mehr und die Aktuelle sollte nicht überschrieben werden. Dann sollte es anzeigetechnisch keine Probleme geben. Höchstens weil du ein zu früh vom Stack nimmst und sich so das wiederherstellen verschiebt. Wenn es stärker verschachtelt ist dann würde sich das Verschieben aber womöglich größer äußern.
PS: Overflow ist logischerweise genau andersrum und er äußerst sich erst (minimal) später, da der Stack erst mal volllaufen muss.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Das mit dem Stack passiert nur wenn der Shader aktiv ist?
Na das ist doch ein idealer anhaltspunkt für die Fehlersuche. Guck nach ob du im Renderpfad der beim Shader aufgerufen wird irgendwo Matrizen vom Stack nimmst die du sonst nicht entfernst.
Ums einfach zusammenzufassen: Hier im Forum kann man eigentlich nur dann sinnvoll helfen, wenn keine GLFehler auftauchen. Denn wenn die existieren kann auch richtig aussehender Code plötzlich seltsame Ergebnisse liefern.
NIEMALS GL-FEHLER IGNORIEREN!
Bevor du dich also um was anderes kümmerst muss der Fehler weg.
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Mitglieder in diesem Forum: 0 Mitglieder und 3 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.