【问题标题】:How do we know if we're in a vertex or a fragment shader?我们如何知道我们是在顶点着色器还是片段着色器中?
【发布时间】:2022-01-11 15:28:37
【问题描述】:

我们在共享文件中有一些 GLSL 代码,包括在顶点着色器和片段着色器中(其中很多)。我想根据它是否包含在顶点或片段着色器中来 ifdef 某个函数。

是否有我们可以使用的保留字或定义?

【问题讨论】:

  • 我很好奇这些将需要什么样的功能。我的意思是,您正在谈论的功能是 1) 适用于 VS 和 FS,并且 2) 根据它是 VS 还是 FS,其行为会有所不同。一个简单的数学函数不需要 VS 或 FS 特定的功能。而需要 gl_FragCoord 的函数听起来不像是在 VS 中有意义的函数。
  • 按范围分组的函数,例如光投影。有时我喜欢使用 gl_FragCoord 作为输入/过滤器之一来调试着色器。

标签: include glsl


【解决方案1】:

不,你必须自己注入一个定义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多