- MyColor[0] 3
- Color 1
DGL https://delphigl.com/forum/ |
|
Falsche Array-Grösse bei glGetActiveUniform https://delphigl.com/forum/viewtopic.php?f=20&t=11747 |
Seite 1 von 1 |
Autor: | mathias [ Mi Sep 20, 2023 14:24 ] |
Betreff des Beitrags: | Falsche Array-Grösse bei glGetActiveUniform |
Wieso wird mir MyColor[0] anstelle von MyColor[3] ausgegeben ? "len" kommt richtig, da ist es 3. Code:
Code:
Ausgabe: Code:
Müsset da nicht MyColor[3] kommen ? |
Autor: | TAK2004 [ Fr Sep 22, 2023 14:27 ] |
Betreff des Beitrags: | Re: Falsche Array-Grösse bei glGetActiveUniform |
Sieht für mich korrekt aus, du bekommst eine variable vom typ GL_FLOAT mit 3 Elementen zurück. size ist ist Elementanzahl und type gibt dir den Datentyp zurück. Wenn du ein struct hast, wie bei vec3, dann können da 3 floats drin sein(x,y,z) aber der type ist vec3 und es ist nur 1 Element davon. |
Autor: | mathias [ Fr Sep 22, 2023 15:05 ] |
Betreff des Beitrags: | Re: Falsche Array-Grösse bei glGetActiveUniform |
Was mich verwundert, wieso das es in den [] eine Null hat. Wen dort eine 3 stehe würde, würde es doch mehr Sinn machen, oder ? |
Autor: | glAwesome [ Fr Sep 22, 2023 18:42 ] |
Betreff des Beitrags: | Re: Falsche Array-Grösse bei glGetActiveUniform |
Aus meiner Erinnerung hätte ich gesagt, dass wenn MyColor[0] die ID x hat, dass MyColor[1] dann die ID x+1 hat usw. Im Widerspruch dazu steht in der Doku allerdings Folgendes: man glGetActiveUniform hat geschrieben: If one or more elements of an array are active, the name of the array is returned in name, the type is returned in type, and the size parameter returns the highest array element index used, plus one, as determined by the compiler and/or linker. Only one active uniform variable will be reported for a uniform array. Aber in der Praxis holt man sich doch sowieso nur die ID von MyColor[0] und setzt dann für das gesamte Array die Werte mittels glUniform3fv. Oder man nutzt UBOs. |
Autor: | mathias [ Sa Sep 23, 2023 07:42 ] |
Betreff des Beitrags: | Re: Falsche Array-Grösse bei glGetActiveUniform |
Das vermute ich auch, aber es hat mich trotzdem verwundert. Mit OpenGL 4 geht es sogar so: Code:
|
Autor: | mathias [ Mo Sep 25, 2023 18:53 ] |
Betreff des Beitrags: | Re: Falsche Array-Grösse bei glGetActiveUniform |
Ich habe es jetzt mal Mehrdimensional probiert. Code:
Da bekomme ich folgende Ausgabe: Code:
Die vorderen 2 Dimensionen würden stimmen, Ich habe noch folgendes probiert: Code:
Da wird die Zahl in der letzen [] geschluckt. |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |