【发布时间】:2020-02-12 00:20:00
【问题描述】:
尝试将浮点数从我的顶点传递到片段着色器时,我遇到了一个奇怪的错误。
顶点着色器:
#version 450
out float someFloat;
void main() {
someFloat = 1.0;
// some code ...
}
片段着色器:
#version 450
in float someFloat;
void main() {
// some code using someFloat ...
}
这行不通并且总是通过零,而这行得通:
顶点着色器:
#version 450
layout (location = 0) out float someFloat;
void main() {
someFloat = 1.0;
// some code ...
}
片段着色器:
#version 450
layout (location = 0) in float someFloat;
void main() {
// Some code using someFloat ...
}
但是我怎样才能在不使用位置的情况下做到这一点呢?
【问题讨论】:
-
着色器是链接到同一个程序中还是通过管道对象使用多个程序?
-
我正在使用 Vulkans 的图形管道。我还有一个 vec3 数组,可以毫无问题地传入和传出。
-
"我正在使用 Vulkans 的图形管道" 那么你需要这么说,因为这对你的代码为什么不起作用非常重要。