Ich bekomme einen merkwürdigen Fehler, wenn ich versuche, einen Float von meinem Vertex zum Fragment-Shader zu übergeben.GLSL-Variable wird nicht vom Vertex zum Fragment-Shader übergeben
Vertex-Shader:
#version 450
out float someFloat;
void main() {
someFloat = 1.0;
// some code ...
}
Fragment-Shader:
#version 450
in float someFloat;
void main() {
// some code using someFloat ...
}
Das wird nicht funktionieren und immer Null passieren, während dies funktioniert:
Vertex-Shader:
#version 450
layout (location = 0) out float someFloat;
void main() {
someFloat = 1.0;
// some code ...
}
Fragment sha der:
#version 450
layout (location = 0) in float someFloat;
void main() {
// Some code using someFloat ...
}
Aber wie kann ich das tun, ohne Standorte zu verwenden?
Sind die zusammen in das gleiche Programm verknüpft Shadern oder verwenden Sie mehrere Programme über eine Pipeline-Objekt? –
Ich verwende die Grafik-Pipeline von Vulkans. Ich habe auch ein vec3-Array, das ohne Probleme mit hinein und heraus übergeben werden kann. – Shedex
"* Ich benutze die Grafikpipeline von Vulkans *" Dann müssen Sie das sagen, weil das sehr wichtig ist, warum Ihr Code nicht funktioniert. –