Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Sc4v

Alter Hase

  • »Sc4v« ist der Autor dieses Themas

Beiträge: 376

Beruf: Student

  • Private Nachricht senden

1

07.06.2013, 19:46

ARB_arrays_of_arrays

Hi zusammen,

ich möchte ARB_arrays_of_arrays in meinem Shader benutzen.
In GLSL sieht das folgendermaßen aus

HLSL-Quelltext

1
uniform vec4 weight[5][5];

Mein Problem ist jetzt nur, das ich nicht weiß wie ich das 2D Array an meinen Shader bekomme ?(

So jedenfalls (natürlich) nicht :rolleyes:

C-/C++-Quelltext

1
glUniform4fv(weightHandle,25,&weights[0][0]); 


Ich finde leider keine Beispiele in der Spezifikation. Vielleicht kann mir ja einer von euch aushelfen :thumbsup:

Greets,
Sc4v

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Sc4v« (07.06.2013, 20:07)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

07.06.2013, 22:20

Was genau geht nicht?

Sc4v

Alter Hase

  • »Sc4v« ist der Autor dieses Themas

Beiträge: 376

Beruf: Student

  • Private Nachricht senden

3

08.06.2013, 11:51

HLSL-Quelltext

1
2
3
4
5
6
7
8
float weight[filterHeight][filterWidth] = 
{
   {1.0/273.0, 4.0/273.0, 7.0/273.0, 4.0/273.0, 1.0/273.0}, 
   {4.0/273.0,16.0/273.0,26.0/273.0,16.0/273.0, 4.0/273.0},
   {7.0/273.0,26.0/273.0,41.0/273.0,26.0/273.0, 7.0/273.0},
   {4.0/273.0,16.0/273.0,26.0/273.0,16.0/273.0, 4.0/273.0},
   {1.0/273.0, 4.0/273.0, 7.0/273.0, 4.0/273.0, 1.0/273.0}
};


So gehts im Shader, jetzt hätte ich das ganze jedoch gerne dynamisch aus meinem Programm an den Shader übergeben.

C-/C++-Quelltext

1
glUniform4fv(weightHandle,WIDTH*HEIGHT,&weights[0][0]); 


So klappts jedenfalls nicht. Der Shader klappt so nicht mehr. Irgendwas mache ich also bei der Übergabe falsch...

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

08.06.2013, 12:24

Was genau heißt "klappt nicht". Was genau funktioniert nicht? Wo genau tritt genau welcher Fehler auf? Schlägt glUniform4fv() fehl? Wenn ja: Mit welchem Fehlercode? Hat weightHandle überhaupt einen richtigen Wert?
Leider ist die Spezifikation der Extension nicht besonders konkret was diese Frage betrifft. Aber evtl. funktioniert das Setzen eines solchen Uniform nur, wenn dieser sich in einem Uniform Buffer befindet!?

Sc4v

Alter Hase

  • »Sc4v« ist der Autor dieses Themas

Beiträge: 376

Beruf: Student

  • Private Nachricht senden

5

08.06.2013, 14:16

ok das wäre natürlich gut zu wissen: glUniform4fv schlägt mit GL_INVALID_ENUM fehl.
weightHandle ist der "zeiger" auf den uniform.
Finde die Spezifikation auch recht mager...

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

08.06.2013, 14:18

Mir ist klar, was weightHandle ist, die Frage ist eher: Hat dieser "Zeiger" auch einen brauchbaren Wert (>= 0)!? ;)

Sc4v

Alter Hase

  • »Sc4v« ist der Autor dieses Themas

Beiträge: 376

Beruf: Student

  • Private Nachricht senden

7

08.06.2013, 14:21

Jap ;)
Versuche jetzt übrigens ein float[][] mit glUniform1fv zu übergeben, anstatt wie im ersten Post fälschlicherweise einen vec4[][]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

08.06.2013, 14:25

Und du bist dir sicher, dass der INVALID_ENUM vom glUniform4fv() kommt und nicht bereits davor auftritt? Der Fehler macht für die Funktion nämlich eigentlich keinen Sinn und laut Spezifikation darf glUniform4fv() so einen Fehler eigentlich auch nicht erzeugen...

Sc4v

Alter Hase

  • »Sc4v« ist der Autor dieses Themas

Beiträge: 376

Beruf: Student

  • Private Nachricht senden

9

08.06.2013, 14:33

oh ups, nein du hast recht. Der Fehler wird vorher geworfen, ich weiß nur nicht wo -.-
Das dürfte aber doch nicht mein Vorhaben beeinflussen oder?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

08.06.2013, 14:44

Das dürfte aber doch nicht mein Vorhaben beeinflussen oder?

In deinem Programm tritt irgendwo ein Fehler auf, inwiefern sollte das nicht potentiell mit deinem Problem zu tun haben?

Werbeanzeige