【问题标题】:Binding textures inside shaders在着色器中绑定纹理
【发布时间】:2012-12-27 08:23:16
【问题描述】:

我正在使用 VBO 编写波前 (.obj) 加载程序。

当调用“usemtl”时,我正在考虑将textureID与顶点、texCoord和法线数据一起发送。

使用该纹理 ID,我可以在不调用 glBindTexture 的情况下将纹理绑定到顶点/片段着色器中吗?

【问题讨论】:

  • "何时调用"usemtl"" 什么是"usemtl"?

标签: opengl binding textures shader wavefront


【解决方案1】:

使用该纹理 ID,我可以在不调用 glBindTexture 的情况下将纹理绑定到顶点/片段着色器中吗?

没有。纹理不绑定到着色器;它们被绑定到上下文中。

如果您想获得技术支持,NV_bindless_texture 允许使用此类功能,但这是 NVIDIA 特有的。

【讨论】:

    【解决方案2】:

    这是一般材质的问题,需要在渲染几何体之前切换它们。

    最简单的方法是:

    foreach object in renderQueue
        set_material()
        draw_geometry()
    

    当然,当一个对象必须用两种不同的材质渲染时,我们会遇到一些麻烦。另一个问题是性能问题,您通常会按材质对对象进行排序并保存(纹理、着色器和其他数据的)切换

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      • 2020-09-06
      • 2012-09-19
      相关资源
      最近更新 更多