【问题标题】:Possible to find internal format of texture in shader?可以在着色器中找到纹理的内部格式吗?
【发布时间】:2015-11-28 01:56:02
【问题描述】:

是否可以在着色器 (glsl) 中找到纹理的内部格式?

例如,如果我有一个格式为 GL_RG 的纹理,是否可以在着色器中识别出蓝色和 alpha 值是“恒定的”并且可以忽略?

我知道我可以使用制服将纹理类型从 c++ 传递到着色器。但是有没有一种“内在”的方法可以从着色器中找出来?

【问题讨论】:

    标签: c++ opengl glsl textures shader


    【解决方案1】:

    不,我认为没有任何东西可以直接为您提供这些信息。

    查看最新的 GLSL 规范(此时为 4.50),我希望从第 158 页开始的“8.9.1。纹理查询函数”部分中列出了一个假设函数来获取此信息。但列出的唯一函数有:

    • textureSize: 获取纹理大小。
    • textureQueryLod:获取用于给定纹理坐标的详细程度。
    • textureQueryLevels:获取纹理中的mipmap层数。
    • textureSamples:获取多重采样纹理的样本数。

    因此,除非我错过了完全不同的东西,否则您正在寻找的东西不存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      • 2020-09-06
      相关资源
      最近更新 更多