【问题标题】:Pass from vertex shader to fragment shader从顶点着色器传递到片段着色器
【发布时间】:2012-12-04 23:47:11
【问题描述】:

我正在尝试将一些向量从顶点着色器发送到片段着色器: 例如:

vec3 N = (view*model*vNormal).xyz

当试图在片段着色器中达到它时:

Link errorERROR: Input of fragment shader 'N' not written by vertex shader

有什么想法吗?

【问题讨论】:

    标签: java opengl fragment-shader vertex-shader


    【解决方案1】:

    要在着色器阶段之间传递值,您必须使用所谓的 variings;关键字是 varyingoutin - GLSL 1.20 到 1.40 之间的关键字发生了变化,但基本要点是您需要特殊的类型限定符。详情请见http://www.opengl.org/wiki/GLSL_Type_Qualifiers#Shader_stage_inputs_and_outputs

    【讨论】:

    • ofc 在矢量着色器中我使用 out vec3 N 和 fs in vec3 N 但它没有帮助
    • @mjanisz1:你说你的代码是vec3 N = ...。在这段代码中,N 是一个 local 变量。您需要全局声明着色器阶段输入/输出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多